paralelisasi transformasi wavelet diskrit … · citra pada gpu menggunakan arsitektur paralel cuda...

32
PARALELISASI TRANSFORMASI WAVELET DISKRIT MENGGUNAKAN ARSITEKTUR CUDA PADA GRAPHIC PROCESSING UNIT UNTUK DE-NOISING CITRA DOSEN PEMBIMBING: Dr. Nanik Suciati, S.Kom. M.Kom Wahyu Suadi, S.Kom, MM, M.Kom Penyusun Tesis: Rudy Cahyadi HP- 5109201051 Sidang Tesis Surabaya 18 Juli 2011

Upload: lyngoc

Post on 15-May-2019

232 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

PARALELISASI TRANSFORMASI WAVELET

DISKRIT MENGGUNAKAN ARSITEKTUR CUDA

PADA GRAPHIC PROCESSING UNIT UNTUK

DE-NOISING CITRA

DOSEN PEMBIMBING:

Dr. Nanik Suciati, S.Kom. M.Kom

Wahyu Suadi, S.Kom, MM, M.Kom

Penyusun Tesis:

Rudy Cahyadi HP- 5109201051

Sidang Tesis

Surabaya 18 Juli 2011

Page 2: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Pendahuluan

Citra Asli Citra de-noising (512x512) Citra de-noising(2048x2048)

Citra noise(gaussian std=0,1) Citra de-noising (1024x1024) Citra de-noising(4096x4096)

Page 3: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Pendahuluan

Semakin besar ukuran citra, hasil de-noising semakin baik

De-noising citra mengunakan Transformasi Wavelet

Diskrit (DWT)

Dekomposisi DWT 2D

Thresholding

Rekonstruksi DWT 2D

Page 4: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Pendahuluan

Semakin besar ukuran citra, hasil de-noising semakin baik

De-noising citra mengunakan Transformasi Wavelet

Diskrit (DWT)

Dekomposisi DWT 2D

Thresholding

Rekonstruksi DWT 2D

Page 5: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Pendahuluan

Semakin besar ukuran citra, hasil de-noising semakin baik

De-noising citra mengunakan Transformasi Wavelet

Diskrit (DWT)

Dekomposisi DWT 2D

Thresholding

Rekonstruksi DWT 2D

Page 6: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Masalah

Waktu komputasi

(citra 4096x4096, CPU Quad core @2,666Ghz 4GB DDR2)

De-noising 1 citra RGB ~ 27,1 detik

Proses Dekomposisi DWT 2D ~ 14,2 detik

Thresholding detil-detil koefisien ~ 3,9 detik

Proses Rekonstruksi DWT 2D ~ 9 detik

Kurang real-time

Page 7: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Penelitian sebelumnya

[3]Yang Su, Zhijie Xu. (2010), “Parallel implementation of

wavelet-based image denoising on programmable PC-

grade graphics hardware”, Signal Processing volume 90, issue

8, Elsevier, hal. 2396-2411.

Menggunakan OpenGL (graphic pipeline)

Memanfaatkan GPU untuk paralel image processing,

perhitungan dilakukan di Texture Buffer (mempunyai texture

cache)

Proses dekomposisi dan rekonstruksi DWT 2D di GPU

Page 8: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Motivasi

Ada teknologi baru untuk komputasi paralel yang lagi trend, yaitu CUDA

(Compute Unified device Architecture).

[6] Weinlich, A., Keck, B., Scherl, H., Kowarschik, M., Hornegger, J. (2008), “Comparison of High-

Speed Ray Casting on GPU using CUDA and OpenGL”, High Performance and Hardware-Aware

Comuting (HipHac), ed R Buchty and J-P Weiss, hal 25-30.

[7] Amorim, R., Haase, G., Liebmann, M., Weber dos Santos, R, (2009), “Comparing CUDA and

OpenGL implementation for a Jacobi iteration”, High Performance Computing & Simulation, IEEE,

978-1-4244-4906-4.

OpenGL dibutuhkan pengetahuan khusus grafika komputer, waktu

implementasi lebih lama

CUDA 2x lebih cepat dari OpenGL

Texture cache didesain untuk memelihara bandwidth

CUDA shared memory dapat mengurangi latency

CUDA menganut SIMT (Single Instruction Multiple Thread) / Data

Paralelisme

Page 9: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Level Paralelisme

Dekomposisi DWT (Pemfilteran horisontal)

Filter daubechies 4

i increment 2

Perhitungan lpv dan hpv Independent -> Data Paralelisme -> CUDA

lpv 0 lpv 1 ... lpv m/2-1 hpv 0 hpv 1

... hpv m/2-1

24

31;

24

33;

24

33;

24

313210

=h=h

+=h

+=h

03122130 ;;;g h=gh=gh=gh=

32j322j212j12j0lpv +++i Dh+Dh+Dh+Dh=

32j322j212j12j0hpv +++i Dg+Dg+Dg+Dg=

Page 10: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Level Paralelisme

Rekonstruksi DWT (Pemfilteran horisontal)

