Відкрити головне меню

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

OpenCL
логотип OpenCL
Тип GPGPU, API
Автор(и) Apple Inc.
Розробник Khronos Group
Стабільний випуск 2.2 (12 травня, 2017; 2 роки тому (2017-05-12))
Версії 2.2-10 (5 лютого 2019)[1]
Платформа x86-64, IA-32[d] і ARM
Операційна система крос-платформовий
Написано на C і C++
Ліцензія безоплатна
www.khronos.org/opencl

OpenCL у Вікісховищі?

Мета OpenCL полягає в тому, щоб доповнити OpenGL і OpenAL, які є відкритими галузевими стандартами для тривимірної комп'ютерної графіки і звуку, користуючись можливостями GPU. OpenCL розроблявся і підтримується некомерційним консорціумом Khronos Group, в який входять багато великих компаній, включаючи Apple, AMD, ARM, Intel, nVidia, Qualcomm, 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 року[2] та стандартизований 18 листопада 2013 року[3].

МоваРедагувати

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

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

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


Див. такожРедагувати

ПриміткиРедагувати

ПосиланняРедагувати