Создайте объект ядра 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');
arrayfun
| existsOnGPU
| feval
| gpuArray
| reset