NVIDIA CUDA technology merupakan suatu  lingkup bahasa pemrograman “C” yang membuka akses kekuatan prosesing  dari GPU, untuk memecahkan hampir seluruh tantangan intensif dari  komputasi / perhitungan yang kompleks dari proses GPU tersebut.
Diawali dari seri Geforce 8000 series merupakan GPU yang sudah suport arsitektur CUDA
Arsitektur CUDA memungkinkan GPU (yang telah support CUDA) menjadi arsitektur terbuka seperti layaknya CPU (Central Processing Unit a.k.a Processor). Hanya, tidak seperti CPU, GPU memiliki arsitektur banyak-inti yang pararel.
Diawali dari seri Geforce 8000 series merupakan GPU yang sudah suport arsitektur CUDA
Arsitektur CUDA memungkinkan GPU (yang telah support CUDA) menjadi arsitektur terbuka seperti layaknya CPU (Central Processing Unit a.k.a Processor). Hanya, tidak seperti CPU, GPU memiliki arsitektur banyak-inti yang pararel.
Setiap inti memiliki kemampuan untuk  menjalankan ribuan “thread” secara simultan. Jika aplikasi yang  dijalankan sesuai dengan arsitektur ini, GPU dapat menyediakan  keuntungan yang lebih besar dari segi performa proses aplikasi tersebut.
KEUNGGULAN ARSITEKTUR CUDA:
#CUDA menggunakan bahasa “C” standar, dengan beberapa ekstensi yang simpel.
#Scattered writes (penyebaran penulisan) – kode dapat ditulis pada tujuan-tujuan yang tersebar dalam memori.
#Shared memory – CUDA menyingkapkan wilayah memory yang cepat (berukuran 16 KB) yang dapat di bagi diantara thread-thread yang ada. Hal ini dapat digunakan sebagai user-managed-cache, sehingga mengaktifkan bandwitdth yang lebih besar (dari besaran bandwidth yang dimungkinkan), menggunakan texture loops.
#Proses download dan readbacks yang lebih cepat, dari dan ke GPU.
#Support penuh terhadap operasi integer dan bitwise.
KEUNGGULAN ARSITEKTUR CUDA:
#CUDA menggunakan bahasa “C” standar, dengan beberapa ekstensi yang simpel.
#Scattered writes (penyebaran penulisan) – kode dapat ditulis pada tujuan-tujuan yang tersebar dalam memori.
#Shared memory – CUDA menyingkapkan wilayah memory yang cepat (berukuran 16 KB) yang dapat di bagi diantara thread-thread yang ada. Hal ini dapat digunakan sebagai user-managed-cache, sehingga mengaktifkan bandwitdth yang lebih besar (dari besaran bandwidth yang dimungkinkan), menggunakan texture loops.
#Proses download dan readbacks yang lebih cepat, dari dan ke GPU.
#Support penuh terhadap operasi integer dan bitwise.
Keterbatasan CUDA (terutama di sektor  grafis) adalah; CUDA tidak support texture rendering, Bus Bandwidth dan  latensi antara CPU dengan GPU bisa jadi bottleneck (tidak imbang), serta  CUDA hanya terdapat pada GPU Nvidia.
NVIDIA’s CUDA development tools terbagi atas 3 komponen kunci yaitu:
1. CUDA driver
2. A complete CUDA toolkit
3. CUDA SDK code samples
CUDA Toolkit adalah pengembangan lingkunan bahasa “C” untuk CUDA-enabled GPU. Ruang lingkup pengembangan CUDA termasuk:
NVCC “C” compiler
CUDA FFT and BLAS libraries for the GPU* Profiler* gdb debugger for the GPU
CUDA runtime driver (also available in the standard NVIDIA GPU driver)
CUDA programming manual
NVIDIA’s CUDA development tools terbagi atas 3 komponen kunci yaitu:
1. CUDA driver
2. A complete CUDA toolkit
3. CUDA SDK code samples
CUDA Toolkit adalah pengembangan lingkunan bahasa “C” untuk CUDA-enabled GPU. Ruang lingkup pengembangan CUDA termasuk:
NVCC “C” compiler
CUDA FFT and BLAS libraries for the GPU* Profiler* gdb debugger for the GPU
CUDA runtime driver (also available in the standard NVIDIA GPU driver)
CUDA programming manual
Sedangkan contoh kode CUDA SDK adalah  contoh source code yang dikembangkan oleh para developer CUDA, untuk  menolong kita dalam memulai penggunaan CUDA. Contoh kode CUDA SDK  termasuk:
Parallel bitonic sort
Matrix multiplication
Matrix transpose
Performance profiling using timers
$Parallel prefix sum (scan) of large arrays
$Image convolution
$1D DWT using Haar wavelet
$OpenGL and Direct3D graphics interoperation examples
$CUDA BLAS and FFT library usage examples
$CPU-GPU C- and C++-code integration
$Binomial Option Pricing
$Black-Scholes Option Pricing
$Monte-Carlo Option Pricing
$Parallel Mersenne Twister (random number generation)
$Parallel Histogram
$Image Denoising
$Sobel Edge Detection Filter
Dengan pembahasan di atas, kita dapat  mengetahui bahwa CUDA memang merupakan alat optimasi  GPU untuk performa yang lebih prima. Keduanya murni merupakan software /  alogaritma / source code / dan bukan perangkat keras (hardware  tambahan).
Parallel bitonic sort
Matrix multiplication
Matrix transpose
Performance profiling using timers
$Parallel prefix sum (scan) of large arrays
$Image convolution
$1D DWT using Haar wavelet
$OpenGL and Direct3D graphics interoperation examples
$CUDA BLAS and FFT library usage examples
$CPU-GPU C- and C++-code integration
$Binomial Option Pricing
$Black-Scholes Option Pricing
$Monte-Carlo Option Pricing
$Parallel Mersenne Twister (random number generation)
$Parallel Histogram
$Image Denoising
$Sobel Edge Detection Filter

Tidak ada komentar:
Posting Komentar