Исполняемый файл ядра на графическом процессоре
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, и видеть, какие из входных параметров ядра обрабатываются как выходные параметры. |