Apa itu CUDA, GPU Acceleration, dan Mercury Playback Engine?

Kalau ngomongin spek komputer untuk editing, yang paling panjang pembahasannya dan cukup membuat galau adalah kartu grafis.

(saya lebih suka istilah “kartu grafis” daripada “VGA Card”. Karena VGA itu nama port monitor. Sedangkan port monitor bukan hanya VGA, tapi ada DVI, HDMI, dan Display Port. Jadi gak relevan menyebut VGA Card)

Dan ketika membahas kartu grafis, yang paling sering didengar adalah kata CUDA.

Coba simak bagaimana serunya teman-teman di DCI (DSLR Cinematography Indonesia) kalau ngomongin CUDA.

Screenshot_7_1_16__11_23

Screenshot_7_1_16__11_19-2

Screenshot_7_1_16__11_33

Jadi, apa itu CUDA sebenarnya? Dan kenapa memilih kartu grafis yang ada CUDA-nya itu sesuatu banget?

Coba simak artikel ini dengan seksama. Semoga bisa mencerahkan.

Cara kerja GPU

Kenapa kartu grafis dibutuhkan? Karena di dalamnya ada GPU (Graphical Processing Unit). Semacam prosesor yang ada di dalam kartu grafis.

Bedanya dengan CPU (prosesor yang ada di motherboard), GPU didesain khusus untuk mengolah data gambar/grafis agar bisa tampil ke monitor dengan cepat dan tepat. Karena GPU mempunyai kemampuan khusus, yaitu melakukan perhitungan matematika yang kompleks untuk membentuk gambar (geometri) dalam ruang 3-D, yang tidak mungkin ditangani oleh CPU.

Contoh saja dalam game. Ketika kamu memainkan karakter game dari satu titik ke titik lain, atau melakukan sebuah aksi.. bukankah ruangnya, tata cahayanya, warnanya, dan objek-objek di dalamnya harus berubah? Di belakangnya ada rumus-rumus matematika yang sangat kompleks yang memperhitungkan sistem koordinat, vektor, jarak, dan hukum-hukum fisika agar terbangun sebuah realitas tiga dimensi. Dan semuanya harus berjalan secara realtime.

Begitupun dalam software editing, compositing, dan 3D. Juga dibutuhkan formulasi yang sangat kompleks.

Ini semua hanya bisa dilakukan oleh GPU. Kenapa?

Secara arsitektur, perbedaan CPU dan GPU adalah:

CPU hanya memiliki beberapa inti prosesor (dual-core, quad-core, octa-core) yang bekerja secara serial. Sedangkan GPU terdiri atas RIBUAN core kecil-kecil yang bekerja secara paralel.

Inilah yang membuat GPU bisa menyelesaikan soal matematika tadi dengan cepat.

(Ini seperti mengerjakan tugas dari guru matematika yang sangat banyak. Cara cepatnya adalah dengan kerja kelompok, masing-masing mengerjakan satu soal)

Ilustrasi dalam video ini akan membuat kamu paham bedanya CPU dan GPU (video ini dipresentasikan oleh Nvidia).

 

Optimasi GPU (GPU Acceleration)

CUDA adalah salah satu contoh implementasi dari yang namanya GPU Acceleration. Yaitu suatu teknik yang diaplikasikan oleh para programer untuk mengoptimalisasi GPU agar software-nya (seperti Adobe Premiere) bisa berjalan lebih cepat.

Tentunya tidak semua kartu grafis bisa melakukannya. Hanya kartu-kartu grafis yang memiliki fitur CUDA (untuk Nvidia) atau OpenCL (untuk AMD) yang memungkinkan GPU Acceleration.

Di sisi pengguna software, editor contohnya, penggunaan GPU Acceleration akan membuat proses render terrasa lebih cepat dan playback lebih lancar.

Bagaimana GPU Acceleration itu bekerja?

Mungkin kita tidak akan memahaminya terlalu jauh, karena ini adalah ranahnya para programmer pembuat software.

Tapi singkatnya.. GPU Acceleration (seperti CUDA) mengijinkan para programmer untuk melibatkan langsung GPU dalam ‘coding’-nya, yang sebelumnya tidak mungkin.

Screenshot_7_24_16__17_08

Ingat tadi.. GPU terdiri dari ribuan core yang bisa mengeksekusi perintah secara paralel. Dengan kartu grafis yang memiliki kemampuan GPU Acceleration, para programmer ini bisa mengaplikasikan pemrograman dengan teknik paralel computing ke dalam core-core GPU (bersama-sama CPU).

Dengan begitu, proses-proses di dalam software (rendering contohnya) menjadi lebih cepat.

Contoh Penggunaan CUDA di Adobe Premiere Pro CC

Salah satu software yang mengadopsi teknologi CUDA adalah Adobe Premiere Pro CC melalui fitur yang mereka sebut Mercury Playback Engine.

Kalau kamu menggunakan Nvidia dengan fitur CUDA (lihat listnya di sini).. maka kamu akan memiliki pilihan:

  1. Mercury Playback Engine GPU Acceleration (CUDA)
  2. Mercury Playback Engine Software Only

(lihat di Project Settings)

Kalau yang aktif adalah yang pertama (CUDA), itu artinya kamu sedang memanfaatkan GPU Acceleration. Sedangkan “Software Only” artinya kamu tidak menggunakannya. Tentunya performanya akan lebih cepat menggunakan CUDA (lihat grafik di bawah atau buka link ini).

Screenshot_7_1_16__14_41

Performa Premiere saat menggunakan CUDA

CUDA vs OpenCL

CUDA bukan satu-satunya GPU Acceleration. Saingannya adalah OpenCL.

Bedanya.. CUDA hanya eksklusif di Nvidia (karena dialah yang menciptakannya), sedangkan OpenCL bersifat open source (dikembangkan oleh banyak pihak).

Contoh yang menggunakan OpenCL adalah kartu grafis keluaran AMD.

Tapi walau begitu.. Nvidia sendiri pun support dengan OpenCL. Jadi, mungkin beberapa dari kamu yang menggunakan Nvidia (tergantung serinya), akan memiliki dua opsi itu: CUDA dan OpenCL.

Lalu lebih baik mana? CUDA atau OpenCL? Nvidia atau AMD?

Jawabannya tergantung software yang digunakan.

Menurut yang saya baca.. Kalau kamu menggunakan Nvidia, dan software yang kamu gunakan memiliki dua opsi (CUDA dan OpenCL), maka pilihlah CUDA, karena CUDA akan berjalan lebih cepat di Nvidia ketimbang OpenCL.

Sebaliknya, kalau software yang kamu gunakan hanya support OpenCL (FCP X contohnya).. maka pilihlah AMD yang memiliki fitur OpenCL. Karena OpenCL akan berjalan maksimal di AMD ketimbang OpenCL di Nvidia.

(OpenCL sendiri memang awalnya dibuat oleh Apple, maka jangan heran kalau FCPX lebih support dengan OpenCL)

Perhatikan daftar software berikut sebagai pertimbangan:

  • Adobe After Effects CC
    • CUDA Support
      • 3D ray tracing
      • Multi GPU support
    • OpenCL Support
      • No specifics stated
  • Adobe Photoshop CC
    • CUDA Support
      • 30 effects in Mercury Graphics Engine
    • OpenCL Support
      • No specifics stated
  • Adobe Premiere Pro CC
    • CUDA Support
      • Mercury Playback Engine for real time video editing & accelerated rendering
    • OpenCL Support
      • No specifics stated
  • Adobe SpeedGrade CC
    • CUDA Support
      • Real time grading and finishing
  • Autodesk Maya
    • CUDA Support
      • Increased model complexity
      • Larger scenes
    • OpenCL Support
      • Physics simulations
  • Avid Media Composer
    • CUDA Support
      • Faster video effects
      • Unique stereo 3D capabilities
  • Avid Motion Graphics
    • CUDA Support
      • Real time rendering
  • Blackmagic DaVinci Resolve
    • CUDA Support
      • Real time colour correction
      • Real time de-noising
    • OpenCL Support
      • Real time colour correction
  • Final Cut Pro X
    • OpenCL Support
      • Real time FX editing – no need to render the timeline
      • Faster overall playback & timeline performance
      • Faster third party effect rendering
      • No transcoding of AVCHD or other complex codecs to editable ProRes
  • RED REDCINE-X
    • CUDA Support
      • Accelerated debayering
      • Support for 2 GPUs
    • OpenCL Support
      • No specifics stated
      • Only supports 1 GPU
  • RED Giant Effects Suite
    • CUDA Support
      • Faster effects
  • RED Giant Magic Bullet Looks
    • CUDA Support
      • Faster effects
  • SONY Vegas Pro
    • CUDA Support
      • Faster video effects and encoding
    • OpenCL Support
      • No specifics stated
  • The Foundry HIERO
    • CUDA Support
      • Better interactivity
  • The Foundry NUKE & NUKEX
    • CUDA Support
      • Faster effects
  • The Foundry Mari
    • CUDA Support
      • Increased model complexity at interactive rates

Kesimpulan

GPU Acceleration, baik itu CUDA atau OpenCL terlalu sayang untuk diabaikan karena akan mempercepat pekerjaan editing maupun desain.

CUDA dan OpenCL sangat bergantung dengan kartu grafis yang kita pilih (tidak semuanya support).. Dan tergantung dengan software yang kita pakai juga.

Maka mulai sekarang.. pastikan Kamu memilih kartu grafis yang tepat. Cara termudahnya adalah dengan melihat Minimum System Requirements di masing-masing software.

Dan tentunya.. siapkan budget! 😬


Sumber:

http://www.nvidia.com/object/what-is-gpu-computing.html

https://en.wikipedia.org/wiki/General-purpose_computing_on_graphics_processing_units

OpenCL vs. CUDA: Which has better application support? GPGPU/GPU Acceleration real world face off

 

2 comments

  • Hallo,
    Saya memiliki kartu grafis amd r5 m430 di notebook saya. Ketika saya menjalankan premiere tidak ada pilihan opencl. Apakah kartu grafis saya tidak support? Terimakasih

    • Dani Nurdiman

      Di situs premierenya sendiri ada daftar rekomendasi kartu grafis. Lihat di “system requirements premiere pro cc”. Googling saja 🙂

Leave a Reply