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