Kamis, 03 Desember 2015

PENGANTAR PEMOGRAMAN CUDA GPU

 


GPU (Graphical Processing Unit) adalah sebuah prosesor khusus untuk mempercepat dan mengubah memori, untuk mempercepat pemrosesan gambar. GPU ini biasanya berada di dalam graphic card komputer ataupun laptop.
Sebuah GPU pada awalnya adalah sebuah prosessor yang berfungsi khusus untuk melakukan rendering pada kartu grafik saja, tetapi seiring dengan semakin meningkatnya kebutuhan rendering terutama untuk mendekati waktu proses yang realtime / sebagaimana kenyataan sesungguhnya, maka meningkat pula kemampuan prosesor grafik tersebut. Akselerasi peningkatan teknologi GPU ini lebih cepat daripada peningkatan teknologi prosesor sesungguhnya (CPU) dan akhirnya GPU menjadi general purpose, yang artinya tidak hanya untuk melakukan rendering saja melainkan bisa untuk proses komputasi secara umum.
Penggunaan Multi GPU dapat mempercepat waktu proses dalam mengeksekusi program karena arsitekturnya yang natively parallel. Selain itu, Peningkatan performa yang terjadi tidak hanya berdasarkan kecepatan hardware GPU saja, tetapi faktor yang lebih penting adalah cara membuat kode program yang bisa efektif berjalan pada Multi GPU.



CUDA (Compute Unified Device Architecture) adalah suatu skema yang dibuat oleh NVIDIA agar NVIDIA selaku GPU (Graphic Processing Unit) mampu melakukan komputasi tidak hanya untuk pengolahan grafis namun juga untuk tujuan umum. Dengan adanya CUDA dapat memanfaatkan banyak prosesor dari NVIDIA untuk melakukan proses perhitungan ataupun komputasi yang banyak.
CUDA didefinisikan sebagai sebuah arsitektur komputasi paralel, dikembangkan oleh NVIDIA. Teknologi ini dapat digunakan untuk menjalankan proses pengolahan gambar, video, rendering 3D dan lain sebagainya. VGA-VGA dari NVIDIA yang sudah menggunakan teknologi CUDA antara lain : Nvidia GeForce GTX 280, GTX 260, 9800 GX2, 9800 GTX+, 9800 GTX, 9600 GSO, 9600 GT, 9500 GT, 9400 GT, 9400 mGPU, 9300 mGPU,8800 Ultra, 8800 GTX, 9800 GT, 9800 GT, 9600 GSO, 9600 GT, 8800 GS, 8600 GTS, 8600 GT, 8400 GS, 8300 mGPU, 8200 mGPU, 8100 mGPU dan seeri sejenis untuk kelas mobile (VGA notebook).
Singkatnya CUDA dapat memberikan proses dengan pendekatan bahasa C, sehingga programer atau pengembang software dapat lebih cepat menyelesaikan perhitungan yang komplek. Bukan hanya aplikasi seperti teknologi ilmu pengetahuan yang spesifik. CUDA bisa dimanfaatkan untuk aplikasi multimedia. Misalnya mengedit film dan melakukan filter gambar. Sebagai contoh dengan aplikasi multimedia, sudah menggunakan teknoogi CUDA. Software TMPGenc 4.0 misalnya membuat aplikasi editing dengan mengambil sebagian proses dari GPU dan CPU. VGA yang dapat memanfaatkan CUDA hanya versi 8000 atau lebih tinggi.  
Platform CUDA dapat diakses oleh pengembang perangkat lunak melalui library CUDA - accelerated, perintah kompiler (seperti OpenACC) dan ekstensi untuk bahasa pemograman standar industri, termasuk C, C++ dan Fotran. C/C++ programer menggunakan CUDA C/C++, yang disusun dengan "nvcc", NVIDIA LLVM berbasis C/C++ compiler dan Fotran programer dapat menggunakan "CUDA Fotran" , yang disusun dengan PGI CUDA Fotran compiler dari The Portland Grup. Selain library, arahan compiler, CUDA C/C++ dan CUDA Fotran , platform CUDA mendukung intrface komputasi lainnya, termasuk Khronos Grup's OpenCL, Microsoft Direct Compute dan C++ AMP. Pemograman pihak ketiga juga tersedia untuk Phyton, Perl, Fortran, Java, Ruby, Lua, Haskell, Matlab, IDL dan dukungan asli di Mathematica. 
Dalam pemakaian komputer industri, GPU yang digunakan tidak hanya untuk rendering grafis tetapi juga dalam perhitungan fisika permainan (efek fisik seperti puing-puing, asap, api, cairan) contoh termasuk PhysX dan Bullet. CUDA juga telah digunakan untuk mempercepat aplikasi non grafis dalam bidang komputasi, kriptografi dan bidang lainnya oleh urutan besarnya atau lebih.

CUDA memiliki beberapa keunggulan dibandingkan tradisional perhitungan tujuan umum pada GPU (GPGPU) menggunakan API Grafis.
  • Tersebaar membaca kode dapat membaca dari alamat sewenang-wenang dalam memori.
  • Memori bersama CUDA memperlihatkan cepat memori bersama wilayah (sampai 48 KB per Multi Prosesor) yang dapat ddibagi antara benang. Ini dapat digunakan sebagai cache dikelola pengguna, memungkinkan Bandwidth yang lebih tinggi daripada yang mungkin menggunakan pencairan tekstur. 
  • Download lebiih cepat dan readbacks ke dan dari GPU.
  • Dukungan penuh untuk integer dan bitwise operasi, termasuk pencairan tekstur bulat.
sumber :

http://uchaaii.blogspot.co.id/2013/07/parallel-computation.html     

http://myblogisland.blogspot.co.id/2013/04/parallel-computation.html 


      

Tidak ada komentar:

Posting Komentar