• Tidak ada hasil yang ditemukan

Pedoman Praktikum Nvidia CUDA

BAB III PERANCANGAN

3.2. Pedoman Praktikum Nvidia CUDA

Diagram alir pedoman praktikum dapat dilihat pada Gambar 3.2.

Gambar 3.2 menunjukkan perancangan pedoman praktikum. Berikut adalah deskripsi dari masing-masing pedoman:

3.2.1. Pedoman praktikum topik 0 : Pengenalan Nvidia CUDA dan Instalasi Nvidia CUDA Toolkit, Nvidia CUDA SDK, Nvidia Nsight dan Integrasi Nvidia CUDA dengan Visual Studio 2008 dan Visual Studio 2010.

Melalui pedoman praktikum topik 0 diharapkan mahasiswa menguasai konsep:

Mahasiswa dapat melakukan instalasi Nvidia CUDA Toolkit, Nvidia CUDA SDK dan Nvidia Nsight.

Mahasiswa dapat melakukan integrasi Nvidia CUDA dengan Visual Studio 2008 dan 2010.

Mahasiswa dapat mengetahui properties GPU yang digunakan melalui program GPU-Z.

• Mahasiswa dapat menguji contoh program pada Nvidia CUDA SDK.

Pemilihan topik pedoman ini didasarkan :

• Perlunya mahasiswa mengingat kembali konsep-konsep dasar pemrosesan paralel.

• Perlunya pengenalan konsep Nvidia CUDA sebagai mesin pemrosesan paralel.

Perancangan pedoman praktikum: 1. Tujuan.

2. Mengecek jenis GPU dan versi driver pada PC atau laptop. 3. Instalasi Nvidia CUDA Toolkit.

4. Instalasi Nvidia CUDA SDK.

5. Integrasi Nvidia CUDA dengan Visual Studio 2008. 6. Integrasi Nvidia CUDA dengan Visual Studio 2010. 7. Instalasi Nvidia Nsight.

8. Kompilasi source CUDA dengan Visual Studio 2010 command prompt 9. GPU Computing SDK test.

10. Pemrograman Nvidia CUDA dengan Visual Studio 2008 atau Visual Studio 2010.

11. Soal Praktikum

11.1. Soal praktikum set 1: Analisa program. 11.2. Soal praktikum set 2: Analisa program. 12. Set Dosen

12.1. Set Dosen 1. 12.2. Set Dosen 2. 13. Daftar Pustaka.

3.2.2. Pedoman praktikum topik 1:Nvidia CUDA Basic.

Melalui pedoman praktikum topik 1 diharapkan mahasiswa menguasai konsep:

• Pembuatan program Nvidia CUDA sederhana.

• Penyalinan memory, eksekusi kernel dan menampilkan hasil eksekusi. • Eksekusi thread pada kernel.

Pemilihan topik pedoman ini didasarkan : • Mengenalkan CUDA template.

• Dasar dari penyalinan memory, pemanggilan kernel dan eksekusi thread pada kernel.

• Mengenalkan kode host dan kode device.

Perancangan pedoman praktikum: 1. Tujuan. 2. Dasar Teori 2.1. Kernel. 2.2. Thread. 2.3. CUDA template. 2.4. Alokasi memory.

3. Contoh Program

3.1. Contoh program 1: menghitung kuadrat dari thread. 4. Soal Praktikum set 1

4.1. Soal 1 : Pembatasan thread dari thread 0 sampai thread 3. 4.2. Soal 2 : Penjumlahan paralel.

5. Soal Praktikum set 2

5.1. Soal 1 : Pembatasan thread dari thread 7 sampai thread 4. 5.2. Soal 2 : Perkalian paralel.

6. Set Dosen 6.1. Set Dosen 1. 6.2. Set Dosen 2. 7. Daftar Pustaka.

3.2.3. Pedoman praktikum topik 2 :Nvidia CUDA Threading.

Melalui pedoman praktikum topik 2 diharapkan mahasiswa menguasai konsep:

Menggunakan thread dalam 3 sumbu vektor x,y dan z. Menggabungkan semua thread di dalam block.

Menggunakan timer untuk mengetahui waktu eksekusi GPU. Pemilihan topik pedoman ini didasarkan :

Konfigurasi thread yang digunakan dalam mengeksekusi kernel mempengaruhi unjuk kerja GPU.

Penggunaan timer penting untuk mengetahui unjuk kerja GPU. Perancangan pedoman praktikum :

1. Tujuan. 2. Dasar Teori

2.1. Konfigurasi thread.

3. Contoh Program

3.1. Contoh program 1: Eksekusi kernel dengan menggunakan thread vektor x,y dan z.

3.2. Contoh program 2: Eksekusi kernel dengan menggunakan gabungan thread antar block.

3.3. Contoh program 3: Penggunaan timer untuk menghitung waktu eksekusi.

4. Soal Praktikum set 1

4.1. Soal 1: Penjumlahan koordinat dengan menggunakan vektor x dan y. 4.2. Soal 2: Perkalian matrik secara paralel.

