• Tidak ada hasil yang ditemukan

RANCANGAN SISTEM

4.3 Optimasi Sistem

Optimasi sistem dilakukan untuk mempercepat proses-proses yang terjadi pada sistem. Pada grafik yang ditampilkan pada gambar 4.5b, didapatkan bahwa waktu yang digunakan untuk traversal jauh lebih besar daripada waktu yang digunakan untuk proses pembuatan struktur uniform grid sehingga diperlukan sedikit optimisi

(a) konstruksi

(b) traversal dan konstruksi

agar sistem dapat berjalan secara optimal.

Proses optimasi dilakukan dengan percobaan dengan jumlah thread per block dan block per grid yang berbeda-beda. Pada pengujian yang dilakukan pada bab 4.2 digunakan jumlah thread per block sebesar 8 x 8 dan block per grid sama dengan resolusi dibagi dengan jumlah thread per block. Pada bab ini akan dilakukan pen-gujian dengan jumlah thread per block bervariasi mulai dari 4 x 4 sampai dengan 256 x 256 (maksimum jumlah thread per block) dengan kenaikan 1 untuk setiap pengujian.

Model atau scene yang diujikan adalah scene dengan jumlah cell kosong cukup besar yaitu sponza, conference, dan fairy forest. Model fairy forest merupakan model dengan jenis “the teapot in the stadium problem” yaitu dimana terdapat mod-el yang detail dengan volume yang kecil di tengah-tengah modmod-el yang tidak terlalu detail dengan volume yang besar. Problem tersebut merupakan problem klasik yang ada pada ray tracing dengan menggunakan struktur uniform grid.

4.3.1 Hasil Pengujian

Proses pengujian dilakukan dua tahap yaitu pengujian dengan tidak menggu-nakan shadow ray dan pengujian dengan menggumenggu-nakan shadow ray. Pengujian den-gan tidak menggunakan shadow ray berjalan baik sampai denden-gan jumlah thread per block sebesar 16x16 sedangkan jika jumlah thread per block dinaikkan lagi maka sistem akan menghasilkan gambar yang tidak semestinya. Pada pengujian dengan menggunakan shadow ray berjalan baik sampai dengan jumlah thread per block sebesar 13x13 dan jika jumlah thread per block dinaikkan maka sistem akan meng-hasilkan gambar yang tidak semestinya. Data hasil pengujian dapat dilihat pada tabel 4.8 dan dalam bentuk grafik pada gambar 4.6.

4.3.2 Diskusi dan Evaluasi

Dari data hasil percobaan sistem dengan menggunakan jumlah thread per block yang berbeda, didapatkan kesimpulan awal bahwa semakin banyak jumlah thread per block maka waktu penggambaran cenderung menurun. Sesuai dengan tabel 4.8, pada model sponza waktu penggambaran tanpa shadow paling cepat ketika jumlah threadsebesar 11 x 11. Pada model conference waktu penggambaran tanpa shadow paling cepat ketika jumlah thread per block sebesar 16 x 16 sedangkan pada model fairy forestwaktu penggambaran paling cepat ketika jumlah thread per block sebe-sar 15 x 15. Berbeda dengan penggambaran tanpa shadow, pada penggambaran dengan menggunakan shadow semua model menghasilkan waktu penggambaran paling cepat ketika jumlah thread per block sebesar 13 x 13. Pada dua pengujian

Gambar 4.6: Grafik penggambaran dengan thread per block yang bervariasi

Tabel 4.8: Hasil pengujian dengan jumlah thread per block bervariasi

Thread Per Block

Tanpa Shadow(ms) Dengan Shadow(ms)

Sponza Conference Fairy

Forest Sponza Conference

Fairy Forest 4 x 4 312,77 714,41 861,59 1458,39 3371,9 3172,84 5 x 5 233,87 553,67 738,1 1152,82 2819,15 2759,05 6 x 6 173,3 444,89 635,78 966,55 2425,25 2457,33 7 x 7 146,86 374,37 523,73 740.98 1892.55 1966.98 8 x 8 131,63 339,66 498,74 631.17 1657.57 1766.25 9 x 9 159,27 372,75 488,14 814.51 1939.63 1790.79 10 x 10 145,96 337,94 444,19 730.62 1756.62 1692.03 11 x 11 117,03 292,88 407,49 657.68 1597.7 1589.71 12 x 12 179,43 372,25 434,89 604.62 1423.13 1555.7 13 x 13 165,15 341,38 382,44 552.12 1310.83 1315.61

14 x 14 147,93 316,46 388,79 n/a n/a n/a

15 x 15 135,43 297,7 351,04 n/a n/a n/a

yang dilakukan, terdapat kegagalan pada sistem. Kegagalan pertama terjadi pada penggambaran tanpa shadow pada saat jumlah thread per block lebih dari 16 x 16 sedangkan kegagalan kedua terjadi pada penggambaran dengan shadow pada saat jumlah thread per block lebih dari 13 x 13. Kegagalan terjadi bukan karena kega-galan eksekusi, eksekusi berhasil dilakukan tanpa error tetapi menghasilkan gam-bar yang tidak sesuai (gamgam-bar tidak merepresentasikan model). Penjelasan yang mungkin adalah instruksi yang terlalu banyak dimasukkan pada SM, karena ek-sekusi menggunakan on-chip thread schedular yang terdapat pada perangkat keras CUDA, sehingga menghasilkan suatu kesalahan tertentu yang mengakibatkan pros-es eksekusi paralel terhenti tanpa menghasilkan ppros-esan kpros-esalahan.

