ANALISIS PERBANDINGAN KOMPUTASISEKUENSIAL DAN KOMPUTASIPARALEL GPU MEMANFAATKANTEKNOLOGI NVIDIA CUDA PADAAPLIKASI KOMPRESI...
LATAR BELAKANG• Ingin membuktikan kebenaran, apakah proses kompresi citradengan metode DCT 8x8 memang dapat di implementas...
RUMUSAN MASALAH• 1. Bagaimana cara kerja algoritma DCT 8x8 pada komputasi sekuensial dankomputasi paralel ?• 2. Berapa lam...
BATASAN MASALAH1. Algoritma kompresi citra yang digunakan adalah algoritma DCT yang beroperasi pada blok 8x8 dengan pendek...
TUJUAN PENELITIAN• Tujuan dari penelitian ini adalah membandingkan nilai speedup daribeberapa sample citra uji yang di ola...
KOMPRESI CITRAKompresi citra adalah aplikasi kompresi data yang dilakukan terhadap citra digital dengan tujuan untukmengur...
ALGORITMA DCT• Metode DCT pertama kali diperkenalkan oleh Ahmed, Natarajan dan Rao pada tahun 1974• DCT adalah sebuah tekn...
ALGORITMA DCT• Kelebihan kompresi citra menggunakan DCT adalah :1. DCT menghitung kuantitas bit-bit data citra dimana pesa...
ARSITEKTUR CUDA• CUDA merupakan akronim dari Compute Unified Device Architecture yaitu sebuah teknologi yang dikembangkano...
ARSITEKTUR CUDA• Untuk dapat bekerja dengan teknologi CUDA ada 3 komponen yang harus tersedia pada perangkat PCatau notebo...
ARSITEKTUR CUDA4. Langsung tersedia untuk kernel, tidak perlu di pass sebagai parameter5. Tidak perlu di frre memory setel...
GPU ( Graphic Processing Unit )• GPU adalah sirkuit khusus yang dirancang untuk cepat memanipulasi danmengubah memori yang...
GPU ( Graphic Processing Unit )• Eksekusi Program pada GPU• Kernel sendiri dijalankan dengan banyakthread secara bersamaan...
ALGORITMA DCT 8X8 PADA KOMPUTASI SEKUENSIAL DAN PARALEL• Pada Komputasi sekuensial, penerapan algoritma DCT 8x8 tidakmengg...
ALGORITMA DCT 8X8 PADA KOMPUTASI SEKUENSIAL DAN PARALEL• Pada Komputasi ParalelImplementasi algoritma DCT8x8 menurut teori...
ALGORITMA DCT 8X8 PADA KOMPUTASI SEKUENSIAL DAN PARALEL• Setiap satu set blok-CUDA menjalankan 64 thread untuk melakukanpe...
ALGORITMA DCT 8X8 PADA KOMPUTASI SEKUENSIAL DAN PARALELDua dimensi DCT dilakukan dalam empat jumlah thread):1. Thread deng...
ALGORITMA DCT 8X8 PADA KOMPUTASI SEKUENSIAL DAN PARALEL• Jika dilihat model komputasi algoritma DCT 8x8 pada thread yaitu ...
ALGORITMA DCT 8X8 PADA KOMPUTASI SEKUENSIAL DAN PARALEL• Model Pengalokasian Memori pada algoritma DCT 8x8setiap elemen me...
HASIL PENGUJIAN DAN ANALISA• Grafik Percobaan Komputasi Sekuensial pada setiap citra uji
HASIL PENGUJIAN DAN ANALISA• Grafik Percobaan Komputasi Paralel GPU pada setiap citra uji
HASIL PENGUJIAN DAN ANALISA• Grafik Perbandingan Waktu proses kompresi Citra pada KomputasiSekuensial dan Komputasi Parale...
KESIMPULAN•Proses kompresi citra dengan metode DCT 8x8 dapat diimplementasikanpada arsitektur parallel GPU sehingga dapat ...
KESIMPULAN• Hasil akhir yang didapat dapat disimpulkan bahwa speed up bersifat terusmeningkat terhadap data citra uji sert...
SARANMengingat masih banyaknya perbaikan yang perlu dilakukan pada skripsi ini,maka penulis mempertimbangkan beberapa sara...
Referensi[1] Obhukov, Anton and Kharmalov, Alexander. Discrete Cosine Transform for8x8 Blocks with CUDA. s.l. : NVIDIA Cor...
Q & A
Upcoming SlideShare
Loading in …5
×

