Массив, хранящийся на графическом процессоре
A gpuArray объект представляет массив, хранящийся в графическом процессоре. Для работы с gpuArray используйте любую функцию MATLAB ® с поддержкой графического процессора. Массив можно использовать для прямых вычислений или в ядрах CUDA, которые выполняются на GPU. Дополнительные сведения см. в разделе Выполнение функций MATLAB на графическом процессоре .
Если требуется извлечь массив из графического процессора, например, при использовании функции, которая не поддерживает gpuArray объекты, используйте gather функция.
Примечание
Файлы MAT, содержащие данные gpuArray, можно загружать как массивы в памяти, если графический процессор недоступен. gpuArray, загруженный без графического процессора, ограничен, и его нельзя использовать для вычислений. Чтобы использовать gpuArray, загруженный без графического процессора, извлеките содержимое с помощью gather.
Использовать gpuArray преобразование массива в рабочей области MATLAB в gpuArray объект. Многие функции MATLAB также позволяют создавать gpuArray непосредственно объектов. Дополнительные сведения см. в разделе Установка массивов на графическом процессоре.
Существует несколько методов для изучения характеристик gpuArray объект. Большинство ведут себя как одноименные функции MATLAB.
existsOnGPU | Определите, доступен ли gpuArray или CUDAKernel на GPU |
isequal | Определение равенства массива |
isnumeric | Определите, является ли ввод числовым массивом |
issparse | Определение разреженности входных данных |
isUnderlyingType | Определите, был ли на входе указан базовый тип данных |
length | Длина наибольшего размера массива |
ndims | Количество измерений массива |
size | Размер массива |
underlyingType | Тип базовых данных, определяющих поведение массива |
Другие методы для gpuArray слишком много объектов, чтобы перечислить их здесь. Большинство из них похожи на функции MATLAB с тем же именем и ведут себя так же. См. раздел Выполнение функций MATLAB на графическом процессоре.
Если необходима повышенная производительность или функция недоступна для графического процессора, gpuArray поддерживает следующие опции:
Для предварительной компиляции и запуска чисто элементного кода на gpuArray объекты, используйте arrayfun функция.
Для запуска кода C++, содержащего код устройства CUDA ® или вызовы библиотеки, используйте функцию MEX. Дополнительные сведения см. в разделе Запуск MEX-функций, содержащих код CUDA.
Для запуска существующих ядер GPU, написанных на CUDA C++, используйте интерфейс MATLAB CUDAKernel. Дополнительные сведения см. в разделе Запуск кода CUDA или PTX на графическом процессоре.
Для генерации кода CUDA из кода MATLAB используйте графический процессор Coder™. Дополнительные сведения см. в разделе Начало работы с кодером графического процессора (GPU Coder).
Управлять потоком случайных чисел на GPU можно с помощью gpurng.
Ни одно из следующих значений не может превышать intmax('int32'):
Количество элементов плотного массива.
Число ненулевых элементов разреженного массива.
Размер в любом заданном измерении. Например, zeros(0,3e9,'gpuArray') не допускается.
Можно также создать gpuArray с использованием некоторых функций MATLAB путем указания gpuArray выход. В следующей таблице перечислены доступные функции MATLAB, которые могут быть созданы gpuArray непосредственно объектов.
| |
| |
| |
| gpuArray.colon |
| gpuArray.freqspace |
| gpuArray.linspace |
| gpuArray.logspace |
gpuArray.speye |
Для справки по конкретным классам функций с помощью gpuArray префикс, тип
help gpuArray.functionname
где functionname - имя метода. Например, для получения справки по colon, тип
help gpuArray.colon