OpenCL

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
OpenCL
логотип OpenCL
Автор(и) Apple Inc.
Розробник(и) Khronos Group
Стабільний випуск 2.0 (22 липня 2013; 271 день тому)
Операційна система крос-платформовий
Тип GPGPU, API
Ліцензія безоплатна
Сайт www.khronos.org/opencl

OpenCL (від англ. Open Computing Language) — фреймворк для створення комп'ютерних програм, пов'язаних з паралельними обчисленнями на різних графічних (англ. GPU) і центральних процесорах (англ. CPU). У фреймворк OpenCL входять мова програмування, яка базується на стандарті C99, та інтерфейс програмування комп'ютерних програм (англ. API). OpenCL забезпечує паралельність на рівні інструкцій та на рівні даних і є реалізацією техніки GPGPU. OpenCL — повністю відкритий стандарт, його використання доступне на базі вільних ліцензій.

Мета OpenCL полягає в тому, щоб доповнити OpenGL і OpenAL, які є відкритими галузевими стандартами для тривимірної комп'ютерної графіки і звуку, користуючись можливостями GPU. OpenCL розроблявся і підтримується некомерційним консорціумом Khronos Group, в який входять багато великих компаній, включаючи Apple, AMD, Intel, nVidia, Sun Microsystems, Sony Computer Entertainment та інші.

Історія[ред.ред. код]

OpenCL був розроблений у компанії Apple Inc. Apple внесла пропозицію по розробці специфікації у комітет Khronos Group. 16 червня 2008 року, Khronos Compute Working Group була сформована з представниками компаній котрі займаються розробкую: CPU, GPU та програмного забезпечення.

OpenCL 1.0[ред.ред. код]

Був представлений разом з Mac OS X Snow Leopard 8 червня 2009 року.

OpenCL 1.1[ред.ред. код]

Був представлений 14 червня 2010 року

OpenCL 1.2[ред.ред. код]

Був представлений 15 листопада 2011 року

OpenCL 2.0[ред.ред. код]

Був представлений 22 липня 2013 року[1] та стандартизований 18листопада 2013 року[2].

Мова[ред.ред. код]

Мова OpenCL виділяється тим, що дозволяє програмам динамічно визначати, які процесори доступні, включаючи багатоядерні центральні процесори і графічні процесори. Це дозволяє розробникам динамічно масштабувати продуктивність своїх програм в залежності від доступного апаратного забезпечення клієнтів.[3]

Мова OpenCL котра використовується для написання ядра (Kernel), частини що буде розпаралелюватися, має особливості:

  • Відсутня підтримка вказівників на функції, рекурсії, бітових полів, масивів змінної довжини, стандартних хідер файлів.
  • Розширення мови для паралелізму: векторні типи, синхронізація, функції для Work-items/Work-Groups.
  • Модифікатори доступу: __global, __local, __constant, __private.


Див. також[ред.ред. код]

Примітки[ред.ред. код]

Посилання[ред.ред. код]