INTERAKSI
MANUSIA & KOMPUTER
NVIDIA
CUDA
Muhammad
Darmawan
24112910
2KB01
SISTEM
KOMPUTER
FAKULTAS
ILMU KOMPUTER & TEKNOLOGI INFORMASI
UNIVERSITAS
GUNADARMA
2014
Kata
pengantar
Puji syukur saya panjatkan kehadirat Allah swt,
Karena atas izin dan kehendak-NYA makalah NVIDIA CUDA ini dapat saya selesaikan
tepat pada waktunya.
Dalam penyusunan makalah ini, penulis banyak mendapat tantangan dan
hambatan akan tetapi dengan bantuan dari berbagai pihak tantangan itu bisa
teratasi. Oleh karena itu, penulis mengucapkan terima kasih yang sebesar -
besarnya kepada semua pihak yang telah membantu dalam penyusunan makalah ini.
Terutama kepada dosen pembimbing saya Bapak Mohammad Iqbal, Skom, MMSI.
Penulis menyadari bahwa makalah ini masih jauh dari kesempurnaan baik dari
bentuk penyusunan maupun materinya. Kritikan yang bersifat membangun dari
pembaca sangat penulis harapkan untuk penyempurnaan makalah selanjutnya.
Akhir kata semoga makalah ini dapat memberikan manfaat kepada kita semua.
Sekian dan terimakasih.
Jakarta, April 2014
DAFTAR
ISI
KATA PENGANTAR ............................................................................................. i
DAFTAR ISI
...........................................................................................................
ii
BAB I : PENDAHULUAN ......................................................................................
1
1.1 Latar Belakang Masalah
.............................................................................. 1
1.2 Rumusan Masalah
........................................................................................
1
1.3 Tujuan
.........................................................................................................
1
1.4 Kegunaan
.....................................................................................................
2
1.5 Metode Penulisan
.......................................................................................
2
BAB II : PEMBAHASAN
........................................................................................
3
2.1 Apa itu NVIDIA CUDA...............................................................................
3
2.2 Sejarah NVIDIA CUDA............................................................................ .... 6
2.3 Cara Kerja NVIDIA CUDA.......................................................................
7
2.4 Keunggulan NVIDIA CUDA.....................................................................
8
2.5 Seri GPU NVIDIA yang Menggunakan
Teknologi CUDA......................... 9
BAB III : PENUTUP
.............................................................................................
10
3.1 Kesimpulan
................................................................................................
10
3.2 Saran
.......................................................................................................... 10
DAFTAR PUSTAKA
...........................................................................................
iii
PENDAHULUAN
1.1 Latar Belakang Masalah
Belakangan istilah
CUDA populer untuk menjalankan proses pengolahan gambar, video,
rendering 3D, dan lain sebagainya. Sebenarnya
apa sih CUDA itu? CUDA adalah sebuah teknologi yang dikembangkan oleh NVIDIA
untuk mempermudah utilitasi GPU untuk keperluan umum (non-grafis). Arsitektur
CUDA ini memungkinkan pengembang perangkat lunak untuk membuat program yang
berjalan pada GPU buatan NVIDIA dengan syntax yang mirip dengan syntax C yang
sudah banyak dikenal. Akibatnya, sekarang para developer dapat memanfaatkan
kemampuan prosesing GPU untuk mengakselerasi komputasi program mereka dengan
jauhh lebih mudah.
1.2 Rumusan Masalah
Rumusan masalah dari makalah CUDA adalah :
1.
Apa itu NVIDIA CUDA?
2.
Bagaimana Sejarah dan Bagaimana Cara Kerja NVIDIA CUDA?
3.
Apa saja keunggulan NVIDIA CUDA?
1.3 Tujuan
Tujuan penulisan makalah NVIDIA CUDA adalah :
1.
Kita mengetahui apa itu NVIDIA CUDA.
2.
Kita dapat mengetahui sejarah dari NVIDIA CUDA.
3.
Kita dapat mengetahui cara kerja NVIDIA CUDA.
4.
Kita dapat mengetahui keunggulan NVIDIA CUDA.
1.4 Kegunaan
Makalah ini dibuat untuk menjadi tambahan media
pembelajaran serta pengetahuan bagi masyarakat umumnya, khususnya untuk
mahasiswa yang berada pada jurusan yang berhubungan dengan komputer dan
mahasiswa yang suka bermain game dengan kualitas yang memuaskan. Makalah ini
berisi tentang NVIDIA CUDA mulai dari pengertian NVIDIA CUDA sampai dengan
keunggulan-keunggulan NVIDIA CUDA.
1.5 Metode Penulisan
Dalam penulisan makalah tentang NVIDIA CUDA menggunakan
metode kepustakaan dengan literatur-literatur yang kami dapat dengan tambahan
bahan-bahan dari internet jadi apabila terdapat kesamaan dengan source yang
tertulis pada daftar pustaka mohon dimaklumi.
BAB II PEMBAHASAN
2.1 Apa itu NVIDIA CUDA?
NVIDIA
NVIDIA Corporation (NASDAQ: NVDA) 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. Perusahaan saingan terberat NVIDIA adalah ATI
yang mengeluarkan seri Radeon. Pada 2001, perusahaan ini meraih pemasukan
AS$1,37 milyar dan pendapatan bersih AS$177,1 juta.
Sejarah dan Perkembangan Nvidia sebagai Produsen VGA CARD
Berdirinya nvidia
pada tahun 1993 yang di gagas oleh beberapa pendirinya , antara lain adalah jen
hsung huang ( CEO nvidia yang sekarang ) , Curtis Priem dan Chris malachowsky,
ide nama nvidia
sebagai nama perusahaan digagas dari kombinasi antara huruf inisial n sebagai
variabel dalam matematika – dan kata video berasal dari bahasa latin yang
artinya melihat hingga akhirnya nama tersebut memiliki makna “pengalaman visual
terbaik” Namun dalam publikasi dan dokumentasi perusahaan , nama nvidia lebih
sering ditulis dalam huruf kapital NVIDIA
Berikut sejarah
produksi grafis nvidia dari tahun ke tahun :
1. NVIDIA NV1
Dirilis pada pada zaman PC 486 atau sekitar tahun 1995, dan
bukan merupakan kartu grafis murni, karena NV1 mempunyai integrated soundcard,
jadi lebih bisa disebut sebagai kartu multimedia dari pada kartu grafis murni.
Walaupun sudah bisa memainkan game 3d namun pilihan game yang saat itu sangat
sangat terbatas sehingga menjadikan kartu ini sedikit mubazir.
2. NVIDIA RIVA
lebih dikenal sebagai Riva 128 dirilis pada akhir 1997 ,
mempunyai 3,5 juta transistor dan berbeda dengan NV1 yang tidak mendukung
direct 3D Riva 128 mendukung penuh direct3D 5 dan OpenGL API, selain itu kemampuan
untuk menampilkan kualitas 2D sangat baik untuk saat itu.
3.NVIDIA RIVA TNT 1
& 2
RIVA merupakan kepanjangan dari Realtime interactive Video and
Animation Accelarator dan TNT adalah singkatan dari Twin Texel, TNT pertama
kali dirilis pada tahun pada akhir tahun 1998. TNT2 pada awal 1999, keduanya
sebenrnya sangat mirip baik dari kecepatan dan fitur yang di tawarkan, namun
TNT mempunyai sedikit perbedaan yaitu telah mendukung AGP4x, mendukung memory
hingga 32MB, dan proses produksinya sudah 25PM. Persaingan kartu grafis ini
adalah dengan 3DFX VooDoo 2 dan 3 , matroxG400 dan Ati rage 128 . TNT RIVA
merupakan kartu grafis pertama yang 100% diciptakan oleh nvidia corporation
4.NVIDIA GEFORCE 256
Bagi nvidia kartu ini merupakan pembuka dari semua seri
Geforce yang akan muncul selanjutnya, memiliki TMU ( Texture Map Unit ) untuk
tiap 4 Pixel pipelines-nya menjadikan arsitektur kartu grafis ini 100% perbeda
dengan seri RIVA TNT, CORE gpu kartu Grafis ini membawa kecepatan 120 MHZ dan
pada seri2 selanjutnya geforce 256 yang membawa memory DDR.
5. NVIDIA GEFORCE 2
SERIES
Geforces 2 dirilis dengan dua varian yang berbeda, GTS dan dan
MX. GTS merupakan kasta tertinggi untuk gerforce 2 dan MX merupakan versi value
nya. Seiring berjalannya waktu MX justru mendominasi penjualan untuk kartu GE
force2 mengingat banyak nya OEM yang menggunakan jartu grafis ini sebagai
sebagai bundle untuk PC buatan mereka, tidak ada banyak perbedaan selain
pengurangan kecepatan core dan memory, keduanya indentik sama. dan dengan sedikit
perbedaan dan sedikit melakukan Overcloking pada GF2MX bisa menyamani GEforce
GTS.
6. NVIDIA GEFORCE 3 SERIES
Geforce 3 merupakan salah satu kartu grais nvidia dengan masa
hidup yang pendek, keluar pertama kali hanya versi standar saja, kemudian disusul
dengan kemunculan dua carian Ti Ti200 dan Ti 500. Kartu ini menghadapi kendala
yang sangat pelik ketika karena ketiganya bukanlah kelas value melainkan kelas
enthusiast semua, dengan tidak menghadirkan kelas value, maka card ini pun
sangat kalah bersaing dengan radeon versi 8500.
7. NVIDIA GEFORCE 4
SERIES
NVIDIA geforce 4 ini juga merupakan salah satu seri tersukses
dari semua Geforce yang ada. Membawa dua varian untuk dua pangsa pasar yang
berbeda menjadikan card ini mempunyai pilihan bagi jenis konsumen, kalangan
enthusiast mendapatkan versi Ti dan kalangan yang mementingkan budget
mendapatkan versi MX, seperti layaknya kartu sukses, Geforce 4 mempunyai jenis
kartu yang cukup laris manis di pasaran, MX440 dan Ti 4200.
8. NVIDIA GEFORCE FX
series
Karena ingin terburu2 ingin menyaingi aTi radeon 9700 series,
Nvidia kemudian menelurkan kartu grafis yang munkin umurnya paling pendek dalam
sejarah nvidia, kini varian High-end dan konsumen tidak lagi berbagi atas versi
Ti dan MX namun angka kedua dari 4digit yang ada menandakan pangsa pasarnya.
Kegagalan seri ini adalah letak bus widht interface ( BIT ) yang masih
menggunakan 128 – bit sedangkan ATI sudah beralih ke 256 BIT yang memungkinkan
mengolah grafis dalam resolusi besar. hal ini lah yang membuat kartu ini gagal
total bersaing dengan ati 9700, apalagi kalau di test pixel shadernya , akan
sangat terlihat bahwa katru grafis ini memang bukan tandingan langsung radeon
9700 dari segi apapun juga.
9. GEFORCE 6
SERIES Terlahir dengan GPU code name NV40 , seakan ingin
menjawab semua tantangan ATI kartu grafis ini memberikan semua yang bisa tidak
bisa diberikan oleh seri FX. Pembenahan arsitektur mandasar, implementasi
Vertex Shader 3.0 dan Pixel Shader 3.0 yang hanya bisa berjalan di directx 9.0c
sudah terdapat dikartu grafis ati. akhirnya kalang kabut juga karena kartu ini
benar – benar melebihi ekspektasi pihak nvidia dengan menghadirkan sejumlah
power baru untuk menyaingi x800 milik ati, inilah pukulan balik nvidia terhadap
ati.
10. GEFORCE 7 SERIES
nvidia semakin di atas angin dengan menghadirkan Geforce seri
7, karena saat itu Ati belum bisa mengejar kinerja Nvidia saat mereka terkena
pukulan telak oleh nvidia dengan seri 6. Sebagai flagship pertama nya 7800
kemudian ati merilis seri X1800XT dan lahir 7900 dari nvidia, dan disaingi oleh
X1950XTX, dan senjata pamungkas ketika itu, nvidia merilis 7950×2 yang
membungkam semua kartu grafis yang dimiliki Ati… dan seri 7 ini merupakan salah
satu seri tersukses dari nvidia karena tersedia dari kelas high end hingga
value dan semua nya bekerja optimal.
11. GEFORCE 8 SERIES
Geforce 8 series merupakan seri paling fenomenal ketika itu,
karena Nvidia membuat seri atas seperti 8800GTX dan 8800Ultra dengan harga yang
selangit, hampir menyamai suzuki shogun saya ketika itu seri ini pun sangat
berjaya karena ati dengan mengeluarkan seri 2xxx kurang sukses karena selalu
bermasalah denga kompatibiltas driver. Nvidia 8000 series menjadi seri paling
pamungkas dengan menghadirkan 8800GTX, 8800GTS, dan 8800Ultra, kartu grafis
seri ini pun pertama kali nya seri nvidia menggunakan aplikasi DX10 untuk
windows vista.
CUDA
CUDA (Compute
Arsitektur Unified Device) adalah komputasi paralel Platform dan model
pemrograman yang diciptakan oleh NVIDIA dan dilaksanakan oleh unit pengolahan grafis (GPU) yang mereka
hasilkan. CUDA memberikan pengembang program akses langsung ke virtual set instruksi dan memori elemen komputasi
paralel dalam CUDA GPU. Menggunakan CUDA,
GPU dapat digunakan untuk pengolahan tujuan umum (yaitu, tidak eksklusif
grafis); Pendekatan ini dikenal sebagai GPGPU . Tidak seperti CPU, bagaimanapun,
GPU memiliki arsitektur throughput yang paralel yang menekankan mengeksekusi
banyak benang bersamaan perlahan, daripada mengeksekusi thread tunggal sangat
cepat. Platform CUDA dapat diakses oleh
pengembang perangkat lunak melalui perpustakaan CUDA-accelerated, arahan compiler (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, [2] dan Fortran pemrogram dapat menggunakan 'CUDA
Fortran', dikompilasi dengan compiler PGI CUDA Fortran dari The Portland kelompok.
Selain perpustakaan, arahan compiler, CUDA C / C + +
dan CUDA Fortran, platform CUDA mendukung antarmuka komputasi lainnya, termasuk
Khronos Grup 's OpenCL , Microsoft DirectCompute , dan C + + AMP . [4] pembungkus 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 render 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. CUDA menyediakan
baik tingkat rendah API dan tingkat yang lebih tinggi API. Awal
CUDA SDK dibuat publik pada tanggal 15 Februari
2007, untuk Microsoft Windows dan Linux . Mac OS X dukungan kemudian ditambahkan di versi 2.0, yang
menggantikan beta dirilis 14 Februari 2008. CUDA bekerja dengan semua Nvidia
GPU dari seri G8x seterusnya, termasuk GeForce , Quadro dan Tesla line. CUDA
kompatibel dengan sebagian besar sistem operasi standar. Nvidia
menyatakan bahwa program yang dikembangkan untuk seri G8x juga akan bekerja
tanpa modifikasi pada semua video card Nvidia masa depan, karena kompatibilitas
biner.
2.2 Sejarah
NVIDIA CUDA
NVIDIA CUDA Peluncuran 5
NVIDIA hari ini membuat NVIDIA CUDA tersedia 5 rilis produksi,
versi baru yang kuat dari platform komputasi paralel paling luas di dunia dan
model pemrograman untuk mempercepat aplikasi ilmiah dan rekayasa pada GPU. Hal
ini dapat didownload secara gratis dari situs Zone NVIDIA Developer. Dengan
lebih dari 1,5 juta download, mendukung lebih dari 180 rekayasa terkemuka,
aplikasi ilmiah dan komersial, model pemrograman CUDA adalah cara yang paling
populer bagi para pengembang untuk mengambil keuntungan dari komputasi
GPU-accelerated.
Bangunan pada keberhasilan ini, fitur pemrograman baru dari 5
Platform CUDA membuat pengembangan aplikasi GPU-accelerated lebih cepat dan
lebih mudah dari sebelumnya, termasuk dukungan untuk paralelisme dinamis,
perpustakaan GPU-callable, NVIDIA GPUDirect dukungan teknologi untuk RDMA
(akses memori langsung jarak jauh ) dan NVIDIA Nsight Eclipse Edition
lingkungan pengembangan terpadu (IDE)
Penghargaan pengembang untuk CUDA 5
Pengembang yang dievaluasi versi pre-release dari CUDA 5 telah
melaporkan sering dramatis percepatan aplikasi dan meningkatkan
programabilitas. Industri pertahanan dan kedirgantaraan menyadari manfaat dari
akselerasi GPU CUDA untuk pengolahan gambar, data video dan sensor, seperti
radar. Menurut Dustin Franklin, aplikasi GPGPU insinyur di GE Cerdas Platform
di Charlottesville, Va, “CUDA 5 adalah teknologi penting bagi kami. Banyak
aplikasi yang kami gunakan melibatkan data streaming sensor langsung ke GPU
dengan latency rendah, sehingga GPUDirect dukungan untuk RDMA pada baru Kepler
GPU adalah sangat penting bagi pelanggan kami. kami memiliki dukungan
terintegrasi untuk banyak sensor kustom sudah dan sangat senang dengan
hasilnya. “
Guillaume Belz, seorang ahli biokimia penelitian di Lyon
University Hospital di Lyon, Prancis, telah menggunakan paralelisme dinamis dan
perpustakaan GPU-callable untuk analisis sinyal kompleks dan data mining.
“Dengan akselerasi GPU, kita bisa mendapatkan hasil dalam beberapa jam untuk
proyek-proyek yang digunakan untuk meminta minggu atau bahkan berbulan-bulan
dengan CPU saja. Tanpa akselerasi GPU, analisis tidak mungkin sama sekali,”
kata Belz.
Weihua (Wayne) Sun, Ph.D. kandidat dalam ilmu pencitraan di
Rochester Institute of Technology di New York, terkesan dengan NVIDIA Nsight
Eclipse Edition. “Ketika saya belajar bahwa CUDA 5 termasuk baru Nsight Eclipse
IDE Edition, aku tahu aku membutuhkannya segera. Memiliki semua program saya,
debugging dan optimasi alat dalam satu lingkungan pengembangan terpadu adalah
meningkatkan produktivitas yang besar bagi saya.”
Fitur terbaru CUDA 5
CUDA 5 memungkinkan pengembang untuk mengambil keuntungan
penuh dari kinerja GPU NVIDIA, termasuk akselerator GPU didasarkan pada NVIDIA
Kepler menghitung arsitektur – tercepat, paling efisien, arsitektur komputasi
kinerja tertinggi yang pernah dibangun. Fitur utama meliputi:
. Dinamis Paralelisme – Membawa akselerasi GPU untuk algoritma baru. Benang GPU secara dinamis dapat menelurkan thread baru, yang memungkinkan GPU untuk beradaptasi dengan data. Dengan meminimalkan bolak-balik dengan CPU, paralelisme dinamis sangat menyederhanakan pemrograman paralel. Dan itu memungkinkan akselerasi GPU dari satu set yang lebih luas dari algoritma populer, seperti yang digunakan dalam perbaikan mesh adaptif dan dinamika fluida komputasi aplikasi.
. Dinamis Paralelisme – Membawa akselerasi GPU untuk algoritma baru. Benang GPU secara dinamis dapat menelurkan thread baru, yang memungkinkan GPU untuk beradaptasi dengan data. Dengan meminimalkan bolak-balik dengan CPU, paralelisme dinamis sangat menyederhanakan pemrograman paralel. Dan itu memungkinkan akselerasi GPU dari satu set yang lebih luas dari algoritma populer, seperti yang digunakan dalam perbaikan mesh adaptif dan dinamika fluida komputasi aplikasi.
. Perpustakaan GPU-Callable – Memungkinkan ekosistem
pihak ketiga. Sebuah baru CUDA BLAS library memungkinkan pengembang untuk
menggunakan paralelisme dinamis untuk sendiri perpustakaan GPU-callable mereka.
Mereka dapat merancang plug-in API yang memungkinkan pengembang lain untuk
memperluas fungsionalitas dari kernel mereka, dan memungkinkan mereka untuk
mengimplementasikan callback pada GPU untuk menyesuaikan fungsi pihak ketiga
perpustakaan GPU-callable. The “objek yang menghubungkan” kemampuan menyediakan
proses yang efisien dan akrab untuk mengembangkan aplikasi GPU besar dengan
memungkinkan pengembang untuk mengkompilasi beberapa file sumber CUDA ke file
objek yang terpisah, dan menghubungkan mereka ke dalam aplikasi yang lebih
besar dan perpustakaan.
• GPUDirect Dukungan untuk RDMA – sistem kemacetan memori Meminimalkan. GPUDirect teknologi memungkinkan komunikasi langsung antara GPU dan perangkat PCI-E lainnya, dan mendukung akses memori langsung antara kartu antarmuka jaringan dan GPU. Hal ini juga secara signifikan mengurangi latency MPISendRecv antara node GPU dalam sebuah cluster dan meningkatkan kinerja aplikasi secara keseluruhan.
• GPUDirect Dukungan untuk RDMA – sistem kemacetan memori Meminimalkan. GPUDirect teknologi memungkinkan komunikasi langsung antara GPU dan perangkat PCI-E lainnya, dan mendukung akses memori langsung antara kartu antarmuka jaringan dan GPU. Hal ini juga secara signifikan mengurangi latency MPISendRecv antara node GPU dalam sebuah cluster dan meningkatkan kinerja aplikasi secara keseluruhan.
NVIDIA Nsight Eclipse Edition – Hasilkan kode CUDA dengan
cepat dan mudah.
NVIDIA Nsight Eclipse Edition memungkinkan programmer untuk
mengembangkan, debug dan aplikasi GPU profil dalam IDE berbasis Eclipse akrab
di Linux dan Mac OS X platform. Sebuah CUDA terintegrasi Editor dan sampel CUDA
mempercepat generasi CUDA kode, dan refactoring kode otomatis memudahkan
porting CPU loop untuk CUDA kernel. Sebuah sistem analisis pakar terintegrasi
menyediakan analisis kinerja otomatis dan panduan langkah-demi-langkah untuk
memperbaiki hambatan kinerja dalam kode, sedangkan sintaks memudahkan untuk
membedakan kode GPU dari kode CPU.
2.3 Cara Kerja NVIDIA CUDA
CUDA adalah sebuah
teknologi yang dikembangkan oleh NVIDIA untuk mempermudah utilitasi GPU untuk
keperluan umum (non-grafis). Arsitektur CUDA ini memungkinkan pengembang
perangkat lunak untuk membuat program yang berjalan pada GPU buatan NVIDIA
dengan syntax yang mirip dengan syntax C yang sudah banyak dikenal. Akibatnya,
sekarang para developer dapat memanfaatkan kemampuan prosesing GPU untuk
mengakselerasi komputasi program mereka dengan jaaauuuuh lebih mudah.
Lalu apa manfaatnya
susah-susah menggunakan GPU untuk menjalankan program? Begini, berbeda dengan
CPU yang harus siap untuk menjalankan berbagai instruksi program, GPU didesain
khusus untuk menghitung dan menyajikan pixel-pixel gambar yang akan
ditampilkan. Karena satu pixel tidak berhubungan dengan pixel yang lain, GPU dirancang
untuk melakukan banyak operasi secara paralel. Nah, kemampuan eksekusi paralel
secara masif inilah yang kemudian dapat dimanfaatkan dengan CUDA.
Pemorgraman CUDA sama seperti membuat program C biasa. Saat kompilasi, syntax2 C biasa akan diproses oleh compiler C, sedangkan syntax dengan keyword CUDA akan diproses oleh compiler CUDA (nvcc)
Bagaimana bagi
pengguna biasa, apakah ada manfaat yang bisa didapat dari membeli hardware
berteknologi CUDA. Hmm, saat ini sudah mulai banyak software yang mendukung
akselerasi dengan CUDA. Misalnya MATLAB dan beberapa plugin dari Adobe Photoshop
CS5. Bila perangkat lunak ini mendeteksi adanya hardware yang kompatibel dengan
CUDA, maka beberapa proses komputasinya akan dilaksanakan oleh GPU. Walhasil,
program akan dapat dieksekusi dengan lebih cepat. Review di
tomshardware ini contohnya, menampilkan pengurangan waktu eksekusi
yang mengesankan dari plugin Photoshop untuk manipulasi gambar.
Seperti telah
disebutkan, CUDA memungkinkan programmer untuk mengeksekusi program pada GPU. Tentu
saja, program – program yang akan mendapat akselerasi adalah program-program
yang dapat dipecah menjadi banyak eksekusi paralel. Untungnya, buanyak
komputasi saintifik masuk pada kategori tersebut. Beberapa aplikasinya antara
lain Computational Fluid
Dynamics (CFD), Molecular Dynamics, Seismic Simulation, Simulasi
Finansial dan Saham, Image
Processingdan Video
Processing
Secara bisnis ini
adalah ide yang luar biasa. Pengembangan hardware GPU telah mendapat “subsidi” dari
industri gaming dan
hasilnya sekarang dapat digunakan untuk aplikasi yang lebih, ahem, “berguna”.
Tidak heran saat ini teknologi CUDA telah merevolusi dunia High Performance
Computing.
Penjumlahan Matriks dengan CUDA
Langkah-langkah yang perlu dilakukan untuk melakukan operasi matematik dengan CUDA adalah:1. Deklarasikan kernel
2. Pindahkan data yang diperlukan ke memori GPU
3. Tentukan parameter kernel
4. Eksekusi kernel
5. Pindahkan lagi data hasil komputasi ke host
Untuk lebih memudahkan saya menyediakan contoh program untuk menjumlahkan dua buah matriks A dan B
1.Deklarasi Kernel
Seperti telah
disebutkan dalam tutorial
tentang prinsip kernel, kernel CUDA didefinisikan dengan
syntax
__global__
.
Perhatikan bahwa dalam kernel tidak terdapat loop untuk menjumlahkan elemen
matriks satu demi satu. Ini mendemonstrasikan eksekusi parallel threads-threads
dalam menghitung elemen array secara bersamaan.
2.Penyalinan Data
dari Host ke GPU
Proses penyalinan
data yang melibatkan transfer dari host ke GPU atau sebaliknya ditangani CUDA
dengan syntax
3. Parameter KernelcudaMemcpy
.Kernel pada tutorial ini dieksekusi oleh satu block. Block tersebut mempunyai threads sebanyak elemen yang ada pada matriks. Tentu saja parameter ini hanya akan bekerja bila jumlah elemen matriks tidak melebihin jumlah maksimum threads yang boleh ada pada satu block.
4. Eksekusi Kernel
Panggil kernel dengan parameter yang telah ditentukan dan pass data ke kernel.
5. Ambil Hasil
Pindahkan hasil dari
GPU ke host, masih dengan
6. Bebaskan pointercudaMemcpy
.
Selain untuk menyalin data dari GPU ke host dan sebaliknya, syntax ini juga
dapat digunakan untuk menyalin dari memori GPU ke memori GPU dengan parameter
akhirnya diganti menjadi cudaMemcpyDeviceToDevice
Membebaskan pointer ke memori GPU dilakukan dengan syntax
cudaFree(pointer)
Menjalankan Fungsi pada GPU: kernel CUDA
CUDA menyediakan
ekstensi pada bahasa C berupa fungsi yang ditandai tag khusus:
Bila membaca keyword
__global__
Bila membaca keyword
__global__
,
CPU akan menjalankan fungsi tersebut di dalam GPU. Setelah memulai eksekusi
pada GPU, program akan segera mengeksekusi perintah berikutnya, tidak harus
menunggu eksekusi GPU selesai. Hal ini memungkinkan pemrogram untuk menjalankan
komputasi secara paralel antara CPU dan GPU.
Selain dengan
keyword
__global__
,
kernel juga dapat dideklarasikan dengan keyword __device__
. Bedanya, kernel __device__
ini
hanya dapat dipanggil oleh kernel yang lain, alias oleh fungsi yang sudah
berjalan pada GPU. Kernel CUDA, baik yang didefinisikan dengan keyword __global__
maupun__device__
,
mempunyai kelemahan: ia tak dapat dieksekusi secara rekursif. Artinya, suatu
kernel tidak dapat memanggil dirinya sendiri. Kernel CUDA juga tak dapat
memanggil fungsi selain kernel CUDA yang lain. Ini berarti fungsi host (CPU)
tidak dapat dipanggil dari kernel (GPU).
2.4 Keunggulan NVIDIA CUDA
1. CUDA menggunakan bahasa “C”
standar, dengan beberapa ekstensi yang simpel.
2. Scattered writes (penyebaran
penulisan) – kode dapat ditulis pada tujuan-tujuan yang tersebar dalam memori.
3.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.
4. Proses download dan readbacks
yang lebih cepat, dari dan ke GPU.
5. Support penuh terhadap operasi
integer dan bitwise.
2.5 Seri GPU NVIDIA yang
Menggunakan Teknologi CUDA
Nvidia GeForce GTX 280,
GTX 260,9800 GX2,
GeForce® 9800 GTX+,
GeForce® 9800 GTX,
GeForce® 9800 GT,
GeForce® 9600 GSO,
GeForce® 9600 GT,
GeForce® 9500 GT,
GeForce® 9400 GT,
GeForce® 9400 mGPU,
GeForce® 9300 mGPU,
GeForce® 8800 Ultra,
GeForce® 8800 GTX,
GeForce® 8800 GTS,
GeForce® 8800 GT,
GeForce® GS,
GeForce® 8600 GTS,
GeForce® 8600 GT,
GeForce® 8500 GT,
GeForce® 8400 GS,
GeForce® 8300 mGPU,
GeForce® 8200 mGPU,
GeForce® 8100 mGPU.
BAB III PENUTUP
3.1 Kesimpulan
Kesimpulan dari makalah ini adalah
teknologi CUDA yang dikembangkan oleh NVIDIA merupakan teknologi yang sangat bagus,
CUDA berarti FISIKA yaitu kalkulasi yang diterapkan dalam game untuk
mensimulasikan benda-benda fisik sehingga berlaku layaknya di dunia nyata.
Membuat game terlihat semakin nyata, seakan-akan kita berada langsung di game
tersebut.
3.2 Saran
Tidak semua game harus menggunakan
teknologi CUDA, dengan menggunakan kartu grafis yang Non-grafis kita juga dapat
memainkan game HD(High Definition). Namun efeknya akan lebih terasa jika kita
menggunakan teknologi CUDA.
DAFTAR
PUSTAKA
0 komentar:
Posting Komentar