Для массивов, хранящихся в графическом процессоре, поддерживается только небольшое подмножество команд MATLAB (т. Е. Массивов типа GPUArray).
См. эту страницу документации из Parallel Computing Toolbox для получения подробной информации о поддерживаемых функциях. Вы заметите, что список содержит исключительно функции из базовой MATLAB, такие как арифметические, экспоненциальные и тригонометрические функции, линейная алгебра и преобразования Фурье; ничего похожего на функции панели инструментов более высокого уровня, такие как minmax
из Neural Network Toolbox.
Перегрузка функции для ввода GPUArray, чтобы она выполнялась на GPU, а не на CPU, является основной задачей, включающей повторную реализацию алгоритма для новой и высокопараллельной архитектуры. Кроме того, только некоторые типы высокопараллельных алгоритмов обычно выигрывают от параллелизма GPU. Поэтому я не ожидаю, что MathWorks в ближайшее время предоставит поддержку GPUArray в Neural Network Toolbox.
Если вам конкретно нужно распараллелить minmax
на графическом процессоре, а не на нейронных сетях в целом, это будет не так сложно сделать самостоятельно - возможно, всего пара строк, включающих min
, max
и arrayfun
.
Сказав это, сообщение об ошибке может дать гораздо более подробное объяснение проблемы. Похоже, разработчики это тоже знают: если вы наберете edit nntype.data
и посмотрите на строку 93, откуда и появляется сообщение об ошибке, вы увидите строку комментария % TODO - More detailed response
. Ницца!