GPU кластер — це комп'ютерний кластер, в якому кожен вузол оснащений графічним процесором (GPU). Використовуючи обчислювальні потужності сучасних графічних процесорів за допомогою обчислень загального призначення на графічних процесорах (GPGPU), може бути виконаний дуже швидкий розрахунок в GPU-кластері.

Обладнання (ГПУ)

ред.

Апаратна класифікація GPU кластери поділяються на дві категорії: гетерогенні та гомогенні

Гетерогенні

ред.

Може використовуватися апаратне забезпечення обох основних IHV (AMD і nVidia).  Навіть якщо використовуються різні моделі одного GPU (наприклад, 8800GT, змішана з 8800GTX), кластер GPU вважається неоднорідним.

Гомогенні

ред.

Кожен окремий графічний процесор має однаковий клас, апарат і модель. (тобто однорідний кластер, що містить 100 8800GTs, все з однаковим обсягом пам'яті)

Класифікація кластера GPU відповідно до вищенаведеної семантики значною мірою спрямовує розробку програмного забезпечення на кластер, оскільки різні GPU мають різні можливості, які можна використовувати.

Обладнання (інше)

ред.

З'єднання

ред.

На додаток до комп'ютерних вузлів та їх відповідних графічних процесорів, необхідне досить швидке з'єднання для передачі даних між вузлами. Тип взаємозв'язку багато в чому залежить від кількості присутніх вузлів. Деякі приклади взаємоз'єднань включають Gigabit Ethernet і InfiniBand.

Постачальники

ред.

NVIDIA надає список Tesla Preferred Partners (TPP) з можливістю побудови та доставки повністю налаштованого кластера GPU з використанням GPGPU серії Tesla 20-series. AMAX Information Technologies, Dell, Hewlett-Packard і Silicon Graphics є одними з небагатьох компаній, які надають повний спектр кластерів і систем GPU[1].

Програмне забезпечення

ред.

Компоненти програмного забезпечення, необхідні для роботи багатьох машин, обладнаних GPU, включають:

  1. Операційна система
  2. Драйвер GPU для кожного типу GPU, присутнього в кожному вузлі кластера.
  3. Кластеризація API (наприклад, інтерфейс передачі повідомлень, MPI).
  4. Платформа кластера VirtualCL (VCL)[2] — це обгортка для OpenCL ™, яка дозволяє більшості незмінених програм прозоро використовувати кілька пристроїв OpenCL у кластері, як якщо б всі пристрої знаходилися на локальному комп'ютері.

Алгоритм відображення

ред.

Зіставлення алгоритму для запуску кластера графічного процесора дещо схоже на відображення алгоритму для запуску на традиційному комп'ютерному кластері.  Приклад: замість розподілу частин масиву з оперативної пам'яті, текстура ділиться між вузлами кластера GPU.

NVIDIA CUDA

ред.

CUDA — програмно-апаратна архітектура паралельних обчислень, яка дозволяє істотно збільшити обчислювальну продуктивність завдяки використанню графічних процесорів фірми Nvidia.

CUDA SDK надає можливість включати в текст програм на С виклик підпрограм, що виконуються на графічних процесорах Nvidia. Це реалізовано шляхом команд, які записуються на особливому діалекті C. Архітектура CUDA дає розробнику можливість на свій розсуд організовувати доступ до набору інструкцій графічного прискорювача й керувати його пам'яттю.

Первинна версія CUDA SDK була представлена 15 лютого 2007 року. У основі CUDA API лежить розширена мова C. Для успішної трансляції коду цією мовою, до складу CUDA SDK входить власний C-компілятор командного рядка nvcc компанії Nvidia. Компілятор nvcc створений на основі відкритого компілятора Open64.

Платформа паралельних обчислень CUDA

ред.

Платформа паралельних обчислень CUDA забезпечує набір розширень для мов C і С++, що дозволяють висловлювати як паралелізм даних, так і паралелізм завдань на рівні дрібних і великих структурних одиниць. Програміст може вибрати засоби розробки: мови високого рівня, такі як C, C++, Fortran або ж відкриті стандарти, такі як директиви OpenACC. Платформа паралельних обчислень CUDA використовується на сьогоднішній день[коли?] в тисячах GPU-прискорених додатків і тисячах опублікованих наукових статтях. Повний список засобів розробки і екосистема рішень CUDA доступний розробникам.

Переваги CUDA

ред.

У порівнянні з традиційним підходом до організації обчислень загального призначення допомогою можливостей графічних API, у архітектури CUDA відзначають наступні переваги в цій області:

  1. Інтерфейс програмування додатків CUDA (CUDA API) заснований на стандартній мові програмування Сі з деякими обмеженнями. На думку розробників, це повинно спростити і згладити процес вивчення архітектури CUDA
  2. Колективна між потоками пам'ять (shared memory) розміром в 16 Кб може бути використана під організований користувачем кеш з більш широкою смугою пропускання, ніж при вибірці зі звичайних текстур
  3. Більш ефективні транзакції між пам'яттю центрального процесора і відеопам'яттю
  4. Повна апаратна підтримка цілочисельних і побітових операцій
  5. Підтримка компіляції GPU коду засобами відкритого LLVM.

Примітки

ред.
  1. Buy NVIDIA Tesla Personal High Performance Supercomputers. NVIDIA (en-us) . Архів оригіналу за 8 січня 2019. Процитовано 8 січня 2019.
  2. 1. Архів оригіналу за 8 січня 2019. Процитовано 7 січня 2019.

Посилання та зовнішні посилання

ред.