Waktu penggambaran yang dihasilkan dipengaruhi oleh beberapa hal, yaitu banyaknya ray yang berpotongan dengan AABB dari scene, banyaknya cell yang dikunjungi oleh ray pada saat traversal, banyaknya polygon yang tergabung dalam cell-cell yang dikunjungi oleh ray, dan jumlah thread per block yang digunakan. Untuk parameter selain jumlah thread per block, semakin banyak maka akan se-makin lama waktu penggambaran yang dibutuhkan sedangkan pada parameter jum-lah thread per block yang mempengaruhi adajum-lah banyaknya prosessor yang idle (tidak bekerja) pada saat eksekusi paralel dilakukan.

Eksekusi paralel yang dilakukan pada standar CUDA secara skematik dapat dilihat pada gambar 4.7. Pada gambar tersebut terlihat bahwa eksekusi dilakukan per block untuk setiap SM, dimana masing-masing SM pada perangkat keras yang digunakan pada pengujian mempunyai 8 prosessor. Jika pada saat eksekusi meng-gunakan konfigurasi jumlah thread per block lebih kecil dari 8 x 8 maka tidak semua prosessor pada SM akan bekerja (idle) karena jumlah thread lebih kecil daripada jumlah prosessor, jika pada saat eksekusi menggunakan konfigurasi jumlah thread per block 8 x 8 maka prosessor akan bekerja semua tetapi jika salah satu proses-sor sudah selesai melakukan eksekusi dan prosesproses-sor yang lain masih melakukan eksekusi maka prosessor yang sudah selesai melakukan eksekusi akan menunggu sampai eksekusi pada prosessor yang lain dalam satu block selesai. Kemungkinan konfigurasi yang terakhir adalah dengan jumlah thread per block lebih besar dari 8 x 8, pada konfigurasi ini prosessor pada SM akan secara bergantian melakukan eksekusi pada setiap thread dengan bantuan sebuah chip thread schedular sehing-ga prosessor yang idle menjadi berkurang tetapi pada konfigurasi thread per block di atas 8 x 8 tidak terjadi penurunan waktu yang signifikan bahkan ada beberapa konfigurasi yang lebih jelek hasilnya daripada konfigurasi sebelumnya. Hal terse-but dikarenakan perbedaan banyaknya prosessor yang idle pada saat eksekusi dan banyaknya prosessor yang idle disebabkan metode yang digunakan banyak

Gambar 4.7: Model eksekusi CUDA [Nvi09a]

gunakan percabangan pada pemrogramannya.

Penyelesaian sederhana untuk masalah idle prosessor adalah menggunakan me-tode penggambaran progresif sehingga setiap tahap dapat ditentukan secara pasti daya komputasi yang dibutuhkan dan dapat menurunkan banyak prosessor yang idle pada saat eksekusi paralel dilakukan. Tahapan yang dimaksud adalah tahapan pros-es saat ray tracing traversal yaitu pembuatan primary ray, deteksi perpotongan ray dengan AABB dari scene, uniform grid traversal, dan shading. Pada tahapan proses deteksi perpotongan ray dengan AABB dari scene ada kemungkinan ray yang tidak berpotongan sehingga tidak diperlukan proses selanjuutnya, begitupula pada taha-pan uniform grid traversal dimana ada kemungkinan ray tidak berpotongan dengan polygonpada scene sehingga tahapan proses shading tidak perlu dilakukan.

BAB V

PENUTUP

5.1 Kesimpulan

Dari hasil perancangan dan pengujian sistem penggambaran tiga dimensi den-gan menggunakan algoritma ray tracing pada platform CUDA, maka dapat disim-pulkan beberapa hal yaitu

• Pada sistem, waktu yang digunakan untuk pembuatan struktur uniform grid tergantung pada dua hal yaitu banyaknya polygon pada scene dan besarnya struktur triangle offset.

• Waktu traversal pada model / scene akan lebih lama jika banyak terdapat cell pada uniform grid yang kosong (density scene kecil).

• Dari data yang direkap pada tabel 4.7 maka sistem yang dirancang dan di-jalankan pada GPU, lebih cepat 2 sampai 6 kali daripada sistem yang kurang lebih sama dan dijalankan pada CPU.

• Dari grafik pada gambar 4.5, sekitar 80 % sampai 95 % waktu penggambaran digunakan untuk traversal dan sisanya digunakan untuk pembuatan struktur uniform grid.

• Penambahan jumlah thread per block pada saat eksekusi algoritma ray trac-ing traversalmengalami trend penurunan waktu penggambaran karena penu-runan jumlah prosessor yang idle pada saat eksekusi.

Dokumen terkait