Senin, 04 Oktober 2010

2209105012 - Komputasi Paralel untuk Grafika Komputer

SKomputasi Paralel untuk Grafika Komputer

Ranu Wijayanto (2209105012)

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.

Tidak ada komentar:

Posting Komentar