exponenta event banner

parallel.gpu. CUDAKernel

Создание объекта ядра CUDA графического процессора из кода PTX и CU

Синтаксис

KERN = parallel.gpu.CUDAKernel(PTXFILE,CPROTO)
KERN = parallel.gpu.CUDAKernel(PTXFILE,CPROTO,FUNC)
KERN = parallel.gpu.CUDAKernel(PTXFILE,CUFILE)
KERN = parallel.gpu.CUDAKernel(PTXFILE,CUFILE,FUNC)

Описание

KERN = parallel.gpu.CUDAKernel(PTXFILE,CPROTO) и KERN = parallel.gpu.CUDAKernel(PTXFILE,CPROTO,FUNC) создать CUDAKernel объект, который можно использовать для вызова ядра CUDA на GPU. PTXFILE - имя файла, содержащего PTX-код, или содержимое PTX-файла в виде символьного вектора; и CPROTO является прототипом C для вызова ядра, который KERN представляет собой. Если указано, FUNC должен быть символьным вектором, который однозначно определяет соответствующее имя элемента ядра в PTX-файле. Если FUNC опущен, PTX-файл должен содержать только одну точку входа.

KERN = parallel.gpu.CUDAKernel(PTXFILE,CUFILE) и KERN = parallel.gpu.CUDAKernel(PTXFILE,CUFILE,FUNC) создайте объект ядра, который можно использовать для вызова ядра CUDA на GPU. Кроме того, они читают исходный файл CUDA CUFILEи найдите определение ядра, начиная с '__global__' поиск прототипа функции для ядра CUDA, определенного в PTXFILE.

Сведения о выполнении объекта ядра см. в разделе Запуск CUDAKernel.

Примеры

Если simpleEx.cu содержит:

/*
* Add a constant to a vector.
*/
__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 содержит PTX, полученный в результате компиляции simpleEx.cu в PTX оба следующих оператора возвращают объект ядра, который можно использовать для вызова addToVector Ядро CUDA.

kern = parallel.gpu.CUDAKernel('simpleEx.ptx', ...
                                             'simpleEx.cu');
kern = parallel.gpu.CUDAKernel('simpleEx.ptx', ...
                                     'float *,float,int');
Представлен в R2010b