当我运行这个pycuda示例时,其中的一个内核部分可以在C解释器中正确运行:
import pycuda.driver as cuda
import pycuda.autoinit
from pycuda.compiler import SourceModule
mod = SourceModule("""
#include<stdio.h>
__global__ void say_hi(){
printf("I am %dth thread in : \
threadIdx.x:%d, threadIdx.y:%d,\
blockIdx.x:%d, blockIdx.y:%d,\
blockDim.x:%d, blockDim.y:%d.\n",
(threadIdx.x+threadIdx.y*blockDim.x+ \
(blockIdx.x*blockDim.x*blockDim.y)+ \
(blockIdx.y*blockDim.x*blockDim.y)),
threadIdx.x, threadIdx.y,
blockIdx.x, blockIdx.y,
blockDim.x, blockDim.y);
}
""")
func = mod.get_function("say_hi")
func(block=(4, 4, 4), grid=(2, 2, 1))
但出现了错误:
pycuda.driver.CompileError: nvcc compilation of C:\xxx\Local\Temp\tmpqfqdmr3f\kernel.cu failed
[command: nvcc --cubin -arch sm_75 -m64 -Id:\xxx\anaconda\envs\tensorflow\lib\site-packages\pycuda\cuda kernel.cu]
[stdout:
kernel.cu(6): error: missing closing quote
kernel.cu(7): error: missing closing quote
2 errors detected in the compilation of "kernel.cu".
kernel.cu
]
我的编译器有问题吗 如果有人有想法,请提供帮助(抱歉,问题太长)
目前没有回答
相关问题 更多 >
编程相关推荐