Satu bagian proses mengunakan software video editing, paling memakan waktu ketika melakukan rendering video. Proses ini memerlukan kemampuan procesor. Sekarang ini sudah ada teknologi untuk mempercepat proses rendering video. Dinamai OpenCL sebagai standar terbuka (open source).

Jangan bingung dengan istilah OpenCL. OpenCl hanya aplikasi yang sudah terinstall di beberapa software. Dan software dengan dukungan OpenCL bisa memanfaatkan proses hardware yang ada pada PC untuk mempercepat kinerja software itu sendiri. Itu saja.

Untuk mempercepat render video, software video editing hanya mengandalkan proses dari CPU. Semakin cepat CPU maka semakin singkat pengerjaan editing. Format video sekarang sudah mencapai teknologi HD sampai yang lebih tinggi sepeti Blu-ray dan UHD (4K), diatas DVD bahkan jauh lebih tinggi dari VCD. Secepat apapun procesor harus memiliki banyak core atau multi core. Secepat apapun dan banyak inti procesor yang ada, tetap saja terasa lambat untuk rendering video.


Sejak tahun lalu dari produsen software dan hardware mulai menawarkan teknologi baru untuk memproses dari CPU dan VGA. Khusus untuk editing gambar dan video, Sony dan Adobe sudah menerapkan pada software mereka untuk memanfaatkan proses dengan CPU dan GPU (VGA). Bahkan lebih dahulu dari teknologi Nvidia menawarkan CUDA yang mengijinkan software memanfaatkan GPU untuk proses data.

OpenGL sudah dikenal oleh gaming dan disain CAD, disain rendering dengan memanfaatkan kemampuan GPU. Sekarang ada lagi OpenCL, sudah digunakan bagi beberapa aplikasi dan di dukung produsen hardware. Cara kerjanya hampir sama, hanya OpenCL lebih luas sebagai akselerasi proses software dan bukan menampilkan gambar seperti OpenGL.

OpenCL adalah fitur software yang bisa memanfaatkan kinerja VGA / GPU sebagai CPU. Aplikasi biasa umumnya mengandalkan kemampuan CPU saja. Dengan OpenCL, software dapat memberikan tugas ke CPU serta GPU bersama sama. Kerja software software menjadi lebih cepat, seakan memiliki tambahan CPU dan GPU yang ada. Bukan GPU di ekternal VGA, teatpi termasuk GPU internal di dalam procesor.

Kembali ke OpenGL dikembangkan oleh Silicon Graphic di awal 90an, dan dipakai oleh OS Linux, Mac dan perangkat embedded lainnya. Disini perbedaan antara OpenGL dan OpenCL.
Tentang  OpenGL, CPU hanya menangani tugas rutin grafik  yang komplek dan perhitungan geometri. Dan GPU  (VGA) menangani tugas sederhana seperti posisi vertec dan warna pixel, sisanya tetap ditangani oleh CPU. Tetapi hasil proses umumnya ditampilkan dalam bentuk grafik , gambar atau tampilan 3D ke monitor




OpenCL berbeda dengan OpenGL.
OpenCL (Open Computing Language) didukung oleh Apple, dan AMD tahun 2008. 2010 di ratifikasi oleh Khronos group menjadi OpenCL versi 1.1, dengan menambah pararel programming lebih fleksibel. Dan di update kembali ke OpenCL 1.2 pada tahun 2011.
OpenCL tidak hanya menangani grafik saja. Karena procesor dan GPU modern sudah disatukan menjadi GPGPU. OpenCL menangani proses rutin dari CPU ke GPU yang disebut Kernel. Sebagian tugas di CPUdan sebagian lain diambil GPU.
Singkatnya pengolahan data dari CPU dikirim ke GPU untuk diolah, lalu hasilnya dikembalikan lagi ke CPU

Bagan sederhana dengan eksekusi proses dari CPU dan GPU dengan sistem OpenCL.



Tugas Kernel OpenCL menangani 3 bagian utama.
Kernel menangani akses semua perangkat memory, termasuk lokal dan private memory. Kernel menangani shader dan memiliki sistem sinkronisasi sehingga bisa mengkoordinasi data prooses melalui unit multi eksekusi. Singkatnya sebagian proses dapat diambil alih oleh GPU bila software sudah mendukung OpenCL.

AMD menjelaskan bagan kerja antara sistem OpenCL dan DirectX (misalnya). Penanganan komputasi computer untuk GPU dengan kernel OpenCL, bisa dimanfaatkan untuk rendering gambar dari aplikasi. Sedangkan DirectX atau aplikasi akselarasi lain memang memiliki tugas terbatas.


