OpenCL
![]() | |
![]() | |
Тип | GPGPU, API |
---|---|
Автор | Apple Inc. |
Розробник | Khronos Group |
Стабільний випуск | 2.2 (12 травня 2017 ) |
Платформа | x86_64, IA-32 і ARM |
Операційна система | крос-платформовий |
Мова програмування | C і C |
Ліцензія | безоплатна |
Вебсайт | 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, ARM, Intel, nVidia, Qualcomm, Sun Microsystems, Sony Computer Entertainment та інші.
OpenCL був розроблений у компанії Apple Inc. Apple внесла пропозицію по розробці специфікації у комітет Khronos Group. 16 червня 2008 року, Khronos Compute Working Group була сформована з представниками компаній котрі займаються розробкою: CPU, GPU та програмного забезпечення.
Був представлений разом з Mac OS X Snow Leopard 8 червня 2009 року.
Був представлений 14 червня 2010 року
Був представлений 15 листопада 2011 року. Один з проєктів WCG послуговується цим стандартом.[1]
Був представлений 22 липня 2013 року[2] та стандартизований 18 листопада 2013 року[3].
Мова OpenCL виділяється тим, що дозволяє програмам динамічно визначати, які процесори доступні, включаючи багатоядерні центральні процесори і графічні процесори. Це дозволяє розробникам динамічно масштабувати продуктивність своїх програм в залежності від доступного апаратного забезпечення клієнтів.[4]
Мова OpenCL котра використовується для написання ядра (Kernel), частини що буде розпаралелюватися, має особливості:
- Відсутня підтримка вказівників на функції, рекурсії, бітових полів, масивів змінної довжини, стандартних заголовних файлів.
- Розширення мови для паралелізму: векторні типи, синхронізація, функції для Work-items/Work-Groups.
- Модифікатори доступу: __global, __local, __constant, __private.
- ↑ Help. www.worldcommunitygrid.org. Процитовано 12 вересня 2022.
- ↑ Khronos Releases OpenCL 2.0. khronos.org. Архів оригіналу за 17 серпня 2013. Процитовано 4 лютого 2014.
- ↑ Khronos Finalizes OpenCL 2.0 Specification for Heterogeneous Computing. Khronos Group. Архів оригіналу за 11 листопада 2020. Процитовано 4 лютого 2014.
- ↑ OpenCL: допомагаючи розробникам розмовляти однією мовою. Архів оригіналу за 1 липня 2013. Процитовано 27 листопада 2009. (рос.)
- Інформація про OpenCL на сайті apple.com/ru/ (рос.)
- www.khronos.org/opencl [Архівовано 9 серпня 2011 у Wayback Machine.] Офіційна сторінка стандарту (англ.)
- www.khronos.org/registry/cl/specs/ Сторінка специфікації (англ.)
- «OpenCL: What you need to know» [Архівовано 13 вересня 2008 у Wayback Machine.], MacWorld, серпень 2008
- OpenCL-Z: OpenCL Information utility [Архівовано 13 січня 2010 у Wayback Machine.]
- OpenCL. Что это такое и зачем он нужен? (если есть CUDA). Хабрахабр. 13 жовтня 2009. Архів оригіналу за 20 березня 2017. Процитовано 18 березня 2017. (рос.)
- OpenCL. Подробности технологии. Хабрахабр. 19 жовтня 2009. Архів оригіналу за 19 березня 2017. Процитовано 18 березня 2017. (рос.)
- язык параллельных вычислений OpenCL. деньги онлайн. 12 травня 2012. Архів оригіналу за 19 березня 2017. Процитовано 18 березня 2017. (рос.)
![]() |
Це незавершена стаття про програмування. Ви можете допомогти проєкту, виправивши або дописавши її. |