ANALISA PENGARUH PERUBAHAN PARAMETER DALAM PROSES RENDER DENGAN GPGPU Anton Siswo¹, Mochamad Hariadi², I Ketut Eddy Purnama³
Abstrak—Rendering adalah suatu proses yang membutuhkan daya komputasi yang besar. Pada umumnya dikerjakan dengan menggunakan kemampuan CPU. Akan tetapi, seiring dengan bertambahnya waktu dan kecepatan teknologi dalam teknik render, kebutuhan daya komputasi dengan menggunakan CPU tidak mencukupi. Salah satu cara untuk mengatasinya adalah dengan melakukan rendering di dalam GPU, karena kemampuan GPU yang jauh melampaui kemampuan CPU. Hasil dari penelitian ini adalah implementasi rendering didalam GPU dengan menggunakan metode raytracing dan analisa terhadap perubahan parameter yang ada pada teknik rendering. Kata Kunci—Raytracing, GPGPU, Global illumination
I. P ENDAHULUAN OMPATAN terbesar dalam bidang desain, grafis dan animasi adalah ketika ditemukannya software untuk membuat animasi menggunakan komputer secara 3D. Kebutuhan dalam bidang ini, menuntut digunakannya komputer yang mampu melakukan proses komputasi, yang berbentuk sebagai proses render, dengan cepat. Dengan meningkatnya teknologi yang ditemukan, membuat kecepatan prosesor yang ada saat ini masih dianggap kurang cepat dalam melakukan rendering dan yang membutuhkan proses komputasi tinggi. Masalah tersebut terpecahkan dengan adanya teknologi yang dapat memanfaatkan prosesor yang ada didalam video graphical accelerator (VGA) card sebagai pusat pemrosesan dari kebutuhan tersebut, yang diberi nama dengan Graphical Processing Unit (GPU). Teknologi yang memanfaatkan GPU ini, penggunaanya tidak terbatas dalam proses render saja, tetapi juga dapat digunakan untuk proses yang lain, selanjutnya teknologi ini diberi nama dengan General Purpose Graphical Processing Unit (GPGPU). Dengan teknologi GPGPU tersebut, permasalahan render yang dihadapi dapat diselesaikan lebih cepat bila dibandingkan dengan CPU.
L
II. DASAR T EORI Didalam proses pembuatan sebuah Image-base Computer atau Computer Aided Design (CAD), dibutuhkan sebuah proses untuk menghasilkan sebuah image dari sebuah model. Model tersebut dapat berupa sekumpulan titik, garis, bidang ataupun (1) Anton Siswo R.A., Bidang Studi Teknik Komputer & Telematika, Jurusan Teknik Elektro ITS Surabaya. (2) Mochammad Hariadi, ST, MSc, PhD., Dosen Pembimbing I, Bidang Studi Teknik Komputer & Telematika, Jurusan Teknik Elektro ITS Surabaya. (3) Dr. I Ketut Eddy Purnama, ST., MT., Dosen Pembimbing II, Bidang Studi Teknik Komputer & Telematika, Jurusan Teknik Elektro ITS Surabaya.
volume yang tidak berbentuk maupun yang berbentuk. Proses pembuatan dari model hingga menjadi sebuah image disebut sebagai proses render atau disebut juga dengan rendering[?]. Proses render yang terjadi di dalam komputer, tidak terlepas dari proses komputasi didalamnya. Proses komputasi yang terjadi dalam rendering, dibagi menjadi dua bagian, Bias rendering dan Unbiased rendering. 1) Bias Rendering Pada rendering dengan menggunakan metode bias, dapat dengan mudah dilakukan peningkatan efisiensi pada beberapa scene bila dibandingan dengan menggunakan metode unbiased. Selain itu, juga dapat menentukan besarnya komputasi dalam melakukan rendering. Hal ini dikarenakan dalam dengan menggunakan bias rendering, dilakukan penyederhanaan asumsi dan beberapa pengecualian pada proses komputasi yang seharusnya ikut dilakukan, seperti efek cahaya, kesalahan koreksi cahaya ketika mengenai cermin atau gelas dan kesalahan dalam perhitungan jumlah cahaya yang dibutuhkan. 2) Unbiased Rendering Berbanding terbalik dengan metode bias rendering. Pada metode ini, seluruh proses yang diminimalkan dan dilakukan pengecualian pada metode bias, dilakukan proses perhitungan secara menyeluruh. Akibatnya, proses render menjadi lama (pada beberapa kasus dapat sangat lama) dan proses komputasi yang dibutuhkan sangat besar. Global illumination adalah suatu nama umum untuk sekumpulan algoritma yang digunakan dalam 3D computer graphic untuk membuat pencahayaan pada 3D scene menjadi semakin realistis. Proses komputasi yang terjadi, tidak hanya pada cahaya yang datang langsung dari sumber cahaya (direct illumination), tetapi juga cahaya yang berasal dari hasil refleksi terhadap permukaan lainnya pada scene tersebut, yang bersifat refleksi ataupun bukan refleksi (indirect illumination). Radiosity dapat dijabarkan dengan energi yang meninggalkan suatu permukaan tiap satuan waktu tertentu dan dikombinasikan dengan energi hasil emisi dan refleksi. Perbedaan hasil antara metode radiosity dengan metode direct illumination, ditunjukkan oleh gambar 11 . 1 Diambil graphics)
dari
http://en.wikipedia.org/wiki/Radiosity_(3D_computer_
Gambar 1: Perbedaan Metode Direct Illumination dengan Metode Radiosity
Shadow mapping merupakan suatu proses untuk menambahkan bayangan kedalam 3D Computer Graphic. Proses ini memiliki tiga komponen utama, yaitu menemukan koordinat obyek yang terlihat dari cahaya, kemudian melakukan visualisasi antara koordinat dengan depth map dan terakhir, jika proses telah selesai, obyek tersebut harus digambarkan dalam posisi terkena bayangan atau terkena cahaya. Proses shadow mapping diberikan pada gambar 22 .
(a) Gambar dengan nilai kontras(b) Gambar dengan nilai kontras -4 -2
(c) Gambar dengan nilai kontras(d) Gambar dengan nilai kontras +2 +4
(e) Gambar akhir dengan nilai kontras rata-rata (a) Gambar hasil penemuan koordinat(b) Gambar hasil proses visualisasi obyek terhadap cahaya koordinat dengan depth map
(c) Gambar hasil scene dengan shadow
Gambar 3: Proses pembuatan image HDR Photon maps disusun dengan cara menembakkan sejumlah besar photon (paket energi) dari sumber cahaya menuju permukaan. Setiap photon dilacak melalui permukaan dengan menggunakan metode yang sama dengan path tracing. Setiap kali photon menumbuk permukaan, nilai tersebut disimpan dalam photon map dan russian roulette untuk menentukan apakah photon tersebut diserap atau direfleksikan. Didalam penggunaannya, photon mapping bekerja seperti pada gambar 4, dengan menembakkan dua buah photon maps, yaitu causatic photon map dan global photon maps.
Gambar 2: Proses shadow mapping terhadap scene
High Dynamic Range (HDR) adalah suatu teknik rendering pada lingkungan komputer grafik dengan melakukan perhitungan cahaya pada jarak jangkauan yang lebih besar. Dynamic Range didefinisikan sebagai rasio nilai terbesar pada suatu sinyal terhadap nilai terkecil yang diukur. Hal ini dapat menjaga kualitas dan detail agar tidak hilang akibat keterbatasan rasio kekontrasan. Proses untuk mendapatkannya, dapat diilustrasikan dalam gambar 33 . Gambar 4: Cara Kerja Photon Mapping
2 ibid 3 Diambil
dari http://en.wikipedia.org/wiki/High_dynamic_range_imaging
1) Caustic photon map hanya digunakan untuk menyimpan photon yang menyebabkan causatic dan diciptakan untuk menembakkan photon searah dengan specular object pada scene dan disimpan pada saat mengenai permukaan. Caustic dirender dengan cara memvisualisasikan secara langsung estimasi radiance berdasarkan caustic photon map dan teknik ini membutuhkan photon dengan jumlah banyak. 2) Global photon map digunakan sebagai rough approximation dari cahaya atau fluks didalam scene dan diciptakan oleh tembakan photon yang menuju kesegala arah dan tidak dibutuhkan visualisasi langsung serta tidak membutuhkan tingkat presisi yang sama dengan caustic photon maps. Selain itu juga terdapat shadow photon yang diciptakan akibat adanya perbedaan tingkat material benda yang ada pada scene itu sendiri. Shadow photon ini digunakan pada saat rendering untuk mengurangi jumlah shadow rays. Specular reflection adalah suatu kejadian dimana suatu benda dapat merefleksikan cahaya (atau panjang gelombang lain) seperti melewati cermin pada sebuah permukaan, dengan cahaya yang datang pada satu arah datang akan direfleksikan pada satu arah menjauhi, seperti yang diterangkan oleh Hukum Refleksi, yaitu sudut sinar datang sama dengan sudut sinar pergi yang melalui bidang normal.
daya pemahaman, fotografi dan video. Dengan memiliki pengetahuan yang baik tentang terori dan aplikasi dari gamma. Teknik Russian Roulette merupakan cara untuk mengurangi kedalaman rata-rata sinar (jumlah lompatan) pada rendering dengan menggunakan metode unbiased. Biasanya, kontribusi utama terjadi sedikit pada lompatan sinar pertama, sehingga melakukan 20 kali lompatan biasanya tidak memberikan kontribusi yang signifikan, hanya akan membutuhkan waktu 4 kali lebih lama daripada 5 kali lompatan. Gaussian blur[?] adalah suatu cara untuk mengaburkan gambar dengan fungsi gaussian. Efek ini adalah efek grafis yang paling banyak digunakan oleh perangkat lunak untuk mengurangi noise dan mengurangi detail gambar. Efek visual dari teknik ini adalah kabur halus menyerupai seperti ketika kita melihat foto melalui layar transparan, tentu sangat berbeda dengan efek yang dihasilkan oleh lensa yang langsung terkena pencahayaan utama, seperti lampu atau sinar matahari. Gaussian juga digunakan sebagai tahapan pra-pengolahan dalam algoritma visi komputer untuk meningkatkan struktur citra pada skala yang berbeda.
Gambar 7: Hasil image dengan gaussian filter
Gambar 5: Gambaran Hukum Refleksi Refraksi adalah perubahan arah suatu posisi gelombang akibat perubahan kerapatan. Hal ini paling sering diamati ketika gelombang melewati dari satu medium ke lainnya pada sebuah batas. Refraksi cahaya adalah fenomena paling umum yang diamati, tetapi semua jenis gelombang dapat membiaskan ketika berinteraksi dengan media, misalnya ketika gelombang suara melewati satu medium ke lainnya atau ketika gelombang air bergerak ke kedalaman air kedalaman yang berbeda.
OpenCL (Open Computing Language)4 adalah standar silang vendor terhadap komputasi heterogen yang berjalan pada arsitektur CUDA. Menggunakan OpenCL, developer mampu mendapatkan kemampuan komputasi secara masif dengan menggunakan NVIDIA GPU untuk membuat aplikasi komputasi tersebut bekerja. Seiring waktu, dengan stabilnya standar OpenCL dan didukung oleh prosesor dari vendor lain, untuk membuat aplikasi terakselerasi dari GPU tersebut5 . III. D ESAIN S ISTEM A. Melakukan rendering pada berbagai jenis konfigurasi yang berbeda. Didalam luxrays, terdapat beberapa template konfigurasi dalam melakukan proses render di dalam GPU, antara lain render.cfg, render-fast.cfg dan renderf-fast-hdr.cfg. Untuk setiap template tersebut, memiliki parameter dan nilai yang berbeda-beda didalamnya. B. Proses Perbandingan
Gambar 6: Gambar Persamaan Snellius Gamma adalah produk misterius dan membingungkan, karena melibatkan konsep dari empat disiplin ilmu, fisika,
Untuk proses pengujian yang dilakukan, penulis melakukan desain dengan beberapa cara, yaitu ketika menggunakan All CPU, CPU’s dan 1 GPU 9600GT DDR2, CPU’s dan 2 GPU 9600GT DDR2, CPU’s dan 1 GPU 9600GT DDR3 dan GPU 260GTX. 4 http://www.khronos.org/opencl/ 5 Diambil
dari http://www.nvidia.com/object/cuda_opencl_new.html
C. Membuat sebuah image referensi Dengan menggunakan konfigurasi default dari luxrays, penulis melakukan rendering selama 6 jam pada resolusi 1280x1024 piksel pada semua komputer dengan menggunakan mode All CPU, CPU’s Only, CPU’s+1GPU, CPU’s+2GPU, GPU’s Only dan GPU Only pada komputer i7 dan CPU+1GPU pada komputer AMD X2 serta AMDX4 dengan NVIDIA 260GTX. Image referensi ini akan digunakan untuk membandingkan hasil dan penurunan error yang terjadi pada saat pengujian. D. Membuat prosentase untuk analisa saat pemrosesan image Dari proses rendering, percobaan yang dilakukan adalah dengan cara melakukan pengurangan gambar/image difference yang kemudian menghasilkan selisih/residu. Image residu tersebut kemudian dibaca nilai tiap-tiap piksel yang bernilai (0, 0, 0). E. Menampilkan hasil perbandingan image pada tiap satuan waktu pada resolusi yang sama Pada image resolusi 1280x1024 piksel dengan sebuah image referensi yang telah dihasilkan sebelumnya. Pada penelitian kali ini, pengambilan data menggunakan interval 2 menit dan dilakukan sampai dengan menit ke-30. Image yang akan dianalisa adalah image hasil percobaan pada mode CPU, CPU+1GPU dan CPU+2GPU pada komputer i7 dan CPU+1GPU pada komputer AMD X2. F. Melakukan parameter
proses
pencarian
pengaruh
perubahan
Pada konfigurasi yang disediakan, terdapat berbagai parameter yang dapat mempengaruhi hasil render. Pengubahan tersebut dilakukan mulai dari konfigurasi render yang digunakan pada komputer i7 dengan mode CPU+2GPU dan konfigurasi render pada komputer AMD X2 dengan mode CPU+1GPU. Dengan mengubah berbagai nilai parameter yang ada pada file konfigurasi satu demi satu, diharapkan dapat diketahui perbedaan apa saja yang didapatkan untuk dianalisa. Setelah itu, selain mendapatkan hasil untuk pencarian setting terbaik, hasil tersebut juga dibandingkan dengan image referensi yang telah dibuat sebelumnya.
Gambar 8: Kecepatan Rendering
Keterangan : single GPU 9600GT DDR3 dengan 2 native thread pada sistem operasi 32bit dan 64bit (X2-2C-1G32/64), Single GPU 9600GT DDR2 (I7-0C-1G-32), Dual GPU 9600GT DDR2 (I7-0C-2G-32), default atau 2 native thread CPU i7 (I7-2C-2G-32), 8 native thread CPU i7 (I78C-0G-32) dan Single GPU 260GTX (X4-0C-1G-32) Kemudian untuk proses pengolahan image pada menit ke-2 sampai dengan ke-30, didapatkan hasil seperti pada: 1) Grafik GPU 9600GT DDR3 sistem operasi 64bit, berada pada grafik9.
IV. I MPLEMENTASI S ISTEM Langkah-langkah implementasi adalah sebagai berikut: A. Download, Konfigurasi dan Instalasi NVIDIA Driver dan NVIDIA GPU Computing B. Download, Konfigurasi dan Instalasi Instalasi Boost C. Download ATi-SDK-Driver D. Download, Konfigurasi dan Instalasi dependensi Luxrays E. Download, Konfigurasi dan Instalasi Luxrays
Gambar 9: Grafik kecepatan rendering pada GPU 9600GT DDR3 64bit
V. P ENGUJIAN S ISTEM Pada saat menggunakan perbandingan kecepatan rendering, didapatkan hasil seperti pada gambar 8.
2) Grafik Dual GPU 9600GT DDR2 sistem operasi 32bit, berada pada grafik10.
Gambar 10: Grafik kecepatan rendering pada GPU Dual 9600GT DDR2 32bit
Sedangkan grafik default untuk kecepatan rendering pada resolusi 640x480 sampai dengan 1280x1024 dengan interval waktu antara 600, 1800 dan 3600 adalah seperti gambar11 untuk GPU 9600GT DDR3 dan12 untuk GPU 9600GT DDR2.
Gambar 12: Grafik kecepatan rendering pada dual GPU 9600GT DDR2 32bit
1) Perbandingan antara i7 menggunakan seluruh core CPU dengan NVIDIA 260GTX, menghasilkan perbedaan 50% lebih cepat dengan menggunakan i7. 2) Perbedaan image yang terjadi antara i7 menggunakan seluruh core CPU dengan NVIDIA 260GTX, menghasilkan perbedaan image referensi sebesar 20% lebih baik dengan menggunakan NVIDIA 260GTX. 3) Pada mode default, kualitas terburuk didapatkan dengan menggunakan single GPU 9600GT DDR2 sebesar 57% dan kualitas terbaik sebesar 77% didapatkan dengan menggunakan single GPU 260GTX, kualitas terburuk didapatkan dengan menggunakan single GPU 9600GT DDR2 sebesar 61% dan kualitas terbaik sebesar 72% didapatkan dengan menggunakan All CPU i7 pada mode fast, dan kualitas terburuk didapatkan dengan menggunakan single GPU 260GTX sebesar 66,5% dan kualitas terbaik sebesar 78,5% didapatkan dengan menggunakan All CPU i7 pada mode Fast-HDR. 4) Proses pengolahan image bekerja secara linear mulai dari menit ke-2 sampai dengan menit ke-30 pada single GPU dan bekerja secara eksponensial pada dual GPU.
B. Saran Gambar 11: Grafik kecepatan rendering pada single GPU 9600GT DDR3 64bit
VI. P ENUTUP A. Kesimpulan Dari percobaan yang telah dilakukan, dapat disusun kesimpulan sebagai berikut:
Dari hasil yang telah dilakukan selama penelitian ini, masih banyak hal-hal yang tidak sempat penulis lakukan untuk dijadikan bahan pengujian, karena penulis hanya fokus kepada pengujian terhadap still image. Selain itu, masih ada keterbatasan yang harus segera dikembangkan atau dapat dijadikan topik pengembangan selanjutnya, antara lain: 1) Pengujian pada animasi. 2) Karena telah mendukung kemampuan multi GPU, maka dapat dilakukan pengembangan kedalam Cluster GPUComputing.
3) Menjadikan Cluster Computing dengan kemampuan Cluster GPU. 4) Membuat cluster dengan konfigurasi i7 dengan NVIDIA 260GTX keatas. Selain itu, penulis juga sadar, bahwa masih banyak kekurangan-kekurangan yang ada di dalam buku ini. Oleh karena itu, penulis mengharapkan saran dan kritik dari pembaca terutama seluruh pihak yang mengerti dengan disiplin ilmu GPGPU. DAFTAR P USTAKA [1] Arthur Appel. Some techniques for shading machine renderings of solids. In AFIPS ’68 (Spring): Proceedings of the April 30–May 2, 1968, spring joint computer conference, pages 37–45, New York, NY, USA, 1968. ACM. [2] Simon Green / Cem Cebenoyan. High dynamic range rendering on the geforce 6800. 2004. [3] James D. Foley, Andries van Dam, Steven K. Feiner, and John F. Hughes. Computer graphics: principles and practice (2nd ed.). Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1990. [4] Cindy M. Goral, Kenneth E. Torrance, Donald P. Greenberg, and Bennett Battaile. Modeling the interaction of light between diffuse surfaces. SIGGRAPH Comput. Graph., 18(3):213–222, 1984. [5] Khronos Group. Opencl paralel computing for heterogenous devices. 2009. [6] Ralph (et al.) Jacobson. The Manual of Photography. Focal Press, 8th ed edition, 1988. ISBN 0-240-51268-5. [7] Henrik Wann Jensen. Global illumination using photon maps. Proceedings of the Seventh Eurographics Workshop on Rendering, page pages 21â30, 1996. [8] James T. Kajiya. The rendering equation. In SIGGRAPH ’86: Proceedings of the 13th annual conference on Computer graphics and interactive techniques, pages 143–150, New York, NY, USA, 1986. ACM. [9] Patrick Ledda, Alan Chalmers, Tom Troscianko, and Helge Seetzen. Evaluation of tone mapping operators using a high dynamic range display. ACM Trans. Graph., 24(3):640–648, 2005. [10] Jon Macey. "ray-tracing and other rendering approaches". 2008. [11] Mark S. Nixon and Alberto S. Aguado. Feature Extraction and Image Processing. Academic Press, 2008. [12] John D. Owens, Mike Houston, David Luebke, Simon Green, John E. Stone, and James C. Phillips. Gpu computing. Proceedings of the IEEE, 96(5):879–899, May 2008. [13] Charles A. Poynton. A technical introduction to digital video. John Wiley & Sons, Inc., New York, NY, USA, 1996. [14] G. C Shapiro, L. G. & Stockman. Computer Vision. Prentence Hall, 2001. [15] Dominik Robert Strzodka Stefan Turek. Accelerating double precision fem simulations with gpus. 2005. [16] Greg Ward. High dynamic range imaging. Exponent â Failure Analysis Assoc., 2009.
Anton Siswo Raharjo Ansori dilahirkan di Pasuruan pada tanggal 11 Mei 1987, merupakan anak pertama dari dua bersaudara. Ia menempuh pendidikan pertama kali di TK K.H.A Wachid Hasyim Bangil, kemudian melanjutkan pendidikan dasar di SD Negeri Dermo 1 Bangil, pendidikan menengah di SLTP Negeri 1 Bangil, dan pendidikan menengah
atas di SMA Negeri 1 Bangil. Setelah lulus SMA, ia memilih untuk melanjutkan pendidikan tingginya di Jurusan Teknik Elektro, Fakultas Teknologi Industri ITS. Kontak:
[email protected] Phone: 085732049298