Создайте объект ядра 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 на графическом процессоре. 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 оба следующих операторов возвращают объект ядра, который можно использовать для вызова addToVector
Ядро CUDA.
kern = parallel.gpu.CUDAKernel('simpleEx.ptx', ... 'simpleEx.cu'); kern = parallel.gpu.CUDAKernel('simpleEx.ptx', ... 'float *,float,int');
arrayfun
| CUDAKernel
| existsOnGPU
| feval
| gpuArray
| reset