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