Тип для MATLAB gpuArray
mxGPUArray является непрозрачным типом языка C, который позволяет MEX-функции доступ к элементам в MATLAB gpuArray. Используя mxGPU API, можно выполнить вычисления на MATLAB gpuArray и вернуть результаты gpuArray в MATLAB.
Все MEX-функции получают входы и передают выходы как mxArrays. gpuArray в MATLAB является специальным видом mxArray, который представляет массив, хранящийся на графическом процессоре. В своей MEX-функции вы используете объекты mxGPUArray для доступа к массиву, хранящемуся на графическом процессоре: эти объекты соответствуют MATLAB gpuArrays.
mxGPU API содержит функции, которые манипулируют mxGPUArray
объекты. Эти функции позволяют вам извлечь mxGPUAray из входных mxArray, перенести выходные mxGPUAray как mxArray для возврата в MATLAB, определить характеристики массивов и получить указатели на базовые элементы. Можно выполнить вычисления, передав указатели на функции CUDA, которые вы записываете или которые доступны во внешних библиотеках.
Основная структура функции MEX графического процессора:
Звонить mxInitGPU
для инициализации библиотеки графического процессора MathWorks.
Определите какие mxArray
входы содержат данные графический процессор.
Создание mxGPUArray
объекты из входа mxArray
аргументы и получение указателей на входные элементы устройства.
Создание mxGPUArray
объекты для удержания выходов и получения указателей на выходные элементы устройства.
Вызовите функцию CUDA, передав ей указатели на устройство.
Завершите выход mxGPUArray
как mxArray
для возврата в MATLAB.
Уничтожить mxGPUArray
созданные вами объекты.
Заголовочный файл, содержащий этот тип mxGPUArray.h
. Вы включаете его в линию:
#include "gpu/mxGPUArray.h"