Apa perbedaan dan pengembangan CUDA vs OpenCL

Keduanya sama sama diperuntukan bagi akselerasi aplikasi. Memberikan sebagian tugas CPU dan diberikan ke GPU / VGA.
Dari data tahun 2011.
Teknologi CUDA. Nvidia memiliki pemasaran lebih baik. Pengembangan software hanya mendukung di satu paket saja dan ekslusif untuk GPU Nvidia.
Teknologi OpenCL tidak memiliki marketing yang baik, dan awalnya belum terlihat. Tapi standar OpenCL adalah standar terbuka yang bisa dipakai oleh software dan hardware. Semua hardware dan software boleh memanfaatkan. Keuntungan dari OpenCL memiliki pendukung lebih banyak

Sebelum melangkah dalam bentuk seperti apa pengunaan OpenCL vs CUDA.
Hardware yang dibutuhkan untuk OpenCL dan CUDA adalah VGA. Saat ini ada 3 produsen VGA dari Nvidia, AMD dan Intel.
Software yang dibutuhkan hanya aplikasi yang mendukung OpenCL dan CUDA, misalnya software Adobe Photoshop atau Sony Vegas Pro.
Software lainnya tidak ada, karena sudah termasuk dalam driver VGA ketika di install ke computer
Yang perlu diketahui, OpenCL adalah Nvidia, AMD dan Intel. Sedangkan CUDA hanya didukung oleh Nvidia.

Mana yang dipilih, OpenCL atau CUDA.

  • Saat ini mungkin OpenCL lebih baik, tapi kedepan sama saja. CUDA masih terbatas bagi produk Nvidia saja. Bila pemilik Nvidia ingin mengunakan fitur OpenCL, masih bisa memanfaatkan OpenCL misalnya melalui tool PyCUDA. Ma
  • Dari AMD ATI sudah pasti mendukung OpenCL.
  • Dari Intel. Maret 2013 lalu sudah mendukung teknologi OpenCL 1.2 untuk generasi procesor ke 3 Ivy Bridge dan ke 4 Haswell. Intel ikut mengembangkan OpenCL bersama internal GPU.
Mana yang lebih baik, tidak terlalu penting. Penguna hardware dan software hanya membutuhkan perangkat untuk akeselerasi (mempercepat). Selama proses GPU bisa membantu CPU, dan mempercepat kinerja aplikasi berat. Sistem apapun yang dipakai akan sama baik. Sekarang banyak procesor sudah dibuat dengan GPGPU / internal graphic procesor atau computer dengan tambahan ekternal VGA yang lebih kuat. Keduanya bisa memanfaatkan teknologi OpenCL.

Apakah semua hardware VGA bisa memanfaatkan sistem OpenCL

Ada batasannya. Tidak semua VGA dan internal VGA bisa menjalankan OpenCL. Adobe Premiere Pro CC membatasi sampai seri Radeon HD 6000 keatas. Sony Vegas Pro dapat memanfaatkan Radeon HD 5000 keatas.
Hal lain dari dukungan driver VGA masing masing produsen. Sony Vegas Pro dapat memanfaatkan fitur CUDA untuk versi driver 270 atau lebih tinggi. Dengan batas minimum seri VGA GTX 4xx keatas dan GT 2xx keatas, atau Quadro GPU 600 keatas.
Untuk AMD Radeon dengan OpenCL harus mengunakan driver Catalyst versi 11.7 atau lebih tinggi, dan minimal VGA tipe Radeon HD 5xxx sampai FirePro GPU.
Tergantung dari software, bila mengijinkan pengunakan VGA untuk proses. Akan dimasukan dalam daftar model chip apa saja yang akan membantu proses gambar. Bila hardware computer dibuat tahun 2011, besar kemungkinan dapat digunakan untuk proses OpenCL.

Mengapa OpenCL lebih cepat untuk mengolah data.

Tanpa OpenCL
Bila proses video atau gambar mengunakan procesor 4 core dari CPU, maka hanya 4 core procesor saja yang bekerja untuk aplikasi. Walau procesor sangat cepat mencapai 3Ghz, tetapi jumlah core procesor sangat sedikit. Kalkulasi rumit atau sederhana aplikasi yang diolah harus antri di 4 core procesor.

Dengan OpenCL.

VGA / GPU dengan 300 stream processor (SP) dapat membantu procesor. Bayangkan saja 300 core VGA + 4 core dari CPU bekerja sama. Walau kecepatan clock speed dalam GPU / VGA lebih lambat sekitar 1Ghz dibanding kecepatan CPU sampai 3Ghz lebih. Jumlah procesor yang sangat banyak akan meningkatkan kecepatan aplikasi untuk proses data sederhana. Pengolahan render gambar yang sederhana bisa dikerjakan beramai ramai dengan banyaknya unit procesor di VGA.


Bagaimana  mengaktifkan OpenCL

Hanya 3 komponen dari Software dan Hardware
  • Software harus mendukung OpenCL seperti Adobe Photoshop CC, Sony Vegas dan lainnya
  • Software OS biasanya untuk Windows 7 keatas.
  • Driver dan perangkat VGA terbaru (semua driver berbasis Windows terbaru sudah mendukung).

