Комплексы программ для численных расчётов на видеокартах с использованием библиотеки OpenCL

26 Aug 2014, 18:05
15m
Dubna

Dubna

Russia, 141980 Moscow region, Dubna

Speaker

Mr Dmitry Mazilkin (MIPT)

Description

В настоящее время использование видеокарт для решения физических задач получило широкое распространение. В данной работе обсуждается вопрос выбора между языком программирования CUDA и библиотекой OpenCL, перечислены их плюсы и минусы. Основной причиной выбора OpenCL может стать переносимость программного кода. На этапе построения вычислительного алгоритма следует отметить, что данные можно хранить либо в оперативной памяти суперкомпьютера и на каждой итерации загружать часть данных в память видео-ускорителя; либо хранить данные целиком в памяти видео-ускорителя, если размер задачи это позволяет. Второй вариант позволяет получить увеличение производительности в десятки раз для вычисления на видеокарте относительно расчётов на центральном процессоре. Существуют специфические задачи, в которых увеличение производительности может превысить сотню, такие примеры часто используются в книгах по GPGPU чтобы увлечь читателя. Но в численных расчетах задач газовой динамики, как правило, объём начальных данных много больше объёма видео-ускорителя. Поэтому чаще используется первый вариант, когда в память видеокарты данные загружаются частями, способными в ней уместиться. Полученные результаты вычислений показывают ускорение производительности в 5 раз для расчётов на видеокарте относительно вычислений на центральном процессоре. Причем большая часть времени, затрачиваемого на вычисления, тратится на передачу данных в память видео-ускорителя и копирования результатов обратно. Возникает естественное желание взять лучшее из двух подходов. Сейчас мы работаем над комплексом программ, в котором каждая видеокарта будет получать подобласть расчётной области, целиком умещающуюся в памяти видеокарты. Таким образом, пропадает необходимость на каждой итерации загружать и выгружать всю область из памяти видеокарты. Граничные ячейки подобластей будут передаваться посредством OpenMP (когда это возможно) и MPI. Конечно, не любая задача уместится в памяти видео-ускорителей. Поэтому, мы стремимся создать адаптивный алгоритм. Если размеры расчётной области и количество доступных видеокарт позволяют, то должен использоваться ускоренный алгоритм. В противном случае – более медленный алгоритм, дающий ускорение в 5 раз относительно производительности центрального процессора.

Primary author

Mr Dmitry Mazilkin (MIPT)

Presentation materials

There are no materials yet.