CUDAKernel

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

Конструктор

parallel.gpu.CUDAKernel

Описание

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

Методы

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

Свойства

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

Имя свойстваОписание
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, single, или double далее следует слово scalar или vector указать, передаем ли мы ссылку или значение). В сложение, если этот аргумент является только входом в ядро, он префиксируется in; и если это вход/выход, то он префиксируется inout. Это позволяет вам решить, как эффективно вызвать ядро как с массивами MATLAB, так и с gpuArray, и увидеть, какие из входов ядра рассматриваются как выходы.

| |

Похожие темы

Введенный в R2011b