parallel.gpu. CUDAKernel

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

Синтаксис

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 на графическом процессоре. PTXFILE является именем файла, который содержит код PTX или содержимое файла PTX как вектор символов; и CPROTO является прототипом C для вызова ядра, который представляет KERN. Если задано, FUNC должен быть вектором символов, который однозначно задает соответствующее имя записи ядра в файле PTX. Если FUNC не использован, файл PTX должен содержать только однократную точку.

KERN = parallel.gpu.CUDAKernel(PTXFILE,CUFILE) и KERN = parallel.gpu.CUDAKernel(PTXFILE,CUFILE,FUNC) создайте объект ядра, который можно использовать, чтобы вызвать ядро CUDA на графическом процессоре. Кроме того, они читают исходный файл 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, оба из следующих операторов возвращают объект ядра, который можно использовать, чтобы вызвать ядро CUDA addToVector.

kern = parallel.gpu.CUDAKernel('simpleEx.ptx', ...
                                             'simpleEx.cu');
kern = parallel.gpu.CUDAKernel('simpleEx.ptx', ...
                                     'float *,float,int');

Смотрите также

| | | |

Представленный в R2010b