OpenCl adalah Open Computing Language yang merupakan sebuah kerangka kinerja yang bertugas untuk mengeksekusi berbagai platform arsitektur yang terdiri dari GPU dan CPU. OpenCL bertugas untuk menentukan bahasa pemrograman dengan berdasarkan C99 untuk kebutuhan pemrograman antarmuka dan perangkat aplikasi atau API.
OpenCL punya fungsi untuk mengontrol kinerja berbagai perangkat keras pada komputer misalnya CPU dan GPU. Selain itu, salah satu contoh penerapan dari OpenCl yaitu driver pada GPU.
OpenCL bisa menyediakan tampilan yang standar yang digunakan untuk komputasi paralel. Maksud parallel yaitu data tersebut nantinya dapat diolah dalam waktu yang bersamaan baik oleh GPU maupun CPU. Hal ini bermanfaat untuk meningkatkan kecepatan.
OpenCL bisa berperan dalam mengambil serta menggabungkan keunggula dari masing-masing core. Contohnya GPU yang diketahui memiliki keunggulan pada bagian FPU atau Floating Point Unit. Dengan adanya OpenCL, maka CPU tidak perlu lagi harus menghitung bilangan yang dimiliki FPU. Hal ini karena tugas untuk menghitung bilangan pada FPU tersebut telah beralih ke GPU.
Kit pengembangan perangkat lunak mencakup perpustakaan, berbagai debugging, pembuatan profil dan alat kompilasi. Serta binding yang memungkinkan bahasa pemrograman CPU memanggil kode GPU. Sedangkan inti CUDA akan menulis kode yang bisa berjalan sesuai arsitektur SIMD paralel secara simultan. Kode ini mencakup beberapa jenis GPU dan juga perangkat keras non-GPU seperti nVidia Tesla.