Спецкурс кафедры ММИ. — М.: Физический факультет МГУ, 2015. — 48 с.
Учебное пособие представляет собой краткий конспект вводного курса в программирование с помощью графических карт, прочитанного студентам кафедры (ранее она называлась кафедрой компьютерных методов физики) в 2013-2015 годах. Фактически речь идет о возможностях и способах программирования графических процессоров, получивших широкое распространение в последние годы. Рассмотрены средства, предлагаемые известнейшим производителем графических карт, - платформа CUDA фирмы NVIDIA: компилятор nvcc, его симбиоз со средой разработки Visual Studio, предложенные расширения языка C/C++ (дополнительные типы данных, ключевые слова, новые математические функции, синтаксис вызова программ, исполняемых на графической карте), а также особенности параллельного исполнения кода вообще, разделения общих ресурсов, синхронизации исполнения отдельных потоков программ. Анализируются параллельные реализации: базовых векторных алгоритмов, умножения матриц, сортировки (bitonic sort). Рассматривается использование предлагаемых фирмой NVIDIA библиотек: cuBLAS (базовые функции линейной алгебры), cuSPARSR (работа с разреженными матрицами), Thrust (объектно-ориентированный программный интерфейс).
Альтернативой привязки к конкретному производителю является использование независимых решений, работающих на более широком спектре устройств различных производителей, поэтому излагаются сведения о работе с библиотекой Boost, платформой OpenCL, библиотекой OpenCV. Для отображения результатов может быть выбран кроссплатформенный интерфейс OpenGL, поэтому излагаются основы его применения, тем более, что в рамках OpenGL теперь тоже существует возможность задействовать вычислительную мощь современных графических процессоров (язык GLSL) для отрисовки сложных трехмерных сцен. Не следует недооценивать и проникновения современных технолоший в самое популярное приложение последнего времени - браузере: даже в нем теперь (с помощью WebGL) можно создавать сложные вычислительные и графические программы, существенно ускоряемые наличием графического процессора; читатели смогут познакомиться с наиболее впечатляющими примерами таких программ.
Рассчитано на студентов старших курсов физического факультета и аспирантов, но может быть использовано всеми заинтересованными студентами, аспирантами и сотрудниками для первоначального знакомства с современными вычислительными возможностями.