Komputasi berbasis Graphics Processing Unit (GPU) pada MATLAB

Admin
0
Graphics Processing Unit (GPU) merupakan sebuah kartu/chip yang dirancang khusus untuk meningkatkan performa aplikasi komputer berbasis grafis. GPU banyak ditemukan pada komputer modern khususnya dalam beberapa tahun terakhir. Sesuai dengan fungsi utamanya, pada awalnya GPU hanya digunakan untuk menjalankan aplikasi yang membutuhkan komputasi grafis yang tinggi seperti perangkat lunak Computer Aided Design (CAD) dan game. Namun, seiring dengan meningkatnya kebutuhan komputasi grafis, perkembangan performa GPU juga semakin pesat. Arsitektur GPU kemudian berevolusi menjadi sebuah multiprosessor yang mampu menjalankan sebuah program secara paralel.
Dilihat dari jumlah intinya, teknologi mikroprosesor pada CPU saat ini baru memiliki 8 core. Sedangkan pada sebuah NVIDIA's Kepler GPU, core yang dimiliki saat ini telah mencapai jumlah hingga 2000-an core. Perbandingan peningkatan performa GPU dan CPU dalam beberapa tahun terakhir ditampilkan pada Gambar 1. Terlihat bahwa pertumbuhan kemampuan GPU jika diukur dengan Floating Point Operations per Second (FLOPS) jauh meninggalkan CPU.
CCl1
Gambar 1. Perbandingan performa GPU terhadap CPU (NVIDIA, 2016)

Keunggulan GPU tersebut memunculkan ide bagi produsen GPU NVIDIA Corp. menghadirkan konsep GPU computing atau disebut juga General Purpose GPU (GPGPU). GPGPU yaitu konsep pemograman paralel yang memanfaatkan  GPU untuk menjalankan serangkaian proses komputasi yang umumnya dikerjakan oleh CPU. Konsep ini mampu menghasilkan akselerasi kecepatan proses komputasi yang jauh lebih baik dibanding kecepatan CPU untuk kasus-kasus tertentu. Karena kelebihan tersebut, saat ini sudah banyak komputasi berbasis GPU yang diaplikasikan pada simulasi matematika, sains, serta sains terapan (keteknikan).
Untuk memulai proses komputasi berbasis GPU pada Matlab, pengguna terlebih dahulu harus menggunakan deklarasi variabel berbasis gpuArray yang mengindikasikan variabel tersebut berada pada memori GPU dan akan dieksekusi menggunakan core GPU.  Berikut contoh sederhana penambahan 2 matriks bilangan random berukuran 3×3 yang dieksekusi menggunakan GPU.

a  = rand(3,3);
b  = rand(3,3);
ga = gpuArray(a);
gb = gpuArray(b);
gc = ga + gb ;


Dari source code di atas akan dihasilkan matriks hasil pertambahan 2 bilangan random yaitu gc yang dieksekusi oleh GPU. Langkah selanjutnya adalah memindahkan gc keluar dari memori GPU menuju memori CPU dengan menggunakan perintah gather.

c = gather(gc);

Post a Comment

0Comments
* Please Don't Spam Here. All the Comments are Reviewed by Admin.
Post a Comment (0)

Disclaimer : Content provided on this page is for general informational purposes only. We make no representation or warranty of any kind, express or implied, regarding the accuracy, adequacy, validity, reliability, availability or completeness of any information.

#buttons=(Accept !) #days=(20)

Our website uses cookies to enhance your experience. Learn More
Accept !
To Top