5. Soal Praktikum set 2

5.1. Soal 1: Perkalian koordinat dengan menggunakan vektor x dan y. 5.2. Soal 2: Perkalian matrik secara paralel.

6. Set Dosen 6.1. Set Dosen 1. 6.2. Set Dosen 2. 7. Daftar Pustaka.

3.2.4. Pedoman praktikum topik 3 :Nvidia CUDA Memory.

Melalui pedoman praktikum topik 3 diharapkan mahasiswa menguasai konsep:

Memory model Nvidia CUDA.

Jenis - jenis memory Nvidia CUDA.

Menentukan jenis memory yang tepat untuk mengeksekusi program Nvidia CUDA.

Penggunaan shared memory, constant memory dan global memory dalam program.

Pemilihan topik pedoman ini didasarkan :

Perlunya mengetahui jenis memory Nvidia CUDA.

Perlunya mengetahui cara penggunaan memory di dalam program Nvidia CUDA.

Perancangan pedoman praktikum: 1. Tujuan.

2. Dasar Teori

2.1. Memory model Nvidia CUDA. 2.2. Tipe Memory Nvidia CUDA. 3. Contoh Program

3.1. Contoh program 1: Contoh penggunaan global memory, shared memory dan constant memory kemudian membandingkan kecepatan shared memory dan global memory dalam memproses data.

4. Soal Praktikum set 1

4.1. Soal 1: Perkalian matrik secara paralel dengan menggunakan shared memory.

4.2. Soal 2: Bitonic sort. 5. Soal Praktikum set 2

5.1. Soal 1: Perkalian matrik secara paralel dengan menggunakan shared memory, data yang digunakan random.

5.2. Soal 2: Bitonic sort dengan menggunakan data random. 6. Set Dosen

6.1. Set Dosen 1. 6.2. Set Dosen 2. 7. Daftar Pustaka.

3.2.5. Pedoman praktikum topik 4 : Nvidia CUDA API.

Melalui pedoman praktikum topik 4 diharapkan mahasiswa menguasai konsep :

Menguasai dan menerapkan 5 fungsi dasar Nvidia CUDA Runtime API yaitu device management, memory management, stream management, event management dan error handling.

Pembuatan aplikasi dengan menggunakan Nvidia CUDA API Runtime. Pemilihan topik pedoman ini didasarkan :

Mengenalkan 5 fungsi dasar Nvidia CUDA API Runtime.

Perancangan pedoman praktikum : 1. Tujuan.

2. Dasar Teori

2.1. Nvidia CUDA Device Management. 2.2. Nvidia CUDA Memory Management. 2.3. Nvidia CUDA Event Management. 2.4. Nvidia CUDA Stream Management. 2.5. Nvidia CUDA Error Handling. 3. Contoh Program

3.1. Contoh program 1: Contoh penggunaan Nvidia CUDA Device Management.

3.2. Contoh program 2: Contoh penggunaan Nvidia CUDA Memory Management untuk penjumlahan vektor menggunakan mapping memory.

3.3. Contoh program 3: Contoh penggunaan Nvidia CUDA Event, Stream dan Error handling untuk mengecek pemanggilan API, jika ada error maka program akan menampilkan pesan error.

4. Soal Praktikum set 1

4.1. Soal 1: Membuat Menu untuk Searching bilangan via Runtime API secara paralel, Mencari bilangan prima via Runtime API secara paralel, Mencari bilangan prima dengan menggunakan mapping memory dan memproses data menggunakan CUDA stream.

5. Soal Praktikum set 2

5.1. Soal 1: Membuat Menu untuk Searching bilangan via Runtime API secara paralel, Mencari bilangan bukan prima via Runtime API secara paralel, Mencari kelipatan bilangan dengan menggunakan mapping memory dan memproses data menggunakan CUDA stream.

6. Set Dosen 6.1. Set Dosen 1. 6.2. Set Dosen 2. 7. Daftar Pustaka.

3.2.6. Pedoman praktikum topik 5 : Nvidia CUDA Library.

Melalui pedoman praktikum topik 5 diharapkan mahasiswa menguasai konsep :

Penggunakan fasilitas library Nvidia CUDA.

Penggunaan library CUBLAS dan Thrust untuk melakukan pemrosesan paralel.

Pemilihan topik pedoman ini didasarkan :

Penggunaan Nvidia CUDA Library dapat mempermudah user dalam memproses data secara paralel.

Perancangan pedoman praktikum : 1. Tujuan.

2. Dasar Teori 2.1. CUBLAS

2.1.2. CUBLAS level 2. 2.1.3. CUBLAS level 3. 2.2. Thrust 2.2.1. Containers. 2.2.2. Algoritma. 2.2.3. Iterator. 3. Contoh Program

3.1. Contoh program 1: Menggunakan CUBLAS level 1 untuk menghitung operasi vektor dengan vektor menggunakan fungsi cublasSaxpy, cublasSasum dan cublasScoopy.

