Исполняемый файл ядра на графическом процессоре
CUDAKernel
объект представляет ядро CUDA, которое может выполниться на графическом процессоре. Вы создаете ядро, когда вы компилируете PTX или код CU, как описано в Запущенном CUDA или Коде PTX по графическому процессору.
existsOnGPU | Определите, доступны ли gpuArray или CUDAKernel на графическом процессоре |
feval | Оцените ядро на графическом процессоре |
setConstantMemory | Установите некоторую постоянную память на графическом процессоре |
CUDAKernel
объект имеет следующие свойства:
PropertyName | Описание |
---|---|
ThreadBlockSize | Размер блока потоков на ядре. Это может быть целочисленным вектором длины 1, 2, или 3 (поскольку блоки потока могут составить 3-мерные). Продукт элементов ThreadBlockSize не должен превышать MaxThreadsPerBlock для этого ядра и никакого элемента ThreadBlockSize может превысить соответствующий элемент свойство 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, и видеть, какие из входных параметров ядра обрабатываются как выходные параметры. |