我正在尝试使用PyCUDA(版本2011,2,2)在Tesla C2075(CUDA 5.0,V0.2.1221)的Python 2.7.3中从CUDA内核中的正态分布创建一个随机数。但是我在尝试简单地包含curand_kernel.h标头时遇到了问题。我创建了最简单的测试用例(如下所示),但在编译时我收到错误。
/ usr / local / cuda / bin /../ include / curand_kernel.h(568):错误:此声明可能没有extern“C”链接
尽管我四处寻找,但遗憾的是我仍然无法完全理解问题是什么,这使得解决问题变得困难。任何帮助将不胜感激。
import pycuda.driver as drv
import pycuda.compiler
import pycuda.autoinit
import pycuda.gpuarray as gpuarray
import pycuda.cumath as cumath
from pycuda.compiler import SourceModule
gpu_test_source = SourceModule("""
#include <curand_kernel.h>
__global__ void test_kernel()
{
return;
}
""")
答案 0 :(得分:1)
您是否尝试过以下操作?:
gpu_test_source = SourceModule("""
#include <curand_kernel.h>
extern "C"{
__global__ void test_kernel()
{
return;
}
}
""", no_extern_c=True)