Вычисления на GPU. Основные подходы, архитектура, оптимизации

Этот курс лекций освещает основные способы разработки программного обеспечения, использующего графические процессоры (GPU) NVIDIA в параллельных вычислениях. Включает в себя обзор библиотек линейной алгебры, преобразования Фурье, генерации случайных чисел. Рассмотрен процесс быстрой разработки с помощью STL-подобной библиотеки Thrust.Первая половина курса включает обзор и сравнение современных процессоров и ускорителей в различных задачах, а также основы архитектуры CUDA и языка CUDA C++, необходимые для получения высокой производительности программ. Во второй половине представлено сравнение современных архитектур GPU NVIDIA, иерархия памяти и кэшей устройств, методы оптимизации программ и потоков данных. Отдельным пунктом рассмотрены интегрированные среды разработки, отладчики и профилировщик.Заключительная лекция представляет пример взаимодействия с популярным стандартом компьютерной графики OpenGL на примере численного решения стационарного уравнения Пуассона.

Прочтения курса