从PTX和CU代码中创建GPU CUDA内核对象
KERN = parallel.gpu.CUDAKernel (PTXFILE CPROTO)
KERN = parallel.gpu.CUDAKernel (PTXFILE CPROTO函数)
KERN = parallel.gpu.CUDAKernel (PTXFILE CUFILE)
KERN = parallel.gpu.CUDAKernel (PTXFILE CUFILE函数)
KERN = parallel.gpu.CUDAKernel (PTXFILE CPROTO)
和KERN = parallel.gpu.CUDAKernel (PTXFILE CPROTO函数)
创建一个CUDAKernel
对象,可以用来调用GPU上的CUDA内核。PTXFILE
是包含PTX代码的文件的名称,或PTX文件的内容作为字符向量;和CPROTO
内核的C原型是这样调用的吗克恩
代表。如果指定的,函数
必须是字符向量,明确定义PTX文件中适当的内核条目名称。如果函数
省略时,PTX文件必须只包含一个入口点。
KERN = parallel.gpu.CUDAKernel (PTXFILE CUFILE)
和KERN = parallel.gpu.CUDAKernel (PTXFILE CUFILE函数)
创建一个内核对象,你可以使用它在GPU上调用CUDA内核。此外,他们读取CUDA源文件CUFILE
,并查找内核定义以“__global__”
中定义的CUDA内核的函数原型PTXFILE
.
有关执行内核对象的信息,请参见运行一个CUDAKernel.
如果simpleEx.cu
包含以下:
/* *向向量添加一个常量。*/ __global__ void addToVector(float * pi, float c, int vecLen) {int idx = blockIdx。x * blockDim。x + threadIdx.x;if (idx < vecLen) {pi[idx] += c;}}
和simpleEx.ptx
包含编译产生的PTXsimpleEx.cu
在PTX中,以下两个语句都返回一个内核对象,您可以使用该内核对象调用addToVector
CUDA内核。
kern = parallel.gpu.CUDAKernel (“simpleEx.ptx”,...“simpleEx.cu”);kern = parallel.gpu.CUDAKernel (“simpleEx.ptx”,...“*浮动,浮动,int”);