Mari Mengenali Mekanisma GPGPU

Mari Mengenali Mekanisma GPGPU

Diterbitkan pada November 10, 2012 oleh .

Artikel berkisarkan tentang mekanisma perkomputeran datang lagi, dan kali ini kita akan sama-sama berbincang mengenai General Purpose Graphic Processing Unit ataupun singkatannya iaitu GPGPU. Pengguna biasa mungkin tidak kenal namun selepas membaca artikel ini, anda bukan lagi pengguna biasa kerana anda bergerak selangkah lagi memahami bagaimana sistem komputer berfungsi.

Kita mulakan perbincangan kita dengan memahami apakah perbezaan yang signifikan antara Central Processing Unit (CPU) dan Graphics Processing Unit (GPU). Selepas difahami perbezaan antara CPU dan GPU, kita akan berbincang bagaimana GPGPU berfungsi dan juga aplikasinya dalam bidang penyuntingan video dan juga bidang penyelidikan sains dan biologi.

Bilangan Teras

Bagi pengguna biasa (home user), bilangan teras yang paling banyak pun mungkin 4 atau 8 sahaja bagi CPU seperti Intel Core i7. Bagaimana pula untuk GPU? Ratusan… atau ribuan teras yang ada padanya. Tapi, kita tidak boleh fikir corak bekerja teras dalam CPU sama seperti teras yang ada dalam GPU.

Untuk pengetahuan, teras di dalam GPU lebih dikenali dan biasa dipanggil sebagai “stream processors”. Jadi bagi mengelakkan kekeliruan, teras di dalam CPU dipanggil sebagai “teras” (cores) manakala teras di dalam GPU dipanggil sebagai “stream processors”.

Bagaimana GPU Berfungsi?

Saya akan kongsikan dulu bagaimana GPU berfungsi, kemudiaan saya akan kongsikan pula bagaimana CPU berfungsi, OK?

Mula-mula, bayangkan anda berada dalam satu kumpulan pelajar yang terdiri dari 5 hingga 10 orang ahli. Kumpulan anda telah diberikan tugas untuk mewarna bendera Jalur Gemilang yang berdimensi 10 meter panjang dan 7 meter lebar.

Memandangkan anda cuma ada satu jenis tugas sahaja – iaitu mewarna – dan anda mempunyai sekumpulan ahli bersama anda, pada ketika inilah anda boleh menggunakan “sistem pembahagian kerja sejajar” (parallel distribution of workloads).

Apa yang saya maksudkan ialah: semua ahli dalam kumpulan anda menggunakan berus cat dari jenis yang sama, ketebalan yang sama, panjang hulu yang sama, menggunakan cat air dari jenis yang sama (Buncho… mungkin), mempunyai teknik mengecat dan mewarna yang sama dan boleh bekerja bersama-sama secara serentak.

Prinsip yang sama jugalah kita pakai untuk memahami asas corak bekerja bagi GPU. Jom kita tengok pada monitor laptop bersaiz biasa iaitu 13-inci dengan paparan resolusi 1366×768, jika paparan itu disambungkan dengan sebarang kad grafik maka kesemua stream processors yang ada pada kad grafik tersebut sedang bekerja serentak untuk membentuk pixel-pixel yang teramat banyak pada paparan berkenaan secara serentak melalui prinsip “sistem pembahagian kerja sejajar”.

Bagaimana CPU Berfungsi?

Kita tidak akan mewarna bendera kali ini. Apa yang anda perlukan bagi memahami corak bekerja CPU ialah dapatkan kalkulator saintifik sama ada Casio FX-570MS ataupun Casio FX-570ES Plus Natural Display. Ketahanan mental dan nilai intelektual minda anda akan diuji melalui soalan matematik dibawah.

Err, kalau soalan di atas tak cukup mencabar, apa kata cuba soalan ni pulak.

Jawapannya ialah x bersamaan dengan 4, x bersamaan dengan 19. Ya, selesaikan fungsi logaritmik di atas dengan menggunakan kaedah fungsi quadratik. Eh, kejap… ini bukan kuliah calculus ataupun algebra.

Kembali kepada topik asal kita.

Anda telah diberikan dengan 2 persamaan Matematik, bolehkah anda selesaikan soalan Matematik tersebut dengan memecahkannya kepada beberapa bahagian supaya anda dan ahli kumpulan anda dapat selesaikan dengan menggunakan prinsip “sistem pembahagian kerja sejajar”?

Apa yang saya maksudkan di sini ialah: untuk persamaan Matematik pertama yang saya berikan itu, boleh tak anda kira dulu 8 – 4, kemudian ahli kumpulan anda kira 3 – 2, ahli kumpulan seorang lagi kira (3 + 2) x 2, dan ahli kumpulan yang seorang lagi kira – 3 x (2 / 4). Kirakan bahagian yang telah dipecahkan itu secara serentak kemudian jawapan bagi setiap bahagian itu digabungkan untuk mencari jawapan yang paling akhir. Dapat tak jawapan yang betul?

Anda tidak boleh menggunakan prinsip “sistem pembahagian kerja sejajar” kerana soalan matematik tidak dibina untuk diselesaikan dengan cara sedemikian. Anda memerlukan prinsip yang lain pula iaitu “teknik penyelasaian berurutan” (sequential operation method). Anda mesti menyelesaikan soalan matematik berkenaan mengikut turutan dan peraturannya. Masihkah anda ingat akan BODMAS iaitu Bracket of Division, Multiplication, Addition and Subtraction?