Versi OpenCL
OpenCL 1.0
Pertama ada di Mac OS X Leopard 2009.

OpenCL 1.1
Tahun 2010, Khronos grup meratifikasi. Terintegrasi dengan fungsi C. Perbaikan OpenGL.

OpenCL 1.2
Tahun 2011

OpenCL 1.3
Tahun 2013.

OpenCL 2.0
Dari tahun 2011 sampai 2018.
Digunakan untuk AMD GCN seperti HD 7000, HD 8000, RX VGA. AMD GCN APU, Intel gen5 keatas, Adreno 5xx, 6xx, ARM Mali G51, G57, G31.
AMD mendukung OpenCL 2.0 dari CPU, APU procesor dan GPU.
Intel mendukung OpenCL 2.0
Di tahun 2017, Nvidia Kepler, Maxwell, Pascal, Volta dan Turing masih belum sepeda di evaluasi.

OpenCL 2.1
Tahun 2015 diumumkan dalam konferensi Game Dev San Francisco.

Bekerja dengan internal grafik  Intel 7th, 8th, 9th, 10th, 11th, 12th gen (Kaby Lake, Coffee Lake, Comet Lake, Ice Lake, Tiger Lake)

OpenCL 2.2
Tahun 2018, membawa OpenCL C++ kernel.

OpenCL 3.0
Tahun 2020.
Kabar dapat bekerja dengan semua perangkat OpenCL 1.2+

Nvidia mendukung OpenCL API dengan bekerja di GPU CUDA dengan driver t4erbaru.

Oktober 2020
Nvidia mengembangkan NVnec - Encoder sejak generasi Kepler di tahun 2012. Menangani proses CPU ke GPU .
Fitur tersebut penting di teknilogi video streaming, atau encoding video kapasitas besar yang dapat dipercepat melalui kemampuan GPU.

Nvidia RTX 3000 mendukung encoding dan decoding AV1, mengkompresi video dan menayangkan video melalui proses GPU. Fitur tersedia di GPU GA102 dan GA104. Kecuali GPU
Generasi AV1 agak berbeda, karena mendukung encodin video sampai 10bit dan 8K x 8K.
Sedangkan VGA yang tidak mendukung AV1 hanya terbatas sampai encoding HEVC - H265



NVENC (Encoding) H.264 (AVCHD) YUV 4:2:0 H.264 (AVCHD) YUV 4:4:4 H.264 (AVCHD) LOSSLESS H.265 (HEVC) YUV 4:2:0 H.265 (HEVC) YUV 4:4:4 H.265 (HEVC) LOSSLESS
GPU MAX Res. 8-bit MAX Res. 8 Bit MAX Res. 8 bit MAX Res. 8 / 10 MAX Res. MAX Res. 8 / 10
Maxwell Gen1 (1) 4096 x 4096 4096 x 4096 4096 x 4096 N/A N/A N/A
Maxwell Gen2 4096 x 4096 4096 x 4096 4096 x 4096 4096 x 4096 N/A N/A
Maxwell (GM206) 4096 x 4096 4096 x 4096 4096 x 4096 4096 x 4096 4096 x 4096 4096 x 4096
Pascal 4096 x 4096 4096 x 4096 4096 x 4096 8192 x 8192 10-bit 8192 x 8192 10-bit 8192 x 8192 10-bit
Volta 4096 x 4096 4096 x 4096 4096 x 4096 8192 x 8192 10-bit 8192 x 8192 10-bit 8192 x 8192 10-bit (2)
Turing 4096 x 4096 4096 x 4096 4096 x 4096 8192 x 8192 10-bit 8192 x 8192 10-bit 8192 x 8192 10-bit
Ampere 4096 x 4096 4096 x 4096 4096 x 4096 8192 x 8192 10-bit 8192 x 8192 10-bit 8192 x 8192 10-bit
(1) GM 108 dan GP108 tidak mendukung, (2) GP100 sampai 4K


Selanjutnya dari dampak kecepatan pengolahan grafik dengan procesor untuk aplikasi

Tabel
Tentang OpenCL dengan kinerja CPU dan GPU secara bersamaan
OpenCL untuk aplikasi, dan dampak peningkatan kecepatan
Manfaat OpenCL, perbedaan kecepatan OpenCL dan tanpa OpenCL
Hardware yang mendukung OpenCL