В MATLAB добавлена поддержка GPGPU

В новой версии MATLAB R2010b в компонент Parallel Computing Toolbox была добавлена официальная поддержка вычислений с применением GPU. В настоящий момент объявлено о поддержке графических процессоров NVidia. Об этом заявила глава направления Parallel Computing в компании MathWorks Silvina Grad-Freilich на конференции NVIDIA GPU Technology Conference.

Пользователи новой версии получили возможность использовать GPGPU вычисления двумя способами. Первый - это возможность вызова пользователями CUDA-ядер (kernels), разработанных программистами MathWorks, в своих приложениях на языках C и Fortran. Во втором варианте происходит вызов специальных процедур, встроенных в MathLab. Например, следующий код демонстрирует эту возможность.
 

>> A = someArray(1000, 1000);

>> G = gpuArray(A); % Передача данных в память GPU

>> F = fft(G); % Вычисления БПФ на GPU

>> x = G\b; % Вычисления на GPU

>> z = gather(x); % Возвращение результатов вычислений

 
В этом случае MATLAB берет на себя все заботы по инициализацией GPU, передаче данных из обычной оперативной памяти в память графической карты и другим достаточно низкоуровневым манипуляциям с GPGPU. Такая забота о пользователях будет важна в первую очередь прикладным специалистам в своей области, которые не являются профессиональными программистами.
 
Помимо этого в новой версии работу можно распределить между GPU-процессорами узлов вычислительного кластера. Это предоставляет еще большие возможности по интеграции MATLAB в такие системы распределенных вычислений как Grid.
 

Ссылки по теме новости:

  • О поддержке GPGPU на официальном сайте MathWorks
  • Данная новость на HPCWire
  • Описание Parallel Computing Toolbox
  • Конференция NVIDIA GPU Technology Conference