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