CUDA with DCT Algorithm

1,065 views

Published on

CUDA merupakan arsitektur grafik processor (GPU) yang dikembangkan oleh perusahaan NVIDIA dengan tujuan untuk menigkatkan komputasi perhitungan secara paralel agar penerapan aplikasi sperti kompresi citra dapat berjalan lebih cepat bila dibandingkan dengan komputasi paralel pada CPU

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,065
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
51
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

CUDA with DCT Algorithm

  1. 1. ANALISIS PERBANDINGAN KOMPUTASISEKUENSIAL DAN KOMPUTASIPARALEL GPU MEMANFAATKANTEKNOLOGI NVIDIA CUDA PADAAPLIKASI KOMPRESI CITRAMENGGUNAKAN ALGORITMA DCT 8X8Oleh :Andika JanuariantoEmail : andika.januarianto@gmail.com
  2. 2. LATAR BELAKANG• Ingin membuktikan kebenaran, apakah proses kompresi citradengan metode DCT 8x8 memang dapat di implementasikanpada komputasi paralel GPU?• Ingin membuktikan kebenaran dari analisa pada percobaansebelumnya,apakah komputasi paralel GPU juga dapatmempercepat proses kompresi citra dengan menggunkanmetode DCT 8x8?
  3. 3. RUMUSAN MASALAH• 1. Bagaimana cara kerja algoritma DCT 8x8 pada komputasi sekuensial dankomputasi paralel ?• 2. Berapa lama waktu yang dibutuhkan untuk menghasilkan citra yang telahdikompresi dengan komputasi sekuensial maupun komputasi paralel GPU ?• 3. Bagaimana hasil perbandingan komputasi waktu yang diperoleh, apakah proseskompresi citra dengan metode DCT 8x8 di arsitektur paralel GPU meghasilkanwaktu yang lebih cepat dibandingkan dengan proses kompresi di arsitektursekuensial ?. Data kemudian di olah dalam bentuk tabel dan grafik perbandingan• 4. Berapa nilai speedup yang diperoleh dari hasil kompresi setiap citra uji ?
  4. 4. BATASAN MASALAH1. Algoritma kompresi citra yang digunakan adalah algoritma DCT yang beroperasi pada blok 8x8 dengan pendekatan 1 kernel.2. Untuk proses yang bekerja secara sekuensial menggunakan bahasa pemrograman C++ sedangkan untuk proses yang bekerja secaraparalel GPU menggunakan teknologi dari Nvidia yang dapat membaca kartu grafis yaitu teknologi Compute Unified DeviceArchitecture ( CUDA ).3. Parameter yang digunakan untuk menghitung komputasinya menggunakan cuda timer function.4. Waktu yang didapat dari dua penelitian diatas dinyatakan dengan satuan waktu berupa millisecond.5. Citra uji yang dikompresi sebanyak empat buah dengan masing-masing piksel berukuran dari 256 x 256 px , 512 x 512 px, 1024 x1024 px dan 2048 x 2048 px dengan depth sebesar 24 bit dan bitmap sebagai format setiap citra uji.6. Penelitian tentang kompresi citra dengan algoritma DCT 8x8 hanya di lakukan pada CPU Intel Core I3-2310M dan GPU Nvidia CudaGeforce GT540M menggunakan sistem operasi Windows7 Ultimate 32bit , Compiler NVCC untuk CUDA dan Visual Studio 2008sebagai IDEnya serta menggunakan pustaka cuda yaitu cudart.lib dan cutil32.lib7. Penelitian ini dibuat hanya untuk membuktikan apakah komputasi paralel GPU memang lebih cepat daripada kinerja komputasisecara sekuensial?. Dan mendapatkan nilai speedup pada proses kompresi citra
  5. 5. TUJUAN PENELITIAN• Tujuan dari penelitian ini adalah membandingkan nilai speedup daribeberapa sample citra uji yang di olah dari data percobaan padakomputasi sekuensial dan pada komputasi paralel dengan memanfaatkancuda timer function sebagai uji parameter untuk mendapatkan waktuproses kompresi citra pada setiap sampel uji .
  6. 6. KOMPRESI CITRAKompresi citra adalah aplikasi kompresi data yang dilakukan terhadap citra digital dengan tujuan untukmengurangi redudansi dari data-data yang terdapat dalam citra sehingga dapat disimpan atauditransmisikan secara efisien. Teknik pada kompresi terbagi menjadi 2 jenis yaitu :1. Loseless CompressionTeknik kompresi citra dimana tidak ada satupun informasi citra yang dihilangkan, biasanya digunakanpada citra medik. Metode yang dipakai pada teknik kompresi ini antara lain : Run Length Encoding, EntropyEncoding ( Huffman, Aritmatik ) dan Adaptive Dictionary Based ( LZW ).2. Lossy CompressionTeknik kompresi citra yang menghilangkan beberapa informasi dalam citra asli dan merubah ukuranfile citra menjadi lebih kecil dari citra aslinya. Teknik ini mengubah detail dan warna pada file citra menjadilebih sederhana tanpa terlihat perbedaan yang mencolok dalam pandangan manusia, sehingga ukurannyamenjadi lebih kecil, biasanya digunakan pada citra foto atau image lain yang tidak memerlukan detail citra ,diman kehilangan bitrate foto tidak berpengaruh pada citra. Metode yang dipakai pada teknik kompresi iniantara lain : Color Reduction, Chroma Subsampling, Transform Coding ( termasuk DCT di dalamnya )
  7. 7. ALGORITMA DCT• Metode DCT pertama kali diperkenalkan oleh Ahmed, Natarajan dan Rao pada tahun 1974• DCT adalah sebuah teknik untuk mengubah sinyal ke dalam komponen frekeunsi dasar. DCT merupakansebuah skema lossy compression dimana NxN blok ditransformasikan dari domain spasial ke domain DCT.• Skema Metode Kompresi DCT 8x8 :• Algoritma DCT memiliki kompleksitas waktu Total sebesar O ( N log N), dengan kompleksitas waktu yangditerapkan pada formula perkalian dua matriks sebesar O ( N^{text{3}}). Oleh karena itu, jika AlgoritmaDCT menggunakan blok 8x8 maka inputan n = 8, membutuhkan ( 8^{text{3}}) langkah untukmenyelesaikan proses perkalian matriksnya.
  8. 8. ALGORITMA DCT• Kelebihan kompresi citra menggunakan DCT adalah :1. DCT menghitung kuantitas bit-bit data citra dimana pesan tersebut disembunyikan di dalamnya.Walaupun gambar yang dikompresi dengan lossy compression akan menimbulkan kecurigaan karenaperubahan gambar terlihat jelas, pada metode ini hal ini tidak akan terjadi karena metode ini terjadidi domain frekeunsi di dalam citra, bukan domain spasial, sehingga tidak akan ada perubahan yangterlihat pada cover gambar.2. Kokoh terhadap manipulasi pada stego-object.• Kekurangan kompresi citra menggunakan algoritma DCT adalah :1. Tidak tahan terhadap perubahan suatu objek dikarenakan pesan mudah dihapus karena lokasipenyisipan data dan pembuatan data dengan metode DCT diketahui.2. Implementasi algoritma yang panjang dan membutuhkan banyak perhitungan.
  9. 9. ARSITEKTUR CUDA• CUDA merupakan akronim dari Compute Unified Device Architecture yaitu sebuah teknologi yang dikembangkanoleh NVIDIA untuk mempermudah utilita.si GPU untuk keperluan umum (non-grafis).• Arsitektur CUDA memiliki beberapa keunggulan, diantaranya adalah :1. CUDA menggunakan bahasa “C” standar, dengan beberapa ekstensi yang simpel.2. Shared memory – CUDA menyingkapkan wilayah memory yang cepat (berukuran 16 KB) yang dapat di bagidiantara thread-thread yang ada. Hal ini dapat digunakan sebagai user-managed-cache, sehingga mengaktifkanbandwitdth yang lebih besar (dari besaran bandwidth yang dimungkinkan), menggunakan texture loops.• Kekurangan dari arsitektur CUDA adalah :1. CUDA tidak support texture rendering.2. Bus Bandwidth dan latensi antara CPU dengan GPU bisa jadi tidak imbang.3. CUDA hanya terdapat pada GPU Nvidia
  10. 10. ARSITEKTUR CUDA• Untuk dapat bekerja dengan teknologi CUDA ada 3 komponen yang harus tersedia pada perangkat PCatau notebook. Komponen tersebut antara lain :1. CUDA driver, merupakan driver yang harus sudah terinstal pada device yang akan digunakan untukmenjalankan program CUDA. Device tersebut harus menggunakan kartu grafis dari Nvidia.2. CUDA toolkit, merupakan ruang lingkup pengembangan CUDA dari bahasa C sehingga akan menghasilkanCUDA-enabled GPU.3. CUDA SDK, berisi sample-sample program CUDA dan header yang dapat dijalankan oleh program CUDA• CUDA Constant MemoryAdalah memori konstan pada GPU, Konstan, artinya tidak dapat diubah selama eksekusi kernel. Beberapakarakteristik Cuda Constan Memory, antara lain :1. Didefinisikan dengan keyword _constant_2. Tidak perlu alokasi memori dengan _cudaMalloc_3. Diisi dengan __cudaMemcpyToSymbol__
  11. 11. ARSITEKTUR CUDA4. Langsung tersedia untuk kernel, tidak perlu di pass sebagai parameter5. Tidak perlu di frre memory setelah eksekusiKeuntungan menggunakan constant memory adalah dia diakses secara half-warp, sehingga 16threads yang mengakses alamat yang sama cukup melakukan satu kali pembacaan memori.Karena sifatnya yang konstan, constant memory juga dicache secara agresif oleh GPU.• CUDA Shared MemoryCUDA Shared Memory dibagi menjadi modul memori berukuran sama yang disebut bankmemori. Setiap bank memori memegang nilai 32-bit yang berurutan (seperti int atau float)sehingga array yang berurutan dengan mengakses thread berturut-turut sangat cepat.
  12. 12. GPU ( Graphic Processing Unit )• GPU adalah sirkuit khusus yang dirancang untuk cepat memanipulasi danmengubah memori yang sedemikian rupa sehingga mempercepatpembangunan gambar dalam frame buffer yang dimaksudkan untukoutput untuk tampilan.• Istilah GPU ini didefinisikan dan dipopulerkan oleh Nvidia pada tahun1999, yang memasarkan kartu video GeForce 256 sebagai “GPU pertamadi dunia , yang merupakan sebuah chip prosesor tunggal yang terintegrasidengan transformasi, pencahayaan, segitiga setup / kliping, dan mesinrender yang mampu memproses minimal 10 juta poligon per detik “.• Sistem Kerja GPUDriver VGA - > data digital -> Kartu Grafis -> memori Kartu Grafis -> GPU( diubah menjadi piksel ) -> VRAM-> DAC ->Data Analog -> Monitor
  13. 13. GPU ( Graphic Processing Unit )• Eksekusi Program pada GPU• Kernel sendiri dijalankan dengan banyakthread secara bersamaan pada GPU.• thread adalah satuan eksekuis terkecildalam CUDA. Thread ini dikelompokkanpada block.• Jumlah thread yang dapat dijalankanpada satu block terbatasi oleh kemampuanhardware, tapi satu kernel dapat dijalankanoleh banyak block sekaligus.• Banyaknya block dan thread per blockdidefinisikan saat memanggil kernel dalamprogram.• Thread yang berada dalam satu blockdapat saling berbagi memori, tapi tidakdengan thread yang berada di lain block
  14. 14. ALGORITMA DCT 8X8 PADA KOMPUTASI SEKUENSIAL DAN PARALEL• Pada Komputasi sekuensial, penerapan algoritma DCT 8x8 tidakmenggunakan perkalian matriks persegi . Karena perhitungsn functioncosine pada bahasa c memerlukan kompleksitas yang cukup rumit. Jadiperhitungan koefisien matriksnya terdiri dari 2*N elemen yang disebar kedalam 8x8 blok. Berikut sintaks perhitungan function cosine menggunakanbahasa C.
  15. 15. ALGORITMA DCT 8X8 PADA KOMPUTASI SEKUENSIAL DAN PARALEL• Pada Komputasi ParalelImplementasi algoritma DCT8x8 menurut teori dasar dilakukan denganmenggunakan dasar perkalian mariks. Untuk mengkonversi 8x8 masukansampel ke dalam domain transform, dan perkalian dua matriks mutlakdiperlukan. Pada CUDA, peta pendekatan dijelaskan baik untuk modelpemrograman CUDA dan arsitektur parallel khususnya.• Gambar dibagi menjadi satu set blok seperti yang ditunjukkan padagambar di bawah ini.
  16. 16. ALGORITMA DCT 8X8 PADA KOMPUTASI SEKUENSIAL DAN PARALEL• Setiap satu set blok-CUDA menjalankan 64 thread untuk melakukanpenghitungan DCT. Masing-masing thread di blok-CUDA menghitungkoefisien DCT tunggal. Semua bentuk persinyalan sebelum di hitung akandisimpan dalam bentuk array yang terletak pada memori. Fungsi Duadimensi DCT ukuran NxN didefinisikan sebagai berikut :• Array pada memori konstan tersebut ditampilkan sebagai array duadimensi yang berisi nilai-nilai fungsi dasar yaitu A (x,u).
  17. 17. ALGORITMA DCT 8X8 PADA KOMPUTASI SEKUENSIAL DAN PARALELDua dimensi DCT dilakukan dalam empat jumlah thread):1. Thread dengan koordinat (ThreadIdx.x, ThreadIdx.y) memuat satu pixel dari teksturuntuk memori bersama. Untuk memastikan seluruh blok dimuat untuk saat ini, semuathread yang melewati titik sinkronisasi.2. Thread menghitung dot product antara dua vektor: Kolom ThreadIdx.y dari kosinuskoefisien (yang sebenarnya deretan A^T dengan nomor yang sama) dan ThreadIdx.xkolom dari blok masukan. Untuk memastikan semua koefisien dari (A^T)X adalahdihitung, dan harus di sinkronisasikan.3. Thread dihitung dengan formula ( A^TX ) A , dengan cara yang sama seperti langkah 24. Seluruh blok akan disalin dari shared memory untuk hasil output dalam globalmemorydan setiap thread bekerja dengan single pixel.
  18. 18. ALGORITMA DCT 8X8 PADA KOMPUTASI SEKUENSIAL DAN PARALEL• Jika dilihat model komputasi algoritma DCT 8x8 pada thread yaitu sebagaiberikut :• Model komputasi DCT pada GPU ditunjukkan pada gambar di atas. Setiap blokthread menghitung satu sub persegi untuk mendapatkan hasil perhitungan matriks( Kotak persegi hijau ). Setiap thread dalam blok menghitung satu elemen matriks.Blok biru menunjukkan bagaimana perhitungan dilakukan . Elemen pada matriksasli dan transfer matriks koefisien disorot dengan warna yang berbeda. Untukmentransfer kolom kedua, matriks akan bertukar posisi.
  19. 19. ALGORITMA DCT 8X8 PADA KOMPUTASI SEKUENSIAL DAN PARALEL• Model Pengalokasian Memori pada algoritma DCT 8x8setiap elemen me-load dari memori global untuk berbagi memori . Karenaukuran blok di atur menjadi 8x8, maka indeks thread akan menjadi jumlahindeks pada bank memori. Setelah menyelesaiakan perhitungan, datamemori akan di-load kembali ke memori global. Untuk menyesuaikanmodel perhitungan dengan ukuran piksel matriks . Maka dibuatlahpadding lokasi yang di set sebagai warna biru terang agar akses memorimenjadi selaras ketika mengeksekusi program
  20. 20. HASIL PENGUJIAN DAN ANALISA• Grafik Percobaan Komputasi Sekuensial pada setiap citra uji
  21. 21. HASIL PENGUJIAN DAN ANALISA• Grafik Percobaan Komputasi Paralel GPU pada setiap citra uji
  22. 22. HASIL PENGUJIAN DAN ANALISA• Grafik Perbandingan Waktu proses kompresi Citra pada KomputasiSekuensial dan Komputasi Paralel GPU pada setiap citra uji
  23. 23. KESIMPULAN•Proses kompresi citra dengan metode DCT 8x8 dapat diimplementasikanpada arsitektur parallel GPU sehingga dapat menjadi pilihan alternatif untukmemproses kompresi suatu citra dengan tidak hanya memanfaatkanarsitektur sekuensial saja.• Nilai Speedup dari beberapa citra uji
  24. 24. KESIMPULAN• Hasil akhir yang didapat dapat disimpulkan bahwa speed up bersifat terusmeningkat terhadap data citra uji serta speedup bersifat non-linearterhadap data citra uji. Karena pengaruh jumlah piksel yang semakin besarmenyebabkan penghitungan bit-bit citra menjadi lebih kompleks.• Dari percobaan yang telah dilakukan pada beberapa citra uji tentangkomputasi sekuensial dan komputasi parallel pada proses kompresi makaspeedup akan terus meningkat jika jumlah piksel semakin besar. Hal inisesuai dengan Hukum Gustafson yang berbunyi “Speedup akan meningkatjika ukuran data juga ditingkatkan” .
  25. 25. SARANMengingat masih banyaknya perbaikan yang perlu dilakukan pada skripsi ini,maka penulis mempertimbangkan beberapa saran yang diperlukan dalamproses untuk mengembangkan materi skripsi penulis di kemudian hari,diantaranya adalah :1. Melakukan ujicoba jika metode DCT8x8 pada CUDA di implementasikanuntuk transmisi citra menggunakan kanal multipath.2. Melakukan perbandingan komputasi waktu setiap citra uji antara metodeDCT 8x8 pada CUDA dengan metode Fraktal pada CUDA.
  26. 26. Referensi[1] Obhukov, Anton and Kharmalov, Alexander. Discrete Cosine Transform for8x8 Blocks with CUDA. s.l. : NVIDIA Corporation, 2008.[2] Nvidia Corporation. Nvidia Corp. Nvidia Corp website. [Online]http://developer.download.nvidia.com/compute/cuda/2_3/toolkit/docs/NVIDIA_CUDA_Programming_Guide_2.3.pdf. 2009.[3] Analisis Kinerja Perkalian Matriks Paralel Menggunakan MetrikIsoefisiensi. Kartawijaya, Maria. 2, Jakarta : TESLA, 2008, Vol. 10.
  27. 27. Q & A

×