Відмінності між версіями «GPGPU. СПК»
Матеріал з Вікі ЦДУ
(Створена сторінка: '''GPGPU''' (англ. General-purpose graphics processing units — «GPU загального призначення») - техніка використан...) |
(→Особливості програмування) |
||
(не показано одну проміжну версію цього учасника) | |||
Рядок 1: | Рядок 1: | ||
'''GPGPU''' (англ. General-purpose graphics processing units — «GPU загального призначення») - техніка використання графічного процесору на відеокарті для проведення не графічних розрахунків. На даний час OpenCL є найросповсюдженішою мовою програмування GPU. | '''GPGPU''' (англ. General-purpose graphics processing units — «GPU загального призначення») - техніка використання графічного процесору на відеокарті для проведення не графічних розрахунків. На даний час OpenCL є найросповсюдженішою мовою програмування GPU. | ||
+ | |||
+ | ==Особливості програмування== | ||
+ | |||
+ | Відмінності розробки програм під 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.