NVIDIA GPU-CUDA dan Komputansi Paralel

Posted: April 2, 2011 in Uncategorized

# NVIDIA GPU-CUDA

NVIDIA Corporation adalah sebuah perusahaan produsen prosesor grafis (graphics processing unit), kartu grafis, dan media dan alat-alat komunikasi untuk komputer pribadi, dan konsol permainan Sony Playstation 3. Produk paling terkenal dari NVIDIA adalah seri GeForce yang digunakan untuk bermain permainan komputer. Markas utama NVIDIA berada di Jalan Bebas Hambatan San Tomas, Santa Clara, California. Seri terbaru NVIDIA adalah GeForce GTX 280 yang telah menggunakan directX versi 10

#GPU-CUDA

GPU (Graphic Processing Unit) sendiri merupakan sebuah alat/hardware, yang berfungsi sebagai render grafis terdedikasi dalam kesatuan sistem hardware PC atau Notebook. GPU bisa berada pada Video Card khusus (VGA Card) atau terintegrasi dalam Motherboard berupa Integrated GPU. GPU berfungsi untuk mengolah dan memanipulasi grafis pada CPU (Central Processing Unit), untuk nantinya ditampilkan dalam bentuk Visual Grafis pada Monitor (output).

CUDA (Computer-Unified-Device-Architecture) adalah arsitektur komputasi paralel yang dikembangkan oleh NVIDIA. CUDA adalah mesin komputasi dalam pemrosesan grafis NVIDIA unit (GPU) yang dapat diakses oleh pengembang perangkat lunak melalui varian dari bahasa pemrograman standar industri. CUDA merupakan kumpulan program-program yang menerjemahkan teks dalam bentuk bahasa komputer (computer language) berupa source language/source code, ke dalam bentuk bahasa komputer yang lain (target language/object code). 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.

Berikut adalah spesifikasinya:

  • CUDA Developer(s) NVIDIA Corporation
  • Stable release 3.2 September 17, 2010; 5 months ago (2010-09-17)
  • Operating system Windows (7, Vista, XP, Server 2008, & Server 2003), Linux, Mac OS X
  • Type GPGPU
  • License Proprietary, Freeware

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.

#Komputasi Paralel

Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. Biasanya komputasi parallel ini diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar ataupun karena tuntutan proses komputasi yang banyak. Untuk melakukan aneka jenis komputasi paralel ini maka diperlukanlah infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. Untuk itu diperlukan aneka perangkat lunak pendukung yang biasa disebut sebagai middleware yang berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai harus membuat pemrograman parallel untuk merealisasikan komputasi.

Sumber :

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s