OpenCL
OpenCL (від англ. Open Computing Language) — фреймворк для створення комп'ютерних програм, пов'язаних з паралельними обчисленнями на різних графічних (англ. GPU) і центральних процесорах (англ. CPU). У фреймворк OpenCL входять мова програмування, яка базується на стандарті C99, та прикладний програмний інтерфейс (англ. API). OpenCL забезпечує паралельність на рівні інструкцій та на рівні даних і є реалізацією техніки GPGPU. OpenCL — повністю відкритий стандарт, його використання доступне на базі вільних ліцензій.
Тип | GPGPU, API |
---|---|
Автор | Apple Inc. |
Розробник | Khronos Group |
Стабільний випуск | 2.2 (12 травня 2017 ) |
Платформа | x86_64, IA-32 і ARM |
Операційна система | крос-платформовий |
Мова програмування | C++ і C |
Ліцензія | безоплатна |
Вебсайт | www.khronos.org/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 року. Один з проєктів WCG послуговується цим стандартом.[1]
OpenCL 2.0
ред.Був представлений 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. (рос.)
Це незавершена стаття про програмування. Ви можете допомогти проєкту, виправивши або дописавши її. |