CPU secara bersiri dan berurutanItulah prinsip yang diguna pakai untuk memahami secara asas akan operasi yang dijalankan oleh CPU. Tidak seperti GPU, tugas-tugas yang diterima oleh CPU ialah tugas dari jenis bersiri (serial) dan juga berurutan (sequential). CPU anda memproses data satu demi satu pada kelajuan yang amat mengagumkan, ditambah pula dengan teknologi-teknologi tertentu seperti Hyper Threading, Turbo Boost dan sebagainya.

Perbezaannya Ialah?

Kita sudah faham kan bagaimana GPU dan CPU berfungsi. Mungkin ada persoalan “kenapa tidak ditambah sahaja bilangan teras pada CPU supaya ia mempunyai ratusan teras yang bekerja sekaligus sebagaimana bilangan stream processors yang ada pada GPU”. Saya tidak tahu bagaimana hendak menjawab soalan itu, biarlah gambar ini terangkan mengapa.

Ilustrasi di bawah ini mungkin boleh memberi sedikit lagi gambaran tentang bagaimana CPU dan GPU berfungsi.

[swfobject]37240[/swfobject]

Jadi, Apa Pula GPGPU?

Apa yang anda faham daripada gambar di atas?

Seperti biasa, analogi akan digunakan untuk menerangkan mekanisma GPGPU. Bayangkan anda sebagai seorang peladang, anda mempunyai 2 ekor lembu untuk membajak sawah dan beberapa ekor ayam yang anda pelihara untuk mendapatkan telurnya. Lembu-lembu itu merupakan teras bagi CPU manakala ayam-ayam itu ialah stream processors bagi GPU.

Kalau tak ada ladang, Farmville pun jadi jugak.

Anda baru sahaja naik taraf keluasan ladang anda, tapi sekarang ini anda mempunyai satu masalah iaitu anda tidak mampu membeli tambahan lembu untuk membajak sawah. Memandangkan anda merupakan seorang peladang yang bijak, anda bertekad untuk mengajar ayam-ayam anda untuk turut serta membajak sawah.

Memang pada hakikatnya ayam tidak mampu untuk membajak sawah tetapi jika diajar kepada mereka cara-cara untuk mengoptimumkan penggunaan cakar dan paruh, pasti mereka berjaya mengharungi penat lelah kehidupan bersama-sama 2 ekor lembu berkenaan. Pasti lembu-lembu tersebut lebih gembira dan ceria, kan?

Ayat sedikit dramatik di situ.

Inilah yang dimaksudkan dengan mekanisma asas GPGPU. Dengan menggunakan GPU untuk melakukan tugas-tugas yang secara tradisinya dilakukan oleh CPU, bebanan lebih yang dikenakan ke atas CPU boleh diringankan kerana kitaran operasi kerja dialirkan ke atas GPU. Dengan itu, gerak kerja yang lebih laju dan efisien terhasil melalui kombinasi berkenaan.
Pernah dengar CUDA?

CUDA ini merupakan salah satu implementasi GPGPU yang digunakan pada kad grafik jenama nVidia. Gambar di atas diambil daripada perisian Freemake Video Converter.

Secara tradisinya, proses video transcoding, encoding dan coverting menggunakan kuasa CPU 100% tetapi dengan hadirnya teknologi GPGPU, bebanan kerja itu dikongsi antara CPU dan GPU (dalam gambar di atas, ia dikongsi bersama antara CPU dan juga kad grafik nVidia yang mempunyai teknologi CUDA).

Secara ringkasnya, kini GPU bukan sahaja berfungsi sebagai agen untuk mewarna skrin anda (rendering the pixels on the screen) tetapi ia juga berfungsi sebagai agen untuk melakukan kerja-kerja pengiraan seperti media converting and encoding, bertepatanlah dengan namanya iaitu General Purpose Graphics Processing Unit.

GPGPU dan Aplikasinya Dalam Industri

Tahun demi tahun, implementasi GPGPU semakin bertambah berikutan dengan hadirnya teknologi-teknologi seperti nVidia CUDA, ATI FireStream, OpenCL dan lain-lain lagi. Ketika ini, kebanyakan perisian yang menggunakan GPGPU ialah perisian yang sering digunakan untuk memproses video, audio dan juga gambar. Sebagai contoh, Adobe Photoshop CS6 ini.

GPGPU juga digunakan dalam bidang penyelidikan seperti bidang kaji fizik dan biologi. Mungkin anda pernah dengar akan [email protected] kan? Selain itu, para saintis di pusat penyelidikan CERN juga berminat untuk menggunakan teknologi GPGPU ini pada kerangka komputer mereka, jika anda ada membaca majalah Linux Format isu 164.

Penutup

Jadi, adakah anda memahaminya, ataupun mempunyai sebarang pertanyaan lanjut mengenai GPGPU?

Artikel ini ditulis oleh saudara Aizan Fahri, salah seorang pelajar INTEC berumur 18 tahun. Ikuti beliau di Twitter melalui @aifrantz ataupun membaca nukilan beliau di blog peribadi.


TIPS & ULASAN