BIDANG KEAHLIAN JARINGAN CERDAS MULTIMEDIA (GAME TECHNOLOGY) JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNOLOGI INDUSTRI INSTITUT TEKNOLOGI SEPULUH NOPEMBER SURABAYA
RANCANG BANGUN PENGENALAN ANGKA MENGGUNAKAN MULTI GPU PADA PLATFORM CUDA
Lukmanul Hakim 2208 205 745 Pembimbing : Mochamad Hariadi, ST., MSc., PhD.
Daftar Isi • Latar Belakang • Rancangan Sistem • Pengujian Sistem • Kesimpulan
Daftar Isi • Latar Belakang • Metode Penelitian • Pengujian Sistem • Kesimpulan
Latar Belakang Sebuah GPU pada awalnya adalah sebuah prosesor yang berfungsi khusus untuk melakukan rendering pada kartu grafik saja. Tetapi seiring dengan semakin meningkatnya kebutuhan rendering, terutama untuk mendekati waktu proses yang realtime sebagaimana kenyataan sesungguhnya, maka meningkat pula kemampuan prosesor grafik tersebut. Bahkan akselerasi peningkatan teknologi GPU ini lebih cepat daripada peningkatan teknologi prosesor yang sesungguhnya (CPU) *.
*Nvidia CUDA Programming Guide 2008. http://www.nvidia.com.
Latar Belakang Proses pengenalan angka oleh komputer memerlukan daya komputasi yang besar untuk mencapai nilai akurasi yang tinggi. Semakin tinggi nilai akurasi yang diinginkan, semakin besar pula daya komputasi yang harus disediakan. Penelitian ini mengimplementasikan program pengenalan angka yang pada awalnya dijalankan pada CPU, dengan dijalankan pada single GPU, dan multi GPU. *Nvidia CUDA Programming Guide 2008. http://www.nvidia.com.
Latar Belakang
GPU vs CPU Peak Performance
Latar Belakang
GPU vs CPU Bandwidth Transfer 7
Rumusan Masalah The main issues in multiGPU environment
"In computer graphics too much is not enough“ Jon Peddie, 1981.*
*Dr. Jon Peddie is one of the pioneers of the graphics industry. http://jonpeddie.com/about
Latar Belakang
Rumusan Masalah • Kebutuhan memanfaatkan kemampuan komputasi GPU. • Cara menggabungkan kemampuan lebih dari 1 GPU untuk mendapat tenaga komputasi yang lebih besar lagi. • Pentingnya menggunakan tenaga komputasi GPU untuk membantu kerja CPU.
Batasan Masalah • Media komputasi yang digunakan adalah platform NVIDIA CUDA • Waktu Tunda akibat bottle-neck pada saat proses mengkopi memori adalah diabaikan. • Hardware : • Processor : Inter (R) Core(TM) i7 CPU 920 @ 2.67 GHz • RAM : 2 GB DDR3 • GPU : [2] GeForce 9600 GT PCIe 16X, 1024 MB DDR2, 64 CUDA Core • Software : • OS : Debian GNU / Linux squeeze/sid, kernel 2.6.312686bigmem • C Compiler : gcc 4.3, nvcc2.3 • Library : NVIDIA CUDA, OpenGL, GLSL, TCLTK • 3rd Party : VMD (Visual Molecular Dynamic), PDB (Protein Data Bank)
Daftar Isi • Latar Belakang • Metode Penelitian • Pengujian Sistem • Kesimpulan
Metode Penelitian
Arsitektur CPU dan GPU
* Gambar diambil dari NVIDIA CUDA Programming Guide 2.3
Thread, Block, dan Grid
* Gambar diambil dari NVIDIA CUDA Programming Guide 2.3
Implementasi Pada GPU
Daftar Isi • Latar Belakang • Metode Penelitian • Pengujian Sistem • Kesimpulan
Pengujian Sistem • Pengujian berdasarkan waktu eksekusi program yang diperlukan. • Pengujian berdasarkan load CPU yang terjadi.
Pengujian Sistem – Waktu Eksekusi
Pengujian Sistem – Load CPU
Daftar Isi • Latar Belakang • Metode Penelitian • Pengujian Sistem • Kesimpulan
Kesimpulan • Penggunaan Multi GPU dapat mempercepat waktu proses dalam mengekseskusi program, terutama program yang embarassingly parallel. • Faktor yang penting untuk meningkatkan performa bukanlah kecepatan hardware GPU, tetapi adalah cara membuat program yang bisa berjalan paralel secara keseluruhan.
Kesimpulan • Semakin banyak variasi input yang diperlukan, semakin tinggi nilai akurasi yang didapatkan. • Pemrograman paralel pada GPU cukup sulit karena mengubah paradigma programming yang selama ini berjalan pada CPU.
Pengembangan Kedepan • Tambahan variasi input pada penelitian ini sangat diperlukan untukmeningkatkan nilai akurasi hasil eksekusi program. • Optimasi algoritma dan source code pada pemrograman paralel sangat menarik untuk di explorasi lebih lanjut karena mempunyai berpengaruh penting terhadap performa yang diinginkan.
Pengembangan Kedepan • Tambahan sumber daya penelitian sangat dibutuhkan, untuk bisa mengukur dan membandingkan kinerja Multi GPU pada cluster computer
Daftar Referensi Nvidia CUDA Programming Guide, 2008, http://www.nvidia.com Nvidia CUDA Reference Manual 2.3, 2008, http://www.nvidia.com Parallel Procesing with CUDA, Tom R. Halfhill, 2008 Multi GPUs TheNeeds Issues and Opportunities, Jon Peddie Research, 2008. • Computer Organization And Architecture, William Stallings, Prentice Hall, 1996. • Monte Carlo Option Pricing, Victor Podlozhnyuk Mark Harris, nvidia.com, June 2008. • Analisis Kerja Kluster Hibrid CPU + GPU, Eko Mursito Budi Hermawan K. Diponjo, TFITB, 2009. • • • •
Daftar Referensi • Cholesky Decomposition and Linear Programming on a GPU, Jin Hyuk Jung, Aug 2004. • Parallel Procesing with CUDA, Tom R. Halfhill, 2008. • The Landscape of Parallel Computing Research: A View from Berkeley, Asanovic Krste Bodik, EECS Department, University of California, Berkeley, Dec 2006. • Yann LeCun, L. Bottou, Y. Bengio, P. Haffner, et al. Gradient based learning applied to document recognition. November 1998. • Patrice Y. Simard, Steinkraus Dave, and John Platt. Best practices for convolutional neural networks applied to visual document analysis. pages 958–962. IEEE Computer Society, 2003.
TERIMA KASIH