Відмінності між версіями «GPGPU. СПК»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
(Особливості програмування)
 
Рядок 3: Рядок 3:
 
==Особливості програмування==
 
==Особливості програмування==
  
----
+
Відмінності розробки програм під CPU та GPU.
 +
 
 +
{| border="1"
 +
|Тип відмінності||CPU  ||GPU                   
 +
|-
 +
|Створення потоку(нитки)||Займує дуже багато часу||Займає мало часу
 +
|-
 +
|Робота у потоці(нитки)||Може виконуватись усе що завгодно||Краще виконувати легкі математичні обислення
 +
|-
 +
|Кількість потоків(ниток)||Мало||Дуже багато(чим більше тим краще)
 +
|}
 +
 
 +
Алгоритм роботи програми:
 +
 
 +
*Скопіювати дані з ПЗУ в пам'ять GPU.
 +
*Запустити нитки обробки даних.
 +
*Дочекатися завершення обробки даних.
 +
*Скопіювати дані з пам'ять GPU в ПЗУ.
 +
 
 +
Нитки обробки даних являють собою або окрему функцію(CUDA або OpenCL) або тіло цикла(C++ AMP).В середині нитки можна отримати індекс нитки, індекс може бути декількох вимірів, це індекс використо
 +
 
 +
==Реалізація==
 +
*OpenCL - відкритий стандарт по розробці програм котрі можуть виконуватися на графічних процесорах та центральних процесорах Мова програмування C.
 +
*DirectCompute - прикладний програмний інтерфейс котрий дозволяє робити обчислення на відеоадаптері, даний інтерфейс є частиною DirectX, підтримується починаючи з 10 версії DirectX.
 +
*C++ AMP - бібліотека розроблена компанією Microsoft для обчислень за допомогою графічних процесорів, для роботи необхідний DirectX 11. Мова програмування C++
 +
*CUDA - архітектура для програмно апаратних обчислень за допомогою графічних процесорів від компанії NVIDIA. Мова програмування C.
 +
*AMD FireStream - архітектура для програмно апаратних обчислень за допомогою графічних процесорів від компанії AMD.

Поточна версія на 19:14, 10 листопада 2014

GPGPU (англ. General-purpose graphics processing units — «GPU загального призначення») - техніка використання графічного процесору на відеокарті для проведення не графічних розрахунків. На даний час OpenCL є найросповсюдженішою мовою програмування GPU.

Особливості програмування

Відмінності розробки програм під CPU та GPU.
Тип відмінності CPU GPU
Створення потоку(нитки) Займує дуже багато часу Займає мало часу
Робота у потоці(нитки) Може виконуватись усе що завгодно Краще виконувати легкі математичні обислення
Кількість потоків(ниток) Мало Дуже багато(чим більше тим краще)

Алгоритм роботи програми:

  • Скопіювати дані з ПЗУ в пам'ять GPU.
  • Запустити нитки обробки даних.
  • Дочекатися завершення обробки даних.
  • Скопіювати дані з пам'ять GPU в ПЗУ.

Нитки обробки даних являють собою або окрему функцію(CUDA або OpenCL) або тіло цикла(C++ AMP).В середині нитки можна отримати індекс нитки, індекс може бути декількох вимірів, це індекс використо

Реалізація

  • OpenCL - відкритий стандарт по розробці програм котрі можуть виконуватися на графічних процесорах та центральних процесорах Мова програмування C.
  • DirectCompute - прикладний програмний інтерфейс котрий дозволяє робити обчислення на відеоадаптері, даний інтерфейс є частиною DirectX, підтримується починаючи з 10 версії DirectX.
  • C++ AMP - бібліотека розроблена компанією Microsoft для обчислень за допомогою графічних процесорів, для роботи необхідний DirectX 11. Мова програмування C++
  • CUDA - архітектура для програмно апаратних обчислень за допомогою графічних процесорів від компанії NVIDIA. Мова програмування C.
  • AMD FireStream - архітектура для програмно апаратних обчислень за допомогою графічних процесорів від компанії AMD.