parallel.gpu.CUDAKernel

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

Описание

пример

kern = parallel.gpu.CUDAKernel(ptxFile,cuFile) создает CUDAKernel объект с помощью кода PTX ptxFile и CUDA® исходный файл cuFile. Файл PTX должен содержать только однократную точку.

Используйте kern выполнить ядро CUDA на графическом процессоре. Для получения информации о выполнении вашего объекта ядра смотрите Запуск CUDAKernel.

kern = parallel.gpu.CUDAKernel(ptxFile,cuFile,func) создает CUDAKernel для функциональной точки входа, заданной funcfunc должен однозначно задать соответствующую точку входа ядра в файле PTX.

пример

kern = parallel.gpu.CUDAKernel(ptxFile,cProto) создает CUDAKernel объект с помощью файла PTX ptxFile и C моделируют cProto. cProto прототип функции C для вызова ядра что kern представляет. Файл PTX должен содержать только однократную точку.

kern = parallel.gpu.CUDAKernel(ptxFile,cProto,func) создает CUDAKernel объект из файла PTX и C моделирует для функциональной точки входа, заданной funcfunc должен однозначно задать соответствующую точку входа ядра в файле PTX.

Примеры

свернуть все

В этом примере показано, как создать CUDAKernel объект с помощью файла PTX и файла CU, или с помощью файла PTX и прототипа функции.

Исходный файл CUDA 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;
   }
}

Скомпилируйте файл CU в файл PTX с помощью nvcc компилятор в NVIDIA® Инструментарий CUDA. Чтобы скомпилировать файл PTX, выполните следующую команду интерпретатора.

nvcc -ptx simpleEx.cu

Предыдущая команда генерирует типовой файл PTX, который поддерживается на всех устройствах графического процессора NVIDIA. Чтобы сгенерировать код, оптимизированный для определенных устройств графического процессора, задайте дополнительные опции с помощью -arch или -code флаги. Для получения информации о nvcc опции, смотрите nvcc документация.

Создайте ядро CUDA с помощью файла PTX и файла CU.

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

Создайте ядро CUDA с помощью файла PTX и прототипа функции addToVector функция.

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

Оба из предыдущих операторов возвращают объект ядра, который можно использовать, чтобы вызвать addToVector Ядро CUDA.

Входные параметры

свернуть все

Имя файла PTX или кода PTX в виде вектора символов.

Можно обеспечить имя кода PTX или содержимое файла PTX.

Имя исходного файла CUDA в виде вектора символов.

Функция исследует исходный файл CUDA, чтобы найти прототипа функции для ядра CUDA, которое задано в коде PTX. Исходный файл CUDA должен содержать определение ядра начиная с '__global__'.

Функциональная точка входа в виде вектора символов. func должен однозначно задать соответствующую точку входа ядра в файле PTX.

C моделируют для вызова ядра в виде вектора символов. Задайте несколько входных параметров, разделенных запятыми.

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