1. Latar Belakang
3. Analisa
Parallel
computing adalah penggunakan lebih dari satu CPU untuk menjalankan sebuah
program secara simultan. Idealnya, parallel processing membuat programberjalan
lebih cepat karena semakin banyak CPU yang digunakan. Tetapi dalam
praktek,seringkali sulit membagi program sehingga dapat dieksekusi oleh CPU
yang berbea-beda tanpa berkaitan di antaranya, Maksudnya program dijalankan
dengan banyak CPU secara bersamaan dengan tujuan untuk membuat program yang
lebih baik dan dapat diproses dengan cepat. Dapat diambil kesimpulan bahwa pada
parallel processing berbeda dengan istilah multitasking, yaitu satu CPU
mengangani atau mengeksekusi beberapa program sekaligus, parallel processing
dapat disebut juga dengan istilah parallel computing.
CUDA (Compute Unified Device
Architecture) adalah suatu skema yang dibuat oleh NVIDIA agar NVIDIA selaku GPU
(Graphic Processing Unit) mampu melakukan komputasi tidak hanya untuk
pengolahan grafis namun juga untuk tujuan umum. Jadi, dengan CUDA, kita dapat
memanfaatkan cukup banyak processor yang dimiliki oleh NVIDIA untuk berbagai
perhitungan. GPU yang ada saat ini
seperti ATI pun sudah memiliki banyak processor di dalamnya. Pada ATI, skema
yang mereka bangun disebut ATI Stream. Saat ini pemrograman paralel menjadi
sangat penting karena kebutuhan kemampuan komputasi komputer yang terus
meningkat seperti kemampuan multitasking dan pengolahan grafis yang andal.
Metode saat ini dalam peningkatan peforma komputer juga berbeda dengan masa
lampau dimana peningkatan clock dari processor yang diutamakan.
Peningkatan clock juga dibatasi oleh
kemampuan fisik dari perangkat digital yaitu persoalan daya dan panas. Pada
2005 berbagai industri komputer mulai menawakan komputer dengan beberapa core
mulai dari 2, 3, 4, 6, dst. Pada awal perkembangan GPU dengan banyak core,
pemanfaatan GPU hanya dapat dilakukan dengan antarmuka seperti OpenGL dan
DirectX dimana antarmuka tersebut dikhususkan hanya untuk pengolahan grafis.
2. Metode
Thread
Dalam
pemrograman komputer, sebuah thread adalah informasi terkait dengan penggunaan
sebuah program tunggal yang dapat menangani beberapa pengguna secara bersamaan.
Dari program point-of-view, sebuah thread adalah informasi yang dibutuhkan
untuk melayani satu pengguna individu atau permintaan layanan tertentu. Jika
beberapa pengguna menggunakan program atau permintaan bersamaan dari program
lain yang sedang terjadi, thread yang dibuat dan dipelihara untuk masing-masing
proses.
Pengantar pemrograman cuda
GPU
(Graphical Processing Unit) pada awalnya adalah sebuah prosesor yang berfungsi
khusus untuk melakukan rendering pada kartu grafik saja, tetapi seiring dengan
semakin meningkatnya kebutuhan rendering, terutama untuk mendekati waktu proses
yang realtime /sebagaimana kenyataan sesungguhnya, maka meningkat pula
kemampuan prosesor grafik tersebut. akselerasi peningkatan teknologi GPU ini
lebih cepat daripada peningkatan teknologi prosesor sesungguhnya (CPU), dan
pada akhirnya GPU menjadi General Purpose, yang artinya tidak lagi hanya untuk
melakukan rendering saja melainkan bisa untuk proses komputasi secara
umum.penggunaan Multi GPU dapat mempercepat waktu proses dalam mengeksekusi
program karena arsitekturnya yang natively parallel. Selain itu Peningkatan
performa yang terjadi tidak hanya berdasarkan kecepatan hardware GPU saja,
tetapi faktor yang lebih penting adalah cara membuat kode program yang
benarbenar bisa efektif berjalan pada Multi GPU.
3. Analisa
Thread
Thread memungkinkan
program untuk mengetahui user sedang masuk didalam program secara bergantian
dan akan kembali masuk atas nama pengguna yang berbeda. Salah satu informasi
thread disimpan dengan cara menyimpannya di daerah data khusus dan menempatkan
alamat dari daerah data dalam register. Sistem operasi selalu menyimpan isi
register saat program interrupted dan restores ketika memberikan program
kontrol lagi.
Pengatar Pemrograman Cuda
CUDA merupakan teknologi anyar dari produsen
kartu grafis Nvidia, dan mungkin belum banyak digunakan orang secara umum.
Kartu grafis lebih banyak digunakan untuk menjalankan aplikasi game, namun
dengan teknologi CUDA ini kartu grafis dapat digunakan lebih optimal ketika
menjalankan sebuah software aplikasi. Fungsi kartu grafis Nvidia digunakan
untuk membantu Processor (CPU) dalam melakukan kalkulasi dalam proses data.
4. Saran dan Kesimpulan
Teknologi CUDA untuk komputasi paralel menggunakan GPU
menunjukkan keunggulan terhadap komputasi sekuensial menggunakan CPU.
Berdasarkan pengujian tersebut, diketahui bahwa selisih kedua komputasi untuk
image processing tidak begitu besar terutama untuk operasi grayscale dan
negatif. Namun untuk operasi deteksi tepi, makin besar ukuran gambar semakin
terlihat kecepatan proses CUDA hingga 2.8 kali lipat lebih cepat daripada OpenCV
yang didapat pada ukuran gambar 7500x5000. Hal ini disebabkan pada perbedaan algoritme
pada tiap operasi. Pada operasi grayscale dan negatif memiliki algoritme yang
hampir mirip yakni cukup menggunakan satu persamaan untuk mengubah warna tiap pixel
gambar. Sedangkan algoritme untuk operasi deteksi tepi menggunakan matriks
konvolusi 3x3 untuk matriks X dan Y. Hasil dari matriks tersebut baru
dimasukkan pada tiap pixel gambarnya. Algoritme persamaan matriks tersebut
lebih cepat dijalankan secara paralel. Namun untuk video processing, OpenCV
sedikit lebih unggul dari CUDA dengan perbedaan hingga dua frame meskipun tidak
begitu terlihat di dalam video. Dalam penelitian selanjutnya perlu dilakukan
pengujian untuk membandingkan antara komputasi GPU(CUDA) dengan komputasi
paralel untuk operasi dengan algoritme yang lebih kompleks. Untuk video processing
bisa dibandingkan dengan memanfaatkan OpenGL untuk mengoptimakan GPU. Bahkan perlu
dilakukan pengujian secara nyata untuk proses rendering
5. Sumber
Jakarta


