创建GPU CUDA内核对象从PTX和CU代码
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”);