Apakah harus di install software untuk OpenCL

  • Jawabnya Tidak.
  • Software memberikan fitur OpenCL langsung di dalamnya. Bisa dilihat dari masing masing versi software, versi berapa yang sudah mendukung OpenCL.
  • Untuk mengaktifkan OpenCL, software akan berkomunikasi dengan driver VGA. Periksa apakah sudah mengunakan driver terbaru yang mendukung OpenCL, dan diaktifkan dari software sendiri.
  • Jadi OpenCL tidak memerlukan software khusus yang di install terpisah, seperti driver Codec video, Driver LAN dan lainnya. Semua sudah tersedia, asalkan Driver VGA dan software yang dipakai sudah mendukung.
  • Apakah Software mengetahui adanya perangkat yang mendukung pengolahan OpenCL dengan CPU+GPU. Bisa Yah, seperti aplikasi Sony Vegas Pro. Bisa tidak, tapi ada informasi dari pembuat software bagaimana mengaktifkan fitur OpenCL.
  • Jadi yang dibutuhkan hanya VGA, Procesor dan aplikasi yang mendukung OpenCL. Aplikasinya seperti Sony Vegas Pro versi 12, Adobe Photoshop CC atau Adobe Premiere CC yang sudah mendukung.

Yang lain dengan Hardware
  • Ekternal VGA (dipasang di slot VGA computer / VGA ekternal). Misalnya Radeon HD 7770
  • Internal VGA  (GPGPU), seperti procesor Haswell dan Ivy Bridge memiliki internal GPU.
Hardware akan siap sedia untuk membantu proses melalui OpenCL. Ketika OpenCL aktif, maka VGA atau internal VGA menjadi procesor ke dua dalam sebuah computer. Tugasnya membantu pengolahan software, dan akan aktif bekerja ketika diperlukan

Contoh gambar
Kiri proses video editing biasa hanya ditangani oleh CPU. GPU / VGA hanya bertugas untuk menampilkan gambar ke monitor, dan tidak membantu proses
Kanan proses video editing akan ditangani oleh CPU dan GPU sebagai CPU ke 2. Bila perangkat software dan hardware mendukung OpenCL.





Atau dari internal GPU , seperti ekternal VGA. Bisa memanfaatkan teknologi OpenCL.
Tugas seri dan proses paralel ditangani oleh CPU, sedangkan data paralel yang besar tapi lebih sederhana ditangani oleh GPU.




Dari sisi Software. Masing masing software dapat memanfaatkan OpenCL berbeda beda. Ada yang ditempatkan sebagian saja ketika software bekerja, atau hanya ditempatkan secara penuh ketika proses akhir saja. Tapi tidak semua proses dilakukan dengan OpenCL, hanya bagian yang membutuhkan saja.

Contohnya Photoshop, hanya membantu proses bagian penting dan tetapi tidak semua mengunakan OpenCL
Contoh lain dari Sony Vegas Pro 12, OpenCL bisa digunakan ketika memproses rendering dan video FX. Misalnya ketika membuat final video, ada 3 opsi antara yang dapat dipilih antara rendering CPU, OpenCL dan CUDA. Dengan OpenCL, proses rendering jauh lebih cepat dibanding mengunakan proses procesor sendirian. OpenCL akan mengaktifkan VGA untuk membantu proses Procesor.



Adobe Premiere CC dapat di setup untuk video rendering dan playback. Pilihan dapat diambil ketika membuka project baru.



Praktek dengan kecepatan OpenCL untuk video editing, seperti apa kecepatan OpenCL

Dibawah ini satu contoh memanfaatkan OpenCL dari sebuah software video editing.
  • Software editing video Sony Vegas 12 output Full HD 1080. Durasi video 1 menit
  • Windows 7 - 64bit
  • Memory 4GB
  • Procesor Intel Core i5 2500K
  • VGA PowerColor Radeon HD 5830
Untuk kecepatan render video dengan durasi 1 menit.
Bila pekerjaan ditangani oleh CPU saja, membutuhkan waktu 179 detik.
Sedangkan dengan OpenCL - CPU dan GPU hanya membutuhkan waktu 40 detik.



Dibawah ini rekaman perbandingan kecepatan OpenCL + GPU vs proses dari CPU tanpa GPU.
Ketika OpenCL tidak diaktifkan, pemakaian procesor mencapai 100% untuk rendering video. Semua tugas rendering ditangani oleh CPU.
Ketika OpenCL diaktifkan maka CPU lebih sedikit melakukan tugas dan sebagian diserahkan ke GPU. Kecepatan rendering menjadi lebih cepat.

Capture proses rendering , rekaman dipercepat 4x. Bagian atas dengan CPU dan bagian bawah dengan CPU dan GPU.

Sampel video dibuat dengan akselerasi OpenCL - vimeo.com/69137560
Gunakan resolusi video 480p untuk detail informasi lebih baik.

Perbandingan kecepatan side by side rendering video dengan OpenCL dan tanpa OpenCL. Bisa dilihat seberapa cepat waktu rendering dengan GPU+CPU vs GPU saja.



+ Youtube

Demikian penjelasan pengunaan teknologi rendering dengan memanfaatkan standar OpenCL. Halaman selanjut sebagai tambahan dan referensi hardware dan kesimpulan mengunakan fitur OpenCL pada hardware computer anda.

Update - Untuk proses 2-Pass
Hasil test dengan OpenCL memiliki kekurangan untuk proses 2-Pass render video karena memiliki Bug. Penjelasan bisa dlihat via Video Encoding 1pass vs 2pass untuk kualitas

Mohon diperiksa kembali antara hasil render dengan OpenCL dengan render biasa. Bila file akan di upload ke Youtube, memiliki berbedaan ukuran file antara 10-20%.

Selanjutnya hardware yang mendukung OpenCL

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