PengantarPemrograman CUDA GPU
Graphics
Processing Unit merupakan prosesor yang didedikasikan untuk render cepat dalam
pemrosesan polygon baik itu texturing dan shading. Terdiri atas banyak core
namun masih menggunakan arsitektur yang sederhana, sehingga harganya relative
murah dan di produksi secara missal untuk berbagai keperluan misalnya
peneilitian/ilmuah.
CUDA,
Compute Unified Device Architecture merupakan suatu framework dari bahasa pemrograman
yang mendukung bahas C language, dimana mampu berkomunikasi langsung dengan GPU
dan sangat mudah bekerjasama untuk segala multi-threading parallel execution hampir diseluruh prosesor
pada GPU. CUDA menggukan konsep nvcc sebagai ORM dalam object programmingnya.
CUDA merupakan produk dari NVIDIA sebagai produsen graphic komputer ternama.
Platform
CUDA dapat diakses oleh pengembang perangkat lunak melalui library
CUDA-accelerated , perintah kompiler (seperti OpenACC ), dan ekstensi untuk
bahasa pemrograman standar industri, termasuk C, C++ dan Fortran . C / C++
programmer menggunakan CUDA C / C + +, yang disusun dengan "nvcc",
NVIDIA LLVM berbasis C / C++ compiler, dan Fortran programmer dapat menggunakan
'CUDA Fortran', yang disusun dengan PGI CUDA Fortran compiler dari The Portland
Grup. Selain library, arahan compiler, CUDA C / C++ dan CUDA Fortran, platform
CUDA mendukung interface komputasi lainnya, termasuk Khronos Grup 's OpenCL ,
Microsoft DirectCompute , dan C++ AMP . Pemrograman pihak ketiga juga tersedia
untuk Python , Perl , Fortran , Java , Ruby , Lua , Haskell, Matlab , IDL , dan
dukungan asli di Mathematica.
Dalam
permainan 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 biologi komputasi ,
kriptografi dan bidang lainnya oleh urutan besarnya atau lebih.
§ GPU can't directly access main memory§ CPU can't directly access GPU memory§ Need to explicitly copy data§ No printf
CUDA
memiliki beberapa keunggulan dibandingkan tradisional perhitungan tujuan umum
pada GPU (GPGPU) menggunakan API grafis:
§ Tersebar membaca - kode dapat membaca dari alamat sewenang-wenang dalam memori.§ Memori bersama - CUDA memperlihatkan cepat memori bersama wilayah (sampai 48KB per Multi-Processor) yang dapat dibagi di antara benang. Ini dapat digunakan sebagai cache dikelola pengguna, memungkinkan bandwidth yang lebih tinggi daripada yang mungkin menggunakan pencarian tekstur.§ Download lebih cepat dan readbacks ke dan dari GPU.Dukungan penuh untuk integer dan bitwise operasi, termasuk pencarian tekstur bulat.