// you’re reading...

GPGPU

Kecepatan Transfer Memori CUDA

Salah satu tahap yang wajib dilakukan ketika membangun program CUDA adalah transfer memori. Untuk program yang berjalan di bawah 1 detik, kecepatan ini penting diperhatikan karena kemungkinan transfer memori memakan sebagian besar (>70%) waktu eksekusi program. Meskipun demikian, transfer memori juga penting untuk data berukuran besar di atas 512 MB. Oleh karena itu, bagaimana mempercepat transfer memori adalah teknik yang wajib dikuasai dalam membangun program CUDA.  Berikut ini adalah 3 tips untuk mempercepat transfer memori dalam program CUDA.

Gunakan Page-locked Memory

Mentransfer page-locked memory dapat mempersingkat kecepatan transfer memori secara signifikan. Pada GPU GeForce 8600M GT, mentransfer 32MB data memakan waktu 300 ms (page-free memory) vs 26 ms (page-locked memory). Dengan kata lain, kecepatan transfer memori meningkat ~14x lipat.

Hal yang perlu diperhatikan adalah menggunakan page-locked memory dapat menurunkan performa sistem. Namun untuk data yang berukuran kecil pada sistem dengan memori besar, sepertinya tidak ada masalah. Bahkan untuk Tesla C1060 dengan memori 4GB, sepertinya tidak ada masalah apabila memori sebesar itu di-page lock pada sistem dengan RAM 16GB.

Untuk melakukan page-lock, gunakan fungsi CudaMallocHost() sebagai ganti malloc() dan CudaFreeHost() sebagai ganti free().

Gunakan GPU yang Lebih Cepat

GPU yang lebih cepat memiliki waktu transfer memori yang lebih singkat pula. Sebagai contoh perbandingan GPU Laptop GeForce 8600M GT dengan GPU Desktop GeForce 8800 GTX dalam mentransfer data sebesar 32MB. Transfer memori host -> device adalah 600 MB/s vs 1,3 GB/s. Transfer memori device -> host adalah 400 MB/s vs 1,3 GB/s. Transfer memori device->device adalah 11 GB/s vs 70 GB/s. Oleh karena itu, apabila mungkin gunakan GPU terbaik yang anda miliki.

Lakukan Transfer Memori Sekali

Sebisa mungkin, lakukan transfer memori sekali saja karena transfer memori itu “boros waktu”. Contohnya, apabila melakukan copy sebuah list dari CPU ke GPU, lebih baik menuliskan elemen listnya dalam sebuah array, lalu melakukan copy satu kali, dibandingkan melakukan copy elemen list berkali-kali.

Demikian pojok CUDA kali ini, happy programming dan jangan lupa koreksinya! ^^

Discussion

No comments for “Kecepatan Transfer Memori CUDA”

Post a comment

Your Ad Here

Most Emailed