d0 sampai dhalf-1 adalah low-pass value, dan dhalf sampai dn-1 adalah high-pass value.

Perhitungan D Independent -> Data Paralelisme -> CUDA

D j=h2d i+g2d half +i+h0 d i+1+g0d half +1+i

D j+1=h3d i+g3dhalf +i+h1d i+1+g1d half +1+i

Page 11: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Paralel Dekomposisi DWT 2D dgn CUDA

Untuk setiap komponen warna (R,G,B)

1. Mentransfer komponen warna citra (input data) dari host memory ke

device global memory.

2. Pemfilteran horisontal dekomposisi 1D pada device.

Menetapkan jumlah block pada grid, dan jumlah thread tiap block

Mentranfer input data baris dari global memory ke shared memory. Satu thread

load 2 data

Setiap thread menghitung low-pass value dan high-pass value, kemudian

mentransfer hasil perhitungan ke global memory.

3. Pemfilteran vertikal dekomposisi 1D pada device.

Cara sama dengan no.2 , tp input data berupa data kolom

4. Mentransfer data hasil dekomposisi dari device global memory ke host

memory.

Page 12: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Alokasi block thread pemfilteran horisontal

dekomposisi

Block (0,0)

Block (1,0)

Block(0,0) Block(1,0)

Block(0,1)

Block(0,2)

Block(0,3)

Block(0,1)

Block(0,2)

Block(0,3)

Block(1,1)

Block(1,2)

Block(1,3)

.

.

.

Block(0,1023)

.

.

.

Block(1,1023)

Thread(0,0) Thread(1,0) Thread(2,0) ... Thread(511,0)

Thread(0,0) Thread(1,0) Thread(2,0) ... Thread(511,0)

Grid 0

Page 13: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Alokasi block thread pemfilteran vertikal dekomposisi

Block (0,0)

Block (0,1)

Grid 0

Thread(0,0)

Thread(0,1)

Thread(0,2)

...

Thread(0,511)

Thread(0,0)

Thread(0,1)

Thread(0,2)

...

Thread(0,511)

Block(0,0)

Block(0,1)

Block(1,0) Block(2,0) ... Block(1023,0)

Block(1,1) Block(2,1) ... Block(1023,1)

Page 14: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Data pada shared memory (pemfilteran horisontal)

Mentranfer input data dari global memory ke shared memory. Satu thread load

2 input data.

Page 15: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Perhitungan low-pass dan high-pass value

(pemfiteran horisontal)

Setiap thread menghitung low-pass value dan high-pass value, kemudian mentransfer

hasil perhitungan ke global memory.

Page 16: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Paralel Dekomposisi DWT 2D dgn CUDA

Untuk setiap komponen warna (R,G,B)

1. Mentransfer komponen warna citra (input data) dari host memory ke

device global memory.

2. Pemfilteran horisontal rekonstruksi 1D pada device.

Menetapkan jumlah block pada grid, dan jumlah thread tiap block

Mentranfer input data dari global memory ke shared memory. Satu thread load

satu data low-pass value dan satu data high-pass value.

Setiap thread menghitung satu data rekonstruksi kemudian mentransfer hasil

perhitungan ke global memory

3. Pemfilteran vertikal rekonstruksi 1D pada device.

Cara sama dengan no.2 , tp input data berupa data kolom

4. Mentransfer data hasil rekonstruksi dari device global memory ke host

memory.

Page 17: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Alokasi block thread pemfilteran horisontal

dekomposisi

Page 18: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Alokasi block thread pemfilteran vertikal dekomposisi

Page 19: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Mentranfer input data dari global memory ke shared memory. Satu thread load satu

data low-pass value dan satu data high-pass value.

.

Data pada shared memory (pemfilteran horisontal)

Page 20: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Perhitungan data rekonstruksi (pemfilteran

horisontal)

Setiap thread menghitung satu data rekonstruksi kemudian mentransfer hasil

perhitungan ke global memory

Page 21: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Lingkungan Uji Coba

Data Uji coba

(ukuran:512x512,1024x1024,2048x2048,4096x4096)

CPU Intel(R) Quad Core(TM) @2,666 GHz, 4 GB DDR2,

GPU Nvidia Geforce GTS 450 AMP! Edition 1GB

GDDR3.

CPU I3 @2,4Ghz, 2GB, GPU Geforce 310M 512GB

Visual Studio 2008 Professional, Matlab R2010a.

NVMEX ( NVCC + MEX )

Page 22: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Pengujian kebenaran program

Gaussian noise std=0,1

Versi GPU-CUDA (PSNR=21,1027)

Versi CPU (PSNR=21,0973)

Page 23: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Evaluasi Kinerja Kualitas Citra hasil De-noising pada

berbagai Model Noise

Page 24: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Evaluasi Kinerja Kualitas Citra hasil De-noising pada

berbagai Model Noise

Page 25: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Evaluasi Kinerja Kualitas Citra hasil De-noising pada

berbagai Model Noise

