Интерактивное моделирование на GPGPU. Первый опыт и перспективы (Вадим Левченко, ИПМ им. М.В.Келдыша) В последние годы в численном моделировании назревала революция. Зародившись в компьютерных играх специфического жанра (шутерах), аппаратное ускорение "трехмерной" графики вылилось в резкое увеличение производительности (выраженной в элементарных операциях с плавающей точкой) графических процессоров (GPU), а также темпа обмена данными между ними и памятью. В результате, современные GPU превосходят по этим параметрам обычные CPU более чем на порядок при прочих равных условиях. Для удобства использования вычислительных ресурсов GPU в вычислениях общего назначения (GPGPU), была разработана технология cuda, а также язык OpenCL. "Удобство" тут означает "схожесть" с обычными технологиями и языками программирования, в частности, языком C, но одновременно предполагает замену традиционных моделей вычислений (начиная от последовательной, многопоточной с единым адресным пространством и до модели Хоара) на host-device модель с разноуровневым параллелизмом (в терминах cuda --- нити, блоки, сетка) и несколькими специфическими областями памяти (локальная для нити, разделяемая нитями одного блока, глобальная для всей сетки, память констант, и т.д.). Со всей этой историей можно ознакомиться на сайте nvidia.com/cuda или в других местах, благо, публикаций по данной тематике в последнее время много. Семинар будет посвящен вопросам практического использования открывающихся возможностей в задачах, интересных в рамках гранта РФФИ "Локально-рекурсивные нелокально-асинхронные (LRnLA) алгоритмы для гетерогенных компьютеров". Я расскажу о тех вычислительных ресурсах, которые нам уже доступны, и о тех, что станут доступными в ближайшем будущем. Упомяну наши успехи и неудачи в конкуренции с лучшими в мире библиотеками линейной алгебры для GPGPU. ;) И подробнее остановлюсь на первых практических приложениях для GPGPU, созданных с учётом разработанной модели вычислений. |