CUDAKernel

Исполняемый файл ядра на графическом процессоре

Конструктор

parallel.gpu.CUDAKernel

Описание

CUDAKernel объект представляет ядро CUDA, которое может выполниться на графическом процессоре. Вы создаете ядро, когда вы компилируете PTX или код CU, как описано в Запущенном CUDA или Коде PTX по графическому процессору.

Методы

existsOnGPUОпределите, доступны ли gpuArray или CUDAKernel на графическом процессоре
fevalОцените ядро на графическом процессоре
setConstantMemoryУстановите некоторую постоянную память на графическом процессоре

Свойства

CUDAKernel объект имеет следующие свойства:

PropertyName Описание
ThreadBlockSizeРазмер блока потоков на ядре. Это может быть целочисленным вектором длины 1, 2, или 3 (поскольку блоки потока могут составить 3-мерные). Продукт элементов ThreadBlockSize не должен превышать MaxThreadsPerBlock для этого ядра и никакого элемента ThreadBlockSize может превысить соответствующий элемент GPUDevice свойство MaxThreadBlockSize.
MaxThreadsPerBlockМаксимальное количество потоков, допустимых в одном блоке для этого ядра CUDA. Продукт элементов ThreadBlockSize не должен превышать это значение.
GridSizeРазмер сетки (эффективно количество блоков потока, которые будут запущены независимо графическим процессором). Это - целочисленный вектор длины 3. Ни один из элементов этого вектора не может превысить соответствующий элемент в векторе MaxGridSize свойство GPUDevice объект.
SharedMemorySizeСумма динамической общей памяти (в байтах), который может использовать каждый блок потока. Каждый блок потока имеет доступную область общей памяти. Размер этой области ограничивается в текущих картах ~16 Кбайтами и совместно используется с регистрами на многопроцессорных системах. Как со всей памятью, это должно быть выделено, прежде чем ядро запускается. Размеру этой области общей памяти также свойственно быть связанным к размеру блока потока. Устанавливание этого значения на ядре гарантирует, что каждый поток в блоке может получить доступ к этой доступной области общей памяти.
EntryPoint(только для чтения) вектор символов, содержащий фактическую точку входа, называет в коде PTX, который это ядро собирается вызвать. Пример может быть похожим на '_Z13returnPointerPKfPy'.
MaxNumLHSArguments(только для чтения) максимальное количество аргументов левой стороны, которые поддерживает это ядро. Это не может быть больше количества аргументов правой стороны, и если какие-либо входные параметры будут постоянными или скалярными, то это будет меньше.
NumRHSArguments(только для чтения) необходимое количество аргументов правой стороны должно было вызвать это ядро. Все входные параметры должны задать или скалярное значение входа, элементов для векторного ввода/вывода, или размер выходного аргумента.
ArgumentTypesМассив ячеек из символьных векторов (только для чтения), та же длина как NumRHSArguments. Каждый из векторов символов указывает на то, что ожидаемый тип MATLAB для того входа (числовой тип, такой как uint8единственный, или double сопровождаемый словом scalar или vector указать, являемся ли мы передающими ссылкой или значением). Кроме того, если тот аргумент является только входом к ядру, это снабжается префиксом in; и если это - ввод/вывод, это снабжается префиксом inout. Это позволяет вам решать, как эффективно вызвать ядро и с массивами MATLAB и с gpuArray, и видеть, какие из входных параметров ядра обрабатываются как выходные параметры.

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

gpuArray, GPUDevice

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