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