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