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 у Вікісховищі |
Мета 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 послуговується цим стандартом.
OpenCL 2.0 Редагувати
Був представлений 22 липня 2013 року та стандартизований 18 листопада 2013 року.
Мова Редагувати
Мова OpenCL виділяється тим, що дозволяє програмам динамічно визначати, які процесори доступні, включаючи багатоядерні центральні процесори і графічні процесори. Це дозволяє розробникам динамічно масштабувати продуктивність своїх програм в залежності від доступного апаратного забезпечення клієнтів.
Мова OpenCL котра використовується для написання ядра (Kernel), частини що буде розпаралелюватися, має особливості:
- Відсутня підтримка вказівників на функції, рекурсії, бітових полів, масивів змінної довжини, стандартних заголовних файлів.
- Розширення мови для паралелізму: векторні типи, синхронізація, функції для Work-items/Work-Groups.
- Модифікатори доступу: __global, __local, __constant, __private.
Див. також Редагувати
Примітки Редагувати
- Help. www.worldcommunitygrid.org. Процитовано 12 вересня 2022.
- . khronos.org. Архів оригіналу за 17 серпня 2013. Процитовано 4 лютого 2014.
- . Khronos Group. Архів оригіналу за 11 листопада 2020. Процитовано 4 лютого 2014.
- OpenCL: допомагаючи розробникам розмовляти однією мовою. Архів оригіналу за 1 липня 2013. Процитовано 27 листопада 2009. (рос.)
Посилання Редагувати
- (рос.)
- www.khronos.org/opencl [ 9 серпня 2011 у Wayback Machine.] Офіційна сторінка стандарту (англ.)
- Сторінка специфікації (англ.)
- «OpenCL: What you need to know» [ 13 вересня 2008 у Wayback Machine.], MacWorld, серпень 2008
- OpenCL-Z: OpenCL Information utility [ 13 січня 2010 у Wayback Machine.]
- . Хабрахабр. 13 жовтня 2009. Архів оригіналу за 20 березня 2017. Процитовано 18 березня 2017. (рос.)
- . Хабрахабр. 19 жовтня 2009. Архів оригіналу за 19 березня 2017. Процитовано 18 березня 2017. (рос.)
- . деньги онлайн. 12 травня 2012. Архів оригіналу за 19 березня 2017. Процитовано 18 березня 2017. (рос.)
Це незавершена стаття про програмування. Ви можете допомогти проєкту, виправивши або дописавши її. |