3.2. Contoh program 2: Menggunakan CUBLAS level 2 untuk menghitung operasi matrik dengan vektor menggunakan fungsi cublasSgemv. 3.3. Contoh program 3: Menggunakan CUBLAS level 3 untuk menghitung

operasi matrik dengan matrik menggunakan fungsi cublasSgemm. 3.4. Contoh program 4: Menggunakan Thrust untuk transformasi, reduksi,

prefix-sums dan sorting. 4. Soal Praktikum set 1

4.1. Soal 1: Melakukan pembacaan text file dengan format yang telah ditentukan kemudian membuat menu unuk melihat data list barang , melihat barang dari harga termurah, melihat barang dari harga termahal dan membeli barang. Semua perhitungan menggunakan Thrust Library.

4.2. Soal 2: Melakukan pembacaan data melalui text file kemudian melakukan perkalian matrik dengan matrik itu sendiri yang telah ditransformasi negasi dan dilakukan transpose matrik. Perkalian matrik menggunakan CUBLAS level 3.

5. Soal Praktikum set 2

5.1. Soal 1: Melakukan pembacaan text file dengan format yang telah ditentukan kemudian membuat menu unuk melihat data list barang , melihat barang dari harga termurah, melihat barang dari harga termahal dan membeli barang. Semua perhitungan menggunakan Thrust Library.

5.2. Soal 2: Melakukan pembacaan data melalui text file kemudian melakukan perkalian matrik dengan matrik itu sendiri yang telah ditransformasi modulo dan dilakukan transpose matrik. Perkalian matrik menggunakan CUBLAS level 3.

6. Set Dosen 6.1. Set Dosen 1. 6.2. Set Dosen 2. 7. Daftar Pustaka.

3.2.7. Pedoman praktikum topik 6 : Nvidia CUDA Optimization.

Melalui pedoman praktikum topik 6 diharapkan mahasiswa menguasai konsep :

Optimasi Nvidia CUDA secara software .

Optimasi Nvidia CUDA dengan menggunakan coalescing memory. Memaksimalkan penggunaan thread untuk mengoptimalkan unjuk kerja

Nvidia CUDA.

Pemilihan topik pedoman ini didasarkan :

Perlunya optimasi Nvidia CUDA secara software untuk meningkatkan unjuk kerja Nvidia CUDA dalam memproses data secara paralel.

Perancangan pedoman praktikum: 1. Tujuan.

2. Dasar Teori

2.1. Coalescing memory. 2.2. Optimasi thread. 3. Contoh Program

3.1. Contoh program 1: Membandingkan unjuk kerja coalescing memory dengan uncoalescing memory.

3.2. Contoh program 2: Membandingkan waktu eksekusi Nvidia CUDA dengan konfigurasi block dan thread yang berbeda.

4. Soal Praktikum set 1

4.1. Soal 1: Membuat program untuk melakukan transpose matrik dengan uncoalescing memory, coalescing memory, shared memory dan optimasi thread kemudian membandingkan waktu eksekusinya. 4.2. Soal 2: Analisa potongan program kernel, menentukan apakah

potongan program kernel merupakan coalescing memory atau bukan. 5. Soal Praktikum set 2

5.1. Soal 1: Membuat program untuk melakukan transpose matrik dengan uncoalescing memory, coalescing memory, shared memory dan optimasi thread kemudian membandingkan waktu eksekusinya. Inputan berasal dari text file.

5.2. Soal 2: Analisa potongan program kernel, menentukan apakah potongan program kernel merupakan coalescing memory atau bukan. 6. Set Dosen

6.1. Set Dosen 1. 6.2. Set Dosen 2. 7. Daftar Pustaka.

3.2.8. Pedoman praktikum 7 : Tugas Rancang.

Melalui pedoman praktikum topik 7 diharapkan mahasiswa dapat: • Menerapkan pedoman praktikum dari topik 1 sampai topik 6.

• Membuat aplikasi CUDA untuk menyelesaikan permasalahan yang membutuhkan waktu eksekusi yang lama apabila dikerjakan oleh CPU. • Membandingkan unjuk kerja Nvidia CUDA dengan CPU.

Tugas Rancang yang diberikan adalah menemukan jalur terpendek menggunakan algoritma Floyd-Warshall, mahasiswa akan diberikan algoritma Floyd-Warshall secara sequential kemudian mengubahnya ke algoritma paralel. Selain itu mahasiswa juga membandingkan unjuk kerja Nvidia CUDA dengan CPU dalam memproses data menggunakan algoritma Floyd-Warshall.

Spesifikasi tugas rancang :

1. Algoritma menemukan jalur terpendek menggunakan Floyd-Warshall. 2. Menggunakan shared memory dalam pemrosesan data.

3. Penghitungan waktu eksekusi GPU menggunakan timer CUDA event. 4. Penghitungan waktu eksekusi CPU menggunakan timer dari library ctime. 5. Data dibuat dalam bentuk matrik.

6. Ukuran matrik data minimal 50x50.

7. Transformasi data menggunakan Nvidia CUDA library.

Dokumen terkait