Установите массивы на графическом процессоре

gpuArray в MATLAB® представляет массив, который хранится на графическом процессоре. Для полного списка функций, которые поддерживают массивы на графическом процессоре, смотрите функции MATLAB Запуска на графическом процессоре.

Создайте массивы графического процессора из существующих данных

Отправьте массивы в графический процессор

Массивы графического процессора могут быть созданы путем передачи существующих массивов с рабочей области на графический процессор. Используйте gpuArray функционируйте, чтобы передать массив с MATLAB на графический процессор:

N = 6;
M = magic(N);
G = gpuArray(M);

Можно выполнить это в одной строке кода:

G = gpuArray(magic(N));

G теперь объект MATLAB gpuArray, который представляет магический квадрат, сохраненный на графическом процессоре. Вход предоставляется 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
classUnderlying(G)
double

Классом по умолчанию данных является double, таким образом, вы не должны задавать его.

Пример: создайте вектор на графическом процессоре

Чтобы создать вектор-столбец из нулей с 8192 элементами на графическом процессоре, ввести

Z = zeros(8192,1,'gpuArray');
size(Z)
        8192           1

Для вектор-столбца размер второго измерения равняется 1.

Исследуйте gpuArray Характеристики

Существует несколько функций, доступных для исследования характеристик объекта gpuArray:

ФункцияОписание
classUnderlyingКласс базовых данных в массиве
existsOnGPUИндикация, если массив существует на графическом процессоре и доступен
isrealИндикация, если данные массива действительны
isaUnderlying

Определите, имеют ли данные о длинном массиве заданный класс, такой как gpuArray

isequalОпределите, равны ли два или больше массива
isnumericОпределите, имеет ли массив тип числовых данных
issparseОпределите, разрежен ли массив
lengthДлина векторного или самого большого измерения массива
ndimsКоличество размерностей в массиве
sizeРазмер измерений массива

Например, чтобы исследовать размер gpuArray объекта GВвод:

G = rand(100,'gpuArray');
s = size(G)
    100   100

Сохраните и Загрузка gpuArrays

Можно сохранить gpuArray переменные как файлы MAT для дальнейшего использования. Когда вы избавляете gpuArray от рабочего пространства MATLAB, данные сохранены как gpuArray переменная в файле MAT. Когда вы загружаете файл MAT, содержащий gpuArray переменную, данные загружаются на графический процессор как gpuArray.

Примечание

Можно загрузить файлы MAT, содержащие gpuArray данные как массивы в оперативной памяти, когда графический процессор не доступен. gpuArray, загруженный без графического процессора, ограничивается, и вы не можете использовать его в расчетах. Чтобы использовать gpuArray, загруженный без графического процессора, получите содержимое с помощью gather.

Для получения дополнительной информации о том, как сохранить и загрузить переменные в рабочем пространстве MATLAB, смотрите, Сохраняют и Переменные Рабочей области Загрузки (MATLAB).

Смотрите также

Похожие темы