A gpuArray
в MATLAB® представляет массив, который хранится на графическом процессоре. Для полного списка функций, которые поддерживают массивы на графическом процессоре, смотрите функции MATLAB Запуска на графическом процессоре.
Массивы графического процессора могут быть созданы путем передачи существующих массивов с рабочей области на графический процессор. Используйте gpuArray
функционируйте, чтобы передать массив с MATLAB на графический процессор:
N = 6; M = magic(N); G = gpuArray(M);
Можно выполнить это в одной строке кода:
G = gpuArray(magic(N));
G
теперь gpuArray
MATLAB объект, который представляет магический квадрат, сохраненный на графическом процессоре. Вход предоставляется
gpuArray
должно быть числовым (например: single
'double'
int8
, и т.д.) или логический. (См. также работу с Комплексными числами на графическом процессоре.)
Используйте gather
функция, чтобы получить массивы от графического процессора до рабочего пространства MATLAB. Это берет массив, который находится на графическом процессоре, представленном gpuArray
объект и передачи это к рабочему пространству MATLAB как регулярный массив MATLAB. Можно использовать isequal
чтобы проверить, что вы возвращаете правильные значения:
G = gpuArray(ones(100,'uint32')); D = gather(G); OK = isequal(D,ones(100,'uint32'))
Сбор назад к центральному процессору может быть дорогостоящим, и является обычно не необходимым, если вы не должны использовать свой результат с функциями, которые не поддерживают gpuArray
.
Создайте случайную матрицу 1000 на 1000 в MATLAB, и затем передайте его графическому процессору:
X = rand(1000); G = gpuArray(X);
Создайте матрицу случайных значений с двойной точностью в MATLAB, и затем передайте матрицу как с одинарной точностью с MATLAB на графический процессор:
X = rand(1000); G = gpuArray(single(X));
Много функций позволяют вам непосредственно создавать массивы на графическом процессоре путем определения 'gpuArray'
введите как входной параметр. Эти функции требуют только размера массивов и информации о классе данных, таким образом, они могут создать массив, не имея необходимость передавать любые элементы от рабочего пространства MATLAB. Для получения дополнительной информации смотрите gpuArray
.
Создать 1024 1024 единичную матрицу типа int32
на графическом процессоре ввести
II = eye(1024,'int32','gpuArray'); size(II)
1024 1024
С одним числовым аргументом вы создаете 2-мерную матрицу.
Создать 3-мерный массив из единиц с классом данных double
на графическом процессоре ввести
G = ones(100,100,50,'gpuArray');
size(G)
100 100 50
underlyingType(G)
double
Классом по умолчанию данных является double
, таким образом, вы не должны задавать его.
Чтобы создать вектор-столбец из нулей с 8192 элементами на графическом процессоре, ввести
Z = zeros(8192,1,'gpuArray');
size(Z)
8192 1
Для вектор-столбца размер второго измерения равняется 1.
gpuArray
ХарактеристикиСуществует несколько функций, доступных для исследования характеристик gpuArray
объект:
Функция | Описание |
---|---|
underlyingType | Класс базовых данных в массиве |
existsOnGPU | Индикация, если массив существует на графическом процессоре и доступен |
isreal | Индикация, если данные массива действительны |
isUnderlyingType | Определите, имеют ли данные об основном массиве заданный класс, такой как |
isequal | Определите, равны ли два или больше массива |
isnumeric | Определите, имеет ли массив тип числовых данных |
issparse | Определите, разрежен ли массив |
length | Длина векторного или самого большого измерения массива |
mustBeUnderlyingType | Подтвердите тот массив, задал базовый тип, такой как дважды |
ndims | Количество размерностей в массиве |
size | Размер измерений массива |
Например, чтобы исследовать размер gpuArray
объект G
Ввод:
G = rand(100,'gpuArray');
s = size(G)
100 100
gpuArray
ОбъектыМожно сохранить gpuArray
переменные как файлы MAT для дальнейшего использования. Когда вы сохраняете gpuArray
от рабочего пространства MATLAB данные сохранены как gpuArray
переменная в файле MAT. Когда вы загружаете файл MAT, содержащий gpuArray
переменная, данные загружаются на графический процессор как gpuArray
.
Примечание
Можно загрузить файлы MAT, содержащие gpuArray
данные как массивы в оперативной памяти, когда графический процессор не доступен. gpuArray
загруженный без графического процессора ограничивается, и вы не можете использовать его для расчетов. Использовать gpuArray
загруженный без графического процессора, получите использование содержимого gather
.
Для получения дополнительной информации о том, как сохранить и загрузить переменные в рабочем пространстве MATLAB, смотрите, Сохраняют и Переменные Рабочей области Загрузки.