Az OpenCL egy Apple által megálmodott és a Khronos Group vezetésével fejlesztett felület, mely nyílt ipari szabványnak tekinthető, és a gyártók széles körben támogatják. A koncepció célja az adatpárhuzamos végrehajtásra tervezett, illetve a heterogén módon programozható processzorok képességeinek minél jobb kiaknázása. Ezzel gyorsítható a feldolgozás, valamint a rendelkezésre álló erőforrások energiahatékony felhasználása is lehetséges.
Hirdetés
Az OpenCL koncepciójának alappillérei között szerepel, hogy tudjon kezelni bármilyen végrehajtó egységet, a végrehajtási modell pedig többdimenziós szerkezetre épít, ahol az adatokon párhuzamosan futtathatók a számítások.
Az OpenCL segítségével a programozók képesek kihasználni a grafikus processzorok általános számítási teljesítményét, így azok a grafika mellett olyan jól párhuzamosítható feladatokra is befoghatók, amelyeken eddig a központi processzor dolgozott. Természetesen az OpenCL lehetőségei itt nem érnek véget, hiszen gyakorlatilag bármilyen speciális processzorhoz alkalmazható a felület, a rendszer hatékonyabb kihasználása érdekében.
Az OpenCL felület az operációs rendszertől teljesen független, így bárhol megoldható a támogatása. A megfelelő driverről mindig az adott hardver gyártója gondoskodik. Esetenként előfordulhat, hogy egy cég a konkurens hardvereit is támogatja, de ez egyéni preferencia kérdése. Itt persze szó sincs hivatalos támogatásról, vagyis a nem gyári drivereket csak saját felelősségre szabad használni.
A PC-s gyártók támogatásával kapcsolatban, a könnyebb átláthatóság kedvérét egy táblázatba foglaltuk össze az aktuális helyzetet a legfrissebb, végleges driverek képességeit figyelembe véve:
Driver | AMD |
Intel | NVIDIA |
---|---|---|---|
OpenCL verzió |
1.2 |
1.2 |
1.1 |
OpenCL driver típusa | Heterogén (CPU+GPU és APU) |
Heterogén (CPU és APU) | csak GPU |
APU-k kezelése (OpenCL 1.2-es felületen) |
Minden AMD APU |
Harmadik és negyedik generációs Core i, illetve Pentium és Celeron sorozat vagy újabb |
- |
GPU-k kezelése (OpenCL 1.2-es felületen) |
Radeon HD 5000, 6000, 7000 és R sorozat vagy újabb | Intel HD Graphics 2500/4000 és Iris sorozat vagy újabb | - |
APU-k kezelése (OpenCL 1.1-es felületen) |
- | - |
- |
GPU-k kezelése (OpenCL 1.1-es felületen) |
- |
- |
GeForce 400, 500, 600 és 700 sorozat vagy újabb |
GPU-k kezelése (OpenCL 1.0-s felületen) |
Radeon HD 4000 sorozat (béta támogatás) |
- | Ion; GeForce 8, 9, 100, 200, 300 sorozat |
Konkurens CPU-k nem hivatalos támogatása | Intel, VIA |
nincs | - |
OpenCL CPU driver utasításkészlete | SSE2, SSE3, SSE4A, AVX, XOP, FMA3, FMA4 |
SSE4.1, SSE4.2, AVX |
- |
Operációs rendszer támogatása | Windows 7, 8, 8.1, Vista, XP, illetve Linux |
Windows 7, 8, 8.1, XP, illetve Linux | Windows 7, 8, 8.1, Vista, XP, illetve Linux |