PyCUDA未能包含<curand_kernel.h> - 错误:没有extern“C”链接</curand_kernel.h>

时间:2013-12-02 00:57:02

标签: c cuda pycuda

我正在尝试使用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;
    }

""")

1 个答案:

答案 0 :(得分:1)

您是否尝试过以下操作?:

gpu_test_source = SourceModule("""
#include <curand_kernel.h>

extern "C"{
    __global__ void test_kernel()
    {
        return;
    }
}
""", no_extern_c=True)