Page 26: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Evaluasi Kinerja Waktu Komputasi Dekomposisi

DWT 2D pada GPU-CUDA dan CPU

Ukuran Citra Dekomposisi CPU

(ms)

Dekomposisi GPU +

transfer antar memori

(ms)

Dekomposisi GPU -

tranfer antar memori

(ms)

512x512 163,7 31,7 4,6

1024x1024 843,7 75,3 13,6

2048x2048 3498,1 265,7 51,9

4096x4096 14182,8 977,4 176,5

Page 27: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Evaluasi Kinerja Waktu Komputasi Rekonstruksi

DWT 2D pada GPU-CUDA dan CPU

Ukuran Citra Rekonstruksi CPU

(ms)

Rekonstruksi GPU +

transfer antar memori

(ms)

Rekonstruksi GPU -

transfer antar memori

(ms)

512x512 84,0 25,9 4,2

1024x1024 513,6 73,4 14,4

2048x2048 2194,6 257 52,4

4096x4096 9034,3 966,7 190,8

Page 28: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Evalusi kinerja Kecepatan dekomposisi &

rekonstruksi GPU terhadap CPU

Ukuran Citra kecepatan

dekomposisi+ transfer

antar memori (x)

kecepatan

dekomposisi– transfer

antar memori (x)

kecepatan

rekonstruksi + tranfer

antar memori (x)

kecepatan

rekonstruksi - transfer

antar memori (x)

512x512 5,2 35,4 3,2 20,1

1024x1024 12,2 61,9 6,9 35,7

2048x2048 13,2 67,4 8,5 41,9

4096x4096 14,5 80,4 9,3 47,4

0

10

20

30

40

50

60

70

80

90

kecepatan

dekomposisi+

transfer antar

memori (x)

kecepatan

dekomposisi -

transfer antar

memori (x)

kecepatan

rekonstruksi +

transfer antar

memori (x)

kecepatan

rekonstruksi -

transfer antar

memori (x)

512x512

1024x1024

2048x2048

4096x4096

Page 29: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Evalusi kinerja Kecepatan de-noising citra

GPU terhadap CPU

Ukuran Citra De-noising versi CPU (ms) De-noising versi GPU CUDA (ms) Kecepatan (x)

512x512 313,6 140,7 2,2

1024x1024 1612,6 425,9 3,8

2048x2048 6686,3 1635,7 4,1

4096x4096 27101,1 6199,4 4,4

0

500

1000

1500

2000

2500

3000

3500

512x512 1024x1024 2048x2048

ms

ukuran citra

De-noising versi penelitian

kami* (ms)

De-noising versi peneltian

sebelumnya*** (ms)

Page 30: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Evalusi kinerja Kecepatan de-noising citra penelitian

kami dengan penelitian sebelumnya

Ukuran

Citra

De-noising versi

penelitian sebelumnya*

(ms)

De-noising versi penelitian

kami** (ms)

De-noising versi penelitian

kami*** (ms)

512x512 222 216,4 140,7

1024x1024 725 747,5 425,9

2048x2048 3324 3768,6 1635,7

4096x4096 Tidak tersedia Tidak tersedia 6199,4

*Geforce GTX 7900 **Geforce 310 ***Geforce GTS 450

GTX 7900 tidak support CUDA, Tesla HPC tidak support OpenGL

0

500

1000

1500

2000

2500

3000

3500

4000

512x512 1024x1024 2048x2048

De-noising versi

penelitian kami* (ms)

De-noising versi

penelitian kami** (ms)

De-noising versi

peneltian

sebelumnya*** (ms)

GeForce 7900

GTX GeForce 310 GeForce GTS 450

Core Clock 650 MHz 589 / 1,402 MHz 783 / 1,566 MHz

Memory Clock 1.6 GHz 1 GHz 3.6 GHz

Memory Interface 256-bit 64-bit 128-bit

Memory Transfer Rate 51.2 GB/s 8 GB/s 57.7 GB/s

Pixels per clock 24 16 192

http://www.hardwaresecrets.com/article/NVIDIA-Chips-Comparison-Table/132

Page 31: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

Kesimpulan

Waktu komputasi proses dekomposisi atau rekonstruksi

citra pada GPU menggunakan arsitektur paralel CUDA

dibandingkan dengan waktu dekomposisi atau

rekonstruksi pada CPU adalah lebih cepat 3,2 sampai 14,5

kali. Sehingga dengan paralelisasi tersebut, dapat membuat

waktu komputasi proses de-noising citra lebih cepat 2,2

sampai 4,4 kali dari proses de-noising pada CPU saja.

bottleneck waktu komputasi paralel terbesar terletak pada

transfer data antar memori, yaitu sekitar 80%.

Page 32: PARALELISASI TRANSFORMASI WAVELET DISKRIT … · citra pada GPU menggunakan arsitektur paralel CUDA dibandingkan dengan waktu dekomposisi atau rekonstruksi pada CPU adalah lebih cepat

SEKIAN TERIMA KASIH