Использование узлов с графическими ускорителями

GPGPU (general-purpose graphics processing units) - концепция использования для выполнения расчётов графического ускорителя вместо центрального процессора. В процессе эволюции видеокарт в определённый момент стало понятно, что они не только не уступают CPU в производительности, но на определённых задачах значительно превосходят за счёт существенно большего количества ядер.

Важный момент при использовании графических ускорителей заключается в том, что они реализуют принцип SIMD (single instruction, multiple data - одиночный поток команд, множественный поток данных) и для задач другого типа подходят плохо.

Существует несколько реализаций GPGPU, в частности:

  • AMD FireStream (ATI Stream).
  • AMD ROCm (Radeon Open Compute)
  • NVIDIA CUDA (Compute Unified Device Architecture) - архитектура параллельных вычислений, поддерживаемая NVIDIA.
  • DirectCompute, входит в состав Microsoft DirectX (начиная с версии 11).
  • OpenCL (Open Computing Language) - открытый стандарт для использования любых вычислительных ресурсов: CPU, GPU, карт расширения, … . Поддерживается как AMD так и NVIDIA.


В нашем центре используются сервера с графическими ускорителями NVIDIA, поэтому основные реализации GPGPU: CUDA и OpenCL от NVIDIA. Страницы на сайте, связанные с GPGPU:


На сайте NVIDIA имеется список прикладного ПО сторонних разработчиков, умеющего использовать графические ускорители этой фирмы. Если используемое вами ПО есть в этом списке, может быть полезно сравнить скорость его работы на CPU и на узлах с GPU и, возможно, начать использовать GPU.