Komputasi Paralel untuk Grafika Komputer

Tulisan ini agak panjang dan sedikit teknis, berisi cerita tentang perkembangan teknologi grafika komputer yang mengarah ke komputasi paralel di GPU sebagai teknologi pendukungnya.

Jejak Sejarah Grafika Komputer

Sejak awal perkembangan teknologi di bidang Grafika Komputer (Computer Graphics) terdapat dua buah sudut pandang atau pendekatan yang dibedakan dari tujuan yang ingin dicapai. Walaupun secara prinsip, tujuan keduanya sama yaitu menghasilkan gambar/citra pada perangkat penampil (display output device) dari representasi (model) konseptual atau deskriptif. Kedua pendekatan tersebut antara lain:

  • Pendekatan sintesis citra realistis ((photo)realistic image synthesis). Tujuan dari pendekatan ini adalah menghasilkan citra yang sangat mirip dengan yang bisa dilihat oleh mata. Oleh sebab itu pendekatan yang digunakan untuk menghasilkan gambar mengadopsi dari teknologi pencitraan yaitu kamera dengan cara merunut balik elemen dari citra dari sumbernya yaitu dengan mensimulasikan proses perpindahan cahaya dan interaksinya dengan objek yang berupa representasi geometrik yang memiliki atribut-atribut yang terlibat dalam interaksi dengan cahaya. Istilah yang umum untuk pendekatan ini adalah ray-tracing yang cukup populer di awal tahun 80-an. Walaupun pendekatan ini menghasilkan citra yang cukup realistis dengan algoritma yang sederhana (Turner Whitted mempublikasikan kode yang cukup pendek (kurang dari 1000 baris kode dalam C) namun sudah dapat mensimulasikan pemantulan, refraksi, serta bayangan), namun waktu komputasi yang dibutuhkan sangat besar.
  • Pendekatan Rasterisasi Geometri. Tujuan dari pendekatan ini adalah menghasilkan gambar dengan batasan waktu yang cukup singkat sehingga dapat diterapkan pada aplikasi yang bersifat interaktif (real-time). Prinsip dasarnya adalah tiap representasi geometri dipetakan dalam ruang diskret (matriks citra) dan kemudian titik-titik pada citra disusun sedemikian rupa sehingga merepresentasikan geometri objek yang dimaksud. Adapun kasus untuk geometri yang dimodelkan dalam ruang berdimensi lebih besar (misal 3 dimensi) dari dimensi layar (2 dimensi) maka diperlukan pemetaan yaitu proyeksi dalam dimensi yang sesuai baru kemudian diproses sebagai objek geometri 2 dimensi. Pendekatan ini memiliki kelebihan yaitu proses komputasi yang lebih kompleks hanya dilakukan pada objek geometrik, itupun hanya dilakukan pada elemennya yaitu titik. Misalkan untuk objek segmen garis maka proses komputasi hanya melibatkan pada 2 titik yang mendefinisikan segmen garis tersebut sedangkan proses penggambarannya dilakukan secara generatif berdasarkan kedua titik yang diketahui.

Kajian pada kedua pendekatan ini tidak saling bertentangan bahkan saling melengkapi satu sama lain. Kajian pada pendekatan pertama menggali berbagai macam pemodelan yang menghasilkan citra yang paling realistis dan umumnya menggunakan fondasi matematika dan teori fisika yang cukup rumit. Sebut saja Photon Mapping dan Subsurface scattering yang berbasis pada mekanika kuantum. Pendekatan kedua berusaha menjembatani perkembangan di pendekatan pertama agar dapat disajikan secara real-time sehingga menghasilkan beberapa ‘gumpalan’ tentang topik Virtual Reality yang salah satu ‘buah’-nya bisa dinikmati dalam kehidupan sehari-hari sebagai permainan (video game).

GPU (Graphics Processing Unit)

Adapun salah satu teknologi pendukung yang menjadi katalis cepatnya penggabungan atau konvergensi pendekatan dalam grafika komputer adalah pada prosesor khusus untuk operasi grafik yang disebut GPU (Graphic Processing Unit). Berbeda dari CPU yang merupakan prosesor yang lebih bersifat umum, GPU dikhususkan untuk melakukan komputasi-komputasi grafik. Perkembangan GPU diawali dengan perangkat keras khusus yang berfungsi melakukan rasterisasi sehingga komputasi yang dilakukan di CPU hanya operasi geometri sedangkan penggambarannya. GPU ini menyatu dengan pengendali tampilan (display controller). Perkembangan selanjutnya adalah dengan diterapkannya arsitektur prosesor superskalar yang mampu melakukan operasi terhadap paket (vektor) yang berisi beberapa satuan data (skalar) dalam satu siklus instruksi yang sama. Hal ini merupakan terobosan yang dikombinasikan dengan dipindahkannya proses rendering (graphics rendering pipeline) ke GPU. Pada saat tersebut, GPU sudah menerapkan komputasi paralel dengan memori bersama (shared memory) yang dijual dengan nama Hardware TnL (Transform and Lighting) atau Hardware Acceleration. Pada dasarnya prosesor yang digunakan pada GPU merupakan prosesor yang tidak jauh lebih cepat melakukan komputasi dibandingkan CPU, namun dengan adanya beberapa core prosesor dalam sebuah GPU (umumnya 8 atau 16 core), maka kemungkinan operasinya menjadi lebih cepat mengingat tiap data pada proses rendering cukup independen satu sama lain sehingga merupakan kasus yang cukup ideal untuk dilakukan paralelisme (saya akan bahas kasus-kasus/karakteristik persoalan yang mungkin ditransformasi sebagai komputasi paralel pada tulisan selanjutnya). Selang beberapa tahun kemudian, proses rendering pada GPU sudah dapat dimodifikasi dan bahkan diprogram (programmable pipeline) dengan bahasa yang disebut sebagai ‘shader‘. Istilah shader ini sebetulnya sudah lama digunakan pada pendekatan sintesis citra realistik yaitu pada sistem RenderMan dari Pixar yang berfungsi untuk mengkustomisasi proses interaksi cahaya dan komputasi warna yang terjadi pada elemen objek. Sekarang, shader sudah diterapkan pada pembangkitan objek geometri (geometry shader) yang membuka kombinasi yang cukup luas sehingga mungkin tidak akan ada shader baru hingga penggunaan shader ini sudah hampir tidak ada lagi teknik-teknik baru yang dipublikasi pada konferensi ilmiah.

Komputasi Paralel pada GPU

Penerapan prosesor paralel pada GPU menimbulkan gumpalan samping yaitu penggunaan GPU untuk komputasi non-grafik yang melibatkan komputas secara paralel. Komputasi paralel pada GPU ini disebut sebagai GC/GPGPU (Generic Computation/General Programming on GPU). Komputasi paralel pada GPU adalah alternatif lain yang lebih murah untuk komputasi paralel selain komputer paralel berbasis jaringan (cluster, grid) baik memori tersebar ataupun bersama (distributed memory vs shared memory). Mulai maraknya kajian akibat GPU yang fenomenal ini pun sempat membuat beberapa orang bersentimen negatif pada produsen CPU berinisial Intel yang mendominasi saat ini dengan membuat ungkapan ‘kalau anu (produsen GPU ternama, berinisial NVIDIA) menjadi produsen CPU, pasti sudah sejak lama teknologi ini bisa dinikmati’.

Pembalasan dendam sang raksasa

Beberapa waktu yang lalu muncul rumor yang mengatakan bahwa sang raksasa (Intel) sedang menyiapkan prosesor terbarunya yang akan masuk ke pasar GPU dengan nama kode “Larabee” yang rencananya akan dikawinkan dengan konvergensi pendekatan grafika komputer yang sudah dijelaskan di atas yaitu Real Time Ray Tracing (RTRT). Gosip ini mengatakan juga bahwa kemungkinan, GPU yang baru ini tidak menggunakan pendekatan seperti GPU sebelumnya yang berangkat dari pendekatan rasterisasi lalu ditambah dengan programmable shader. “Larabee” dijanjikan akan menggunakan sudut pandang raytracing dan menggunakan prosesor yang bisa diprogram secara generik (tidak seperti shader yang spesifik untuk tahapan pipeline tertentu) sehingga juga mengakomodasi keperluan untuk komputasi paralel umum (GPGPU). Klaim yang dilontarkan oleh pihak peneliti dari Intel adalah bahwa dengan adanya Larabee, maka teknologi grafika komputer akan ditilik dari awal untuk menunjukkan kombinasi kemungkinan yang ditawarkan oleh kapasitas komputasi prosesor Larabee. Gosip ini pun dikomentari negatif sebagai klaim yang berlebihan dari kompetitornya yaitu NVIDIA, adapun perkembangan gosip selanjutnya mengenai Larabee yang dipelesetkan sebagai Laterbee akibat molornya jadwal dipasarkannya prosesor ini sampai akhir tahun 2010 bisa dilihat di situs arstechnica.com.

Kita lihat saja dalam dua tahun ke depan, apakah klaim dari intel hanya janji-janji belaka atau kita akan menyaksikan saat-saat bersejarah dalam perkembangan teknologi grafika komputer.

9 comments

  1. Ajaran · Oktober 26, 2008

    Njlimet juga… fiuuh…

  2. dp · Oktober 26, 2008

    larabee…
    udah lama dapet papernya, tapi ga dibaca2 juga😀 lumayan baca disini juga udah nambah pengetahuan, hehe…

    *tapi sebenernya masih bingung, sehebat apa sih larabee itu?

  3. aiqi · Desember 2, 2008

    Wah,,,, ini ngjiplak dari CHIP kan????
    ga boleh tuch tanpa nyantumin sumber aslinya….

  4. pebbie · Desember 2, 2008

    @aiqi:maaf, tolong jangan sembarangan menuduh. saya nggak pernah baca CHIP sejak tahun 1998. kalau memang ada yang mau meng-klaim, coba berikan artikel mana milik CHIP yang saya jiplak di tulisan saya di atas?

  5. aaulia · Desember 2, 2008

    Woo ini mah udah basbang sekalee, dulu baca di Ars (sesuai sumber di atas) lengkap sama skema-skema etc, cukup menarik, AMD juga mo bikin Fusion.
    @aiqi: kayaknya CHIP yang jiplak Arstechnica *kabur*

  6. pebbie · Desember 3, 2008

    @aaulia: basbang gara-gara intel molor mlulu makanya topiknya turun dan penonton pundung.. ini gw angkat lagi berhubung gw ngambil kuliah sistem berkinerja tinggi (parallel programming) tapi masih nyerempet grafika, dan waktu gw lagi nyari2 tools yang pake GPU malahan terhambat di HW (VGA Laptop gw obsolete kata orang AMD) :((

  7. suhe · Maret 23, 2009

    mas tolong klo ada tutrialnya saya minta…
    hehehhe….

  8. suhe · Maret 23, 2009

    mas tolong klo ada tutrialnya saya minta…
    hehehhe….

  9. Ping-balik: learning games

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s