як працює opencl
Як ви можете собі уявити, апаратна архітектура графічних процесорів може суттєво відрізнятися. Існують різні виробники, і навіть різні покоління графічних процесорів від одного виробника можуть бути не порівнянними. У той же час виробники графічних процесорів зазвичай не розголошують всіх подробиць про апаратну частину своєї продукції для громадськості. Одним із наслідків цього є необхідність використовувати пропрієтарні драйвери під Linux, якщо ви хочете повною мірою скористатися своєю графічною картою.
На щастя, галузевий консорціум, очолюваний The Khronos Group, розробив відкритий стандартизований інтерфейс під назвою OpenCL, що дозволяє використовувати графічний процесор як пристрій цифрової обробки. OpenCL пропонує подібну до C99 мову програмування з сильним акцентом на паралельних обчисленнях. Програмі, яка хоче використовувати OpenCL, знадобиться джерельний код OpenCL, який вона передає апаратно-специфічному компілятору під час виконання. Таким чином програми можуть використовувати OpenCL на різних архітектурах графічних процесорів (навіть одночасно). Усі апаратні “секрети” приховані в цьому компіляторі і, як правило, не видимі користувачеві (або програмі). Скомпільований код OpenCL завантажується у ваш графічний процесор і – за певних викликів API – він готовий виконати для вас обчислення.