Saat ini tentu kita sering mendengar istilah Graphics Processing Unit (GPU)
terutama pada perangkat smartphone berbasis Android. Tentu beberapa orang dari
kita sudah mengetahui apa itu GPU tapi tidak sedikit yang belum apa itu GPU,
apa fungsinya serta GPU seperti apa yang sesuai dengan kebutuhan kita ketika
kita sedang memilih perangkat smartphone berbasis Android, ada baiknya kita
bahas apa itu GPU (diambil dari berbagai sumber)
1. Apakah GPU / Graphics Processing Unit?
GPU atau Graphics Processing Unit adalah chip yang bekerja mengotaki
kinerja grafis pada perangkat khususnya yang berbasis Android. GPU tidak lain
adalah Video Graphics Adapter (VGA) PC/Komputer karena pada dasarnya prinsip
kerjanya sama. Tentu GPU memegang peranan penting pada perangkat berbasis
Android ketika digunakan untuk bermain game-game 3D kelas High Definition (HD)
atau video berkualitas tinggi. Tentu semakin tinggi kualitas GPU maka semakin
mahal harga sebuah perangkat Android.
2. Cara kerja Graphics Processing Unit
Saat GPU menerima raw
data,serangkaian proses panjang dimulai dan diakhiri dengan memunculkan gambar
di layar perangkat. Graphics Pipeline, yaitu channelling agar data dalam card
sampai pada frame buffer, umumnya hampir sama pada semua graphics card yang ada
saat ini. Seluruh proses tersebut diulang untuk setiap gambar (frame). Agar
dapat menghasilkan gerakan yang cepat.
Setelah data dikirim ke GPU melalui interface, langkah pertama proses pipeline-nya
adalah mempersiapkan kalkulasi (pre-calculation) dan mengubah data dengan
menggunakan sebuah pre-processor (setup Engine atau Input Assembler).
Pre-processor ini mendeteksi jenis data, apakah berkaitan dengan
vector,gambar,dank ode program, dan mempersiapkan raw data sehingga dapat
diproses oleh modul yang tepat. Disini, ditentukan apakah raw data diproses
oleh sebuah Vertex Shader, Geometry Shader, Pixel Shader, atau sebuah texture
unit.
Setiap objek 3D terdiri atas berbagai triangle. Vertex Shader (Vertices
adalah titik-titik sudut sebuah polygon) disuplai dengan koordinat-koordinat
ini. segitiga-segitiga ini kemudian membentuk sebuah dunia 3D berdasarkan
koordinat tersebut yang diselaraskan, di-scaling, atau di-distorsi sesuai
dengan arah pandangan mata. Area pandangan yang diasumsikan ini disebut sebagai
frustum. Setelah scane tersebut terbentuk,dilakukan pemeriksaan apakah sebuah
objek harus terlihat atau tidak, berada di area frustum, dan apakah seluruh
atau sebagian ditutupi oleh objek-objek.
Elemen yang tidak terlihat akan disingkirkan dari scane untuk menghindari
proses kalkulasi yang tidak diperlukan. Proses ini disebut Frustum Culling.
Apabila ditemukan sebuah objek terlalu jauh untuk dapat terlihat atau terlalu
dekat menghadap (membelakangi) penonton (secara teoritis), maka proses
ekuivalennya disebut sebagai clipping.
Proses Vertex Shader yang terakhir adalah lighting. Disini, 3D scane akan
diterangi oleh sumber cahaya ke dalam lingkungan (ruang) tersebut. Tanpa
langkah ini, 3D scane terlihat gelap. Vertex Shader hanya dapat memanipulasi
objek, namun tidak dapat menghasilkan elemen geometri baru, seperti titik,
garis, dan segitiga.
Apabila gambar yang akan dilihat anda (viewer) sudah terbentuk dalam grid
model dengan lighting source-nya,berarti prosesnya telah membuat sebuah foto
dari scane tersebut dalam gambar 2D (dua dimensi) untuk ditampilkan di monitor.
Proses ini dinamakan rastering atau rendering. Setiap titik sebuah objek 3D,
yang selama ini hanya disimpan sebagai vector, akan diubah menjadi sebuah
pixel. Langkah selanjutnya yang menguras tenaga adalah shading (shadowing) yang
dilakukan oleh Pixel Shader. Pixel Shader akan memproses warna dan atribut yang
diperlukan, seperti trasnparasi, pemantulan atau struktur dari masing-masing
pixel. Hasilnya, objek 3D akan mendapat pewarnaan.
Prinsipnya, sekarang gambar sudah jadi. Proses yang diperlukan hanyalah
penyempurnaan malalui berbagai filter agar scane terlihat lebih realistis.
Untuk itu tekstur, yaitu Bitmaps (gambar) yang sudah jadi, akan diproyeksikan
menjadi sebuah objek 3D (Texture Mapping). Dengan cara ini, dengan mudah
dihasilkan gambar-gambar yang terlihat seperti foto minus fleksibelitas sebuah
objek 3D. Jadi obyek yang dibentuk oleh tekstur dapat terlihat bagus dari
depan, namun terlihat datar saja dari samping. Anisotrophic filtering, yang
juga ditempatkan dalam tekstur units, berfungsi agar teksture yang sudah terdistorsi
secara perspektif dapat ditampilkan secara tajam dari kejauhan.
Apakah Android benar-benar menggunakan OpenGL ES API untuk percepatan UI?
Sejak Android 2.1 tidak menggunakan GOOGLES 1,0 API untuk mempercepat GUI,
dalam ketiadaan HW menggunakan sampel GOOGLES 1,0 implementasi SW.
Jawabannya adalah TIDAK. Android menggunakan skia yang merupakan software
untuk render yang menawarkan performa yang hebat dan mudah dibawa di prosesor
ARM, hal ini menjadikan sangat baik terhadap NEON ARM (SIMD) prosesor. Implementasi
OpenGL Software adalah tidak menawarkan OpenGL ES 1.1 dengan implementasi
penuh. Sebuah OpenGL ES hanya mengimplementasi pada perangkat keras yang
terintegrasi sebagai bagian dari libgl.so dan libgl2.so, namun ini hanya
digunakan melalui lapisan tipis JAVA API untuk permainan dan sebagai bagian
dari NDK. Intinya adalah Google perlu untuk keluar dengan mekanisme antarmuka
dan tumpukan grafis yang portable dan scalable.
3. Jenis Graphics Processing Unit
A. Adreno
Seri Adreno yang merupakan buatan ATI yang sekarang anak perusahaan AMD
dulu disebut seri ATI imageon, sekitar tahun 2002-2004 yaitu pada awal-awal
keluarnya seri GPU ini.
Pada tahun 2008, AMD imageon di jual ke salah satu produsen prosesor
terkemuka, yaitu Quallcom. Dan sekarang ATI/AMD hanya mensupport arsitektur dan
pengembangannya saja. Kini seri Adreno merupakan bawaan dari semua SOC (System
On Chip) buatan Quallcom. Adreno sendiri juga dibagi menjadi beberapa kelas:
Adreno 130, yang berada didalam SOC Quallcom seri MSM7xxx.
Adreno 200, yang berada pada QSD8x50 (snapdragon gen 1, QSD mrupakan kode
dari seri SOC snapdragon) and MSM7x27 (MSM merupakan kode untuk produk SOC
quallcom untuk seri general). Biasanya, Adreno seri ini dipakai di handheld
Android kelas low-end (spesifikasi rendah, dengan prosesor 600-800 MHz).
Adreno 205 di QSD8x50A (1.3 GHz), MSM7x30 (800 MHz+L2 cache), MSM8x55 (1
GHz+L2 cache).
Adreno 220, merupakan andalan mereka yang terbaru, saya sendiri belum
memiliki banyak info tentang Adreno 220 ini, tapi nampaknya GPU ini memiliki
Multi Core (lebih dari satu inti prosesor). Seri ini dan Adreno 220 biasanya
dipakai di handheld Android kelas Mid-End dan High-End (spesifikasi tinggi,
dengan prosesor diatas 1GHz).
B. PowerVR
Seri PowerVR merupakan buatan video logic yang dulu juga pernah meramaikan
pasar VGA, namun seiring dominasi NVIDIA dan ATI, video logic kini hanya
bermain di dunia GPU mobile gadget. PowerVR sendiri tidak di produksi dalam
bentuk jadi oleh power logic namun mereka hanya membuat draft arsitekturnya yg
dijual lisensinya ke berbagai produsen prosesor terkemuka seperti NEC, Intel,
Freescale, Texas Instruments dan lain-lain.
Seri PowerVR sendiri sekarang sudah mencapai 6 seri, seri 2 nya pernah
dipakai pada console game tahun 1900-an, yaitu Dream cast dan Sega saturn. Seri
powerVR SGX 5 merupakan seri yang paling sering ditemui pada smartphone, SGX 5
sendiri merupakan GPU elite dalam dunia smartphone, mungkin seperti BMW di
dunia mobil J.Seri SGX yang tercatat pernah dipakai dalam berbagai smartphone
dan gadget berikut:
SOC A4/SGX535 (iPhone 4/ipod gen4/ipad)
SOC Hummingbird/SGX540 clock 200 (Samsung Galaxy S)
SOC OMAP seri 3/SGX530 (Droid X, Motorola Defy, Samsung Galaxy SL, Motorola
Mile 2, Droid 2 dan LG optimus Black)
Intel GMA 500 dan GMA 600 juga menggunakan SGX535 sbg VGA onboard intel
atom
Varian seri 5 berikutnya adalah SGXMP (MP disini mengindikasikan jumlah
core) SOC OMAP 4 (4430)/SGX540MP quadcore clock 300 (Blackberry Playbook, LG
Optimus 3D).
SOC A5/SGX543MP2 (iPad 2).
SGX543MP4, yang dipakai di Playstation Vita.
Selain itu seri dewa berikutnya, SGX544MP+ akan berada di OMAP 5 yg
mnggunakan quadcore dual CPU A15 (eagle platform)+ dual CPU Cortex-M4 cores dgn
clock prosesor hingga 2 GHz.
C. Mali
Seri Mali, GPU ini merupakan arsitektur buatan ARM, walaupun masih jarang
terdengar namanya, namun kekuatannya tidak bisa diremehkan. Seri-seri GPU Mali
beredar mulai dari HDTV, game console (PS3), hingga smartphone. Khusus untuk
smarphone, seri yang digunakan adalah Mali 400MP4 (MP adalah indikator core
yang digunakan). GPU ini merupakan bagian dari SOC Exynos dualcore CPU 1.2ghz
A9 milik Samsung Galaxy S II. Kabarnya Mali 400MP4 ini mampu merender hampir
setara PS3 maupun Xbox 360.
D. GeForce ULP
Seri Geforce ULP (Ultra Low Power) merupakan GPU yg mnjadi bagian dari SOC
Tegra 2 yang diproduksi oleh NVIDIA. Geforce ULP ini menggunakan Quadcore 4
pixel shaders + 4 vertex shaders hingga total ada 8 core yang berada di
dalamnya.
Jika untuk menentukan performa tentu saja tidak lepas dr SOC apa yg
dipakai, sangat sulit untuk menentukan point yg digunakan untuk komparasi
karena masing-masing GPU sangat tergantung juga pada kinerja dan support dr
SOCnya. Contohnya saja, SOC OMAP seri 4 dgn GPU SGX540 quadcore vs tegra 2 dgn
GPU ULP geforce 8core, sapa yg akan menang? Apabila melihat jumlah core, secara
kasat mata orang akan menjagokan 8core yg berada pada geforce ULP namun bila
menghitung kemampuan SOC maka trlihat OMAP 4 trnyata bisa melibas Tegra 2,
tidak hanya dari hasil benchmark, framerate, javascript render, namun jg dlm
soal efisiensi pemakaian battere.
Hal ini tidak mengherankan karena OMAP 4 memiliki beberapa senjata rahasia
seperti support dual channel memori LP DDR2 hingga 1GB, dimana Tegra 2 baru
mampu menggunakan single channel. Kembali lg kemampuan SOC sangat menentukan
hasil, begitu juga dengan Snapdragon dengan core scorpion-nya, apakah akan
kalah perform dengan Tegra 2? Tidak juga, terutama utk hasil multimedia dimana
kekuatan snapdragon dan adreno memang di optimalisasi pada sisi ini.
Kendala berikutnya dalam membandingkan monster-monster GPU ini adalah
perbedaan cara render yg dilakukan pada masing-masing platform, misalnya saja
Adreno dengan SOC snapdragon biasa menggunakan metode render (bila melewati
batas kemampuannya) menurunkan kualitas namun mempertahankan resolusi agar
framerate terjaga, sementara Hummingbird dengan GPU SGX540 merender murni
menggunakan kekuatan GPUnya bahkan tetap dengan menghidupkan vsync. Walaupun
terlihat dimata kita performa nya hampir sama, dengan hasil framerate yang
tidak jauh berbeda, namun jika vsync dimatikan dan dibandingkan kualitas
gambarnya akan terlihat dimana SGX540 benar2 monster dan sangat cepat!
Hal ini juga belum lagi ditambah dengan driver yang dipakai di dalam OS yg
berada di smartphone atau gadget tersebut. Jadi, cukup sulit menentukan mana
GPU terbaik, karena masing-masing GPU memiliki kelebihan dan kelemahannya
tersendiri dan tergantung pula pada support dari SOC nya masing-masing.
Kelas Graphics Processing Unit
a. Kelas low end
- Adreno 130 (HTC Hero)
- Adreno 200 (GALAXY MINI/Fit/Ace, Nexian Journey, CSL MI320, Desire, Nexus
One, Droid Incridible, X10)
- Power vr 530 (Milestone1, Charm)
b. Kelas mid end
- Adreno 205 (CSL MI410, Galaxy W, Huawei X5, Xperia Mini/Pro/Active, Droid
X, HTC Thunderbolt, SE Play)
- PowerVR 535 (iPhone 4/ iPod gen4/ iPad)
- Hummingbird/SGX540 clock 200 (Samsung Galaxy S/ Tab1/ Epic 4G)
c. Kelas high end
- SOC A5/SGX543MP2 (iPad 2)
- SGX543MP4, yang dipakai di Playstation Vita
- Adreno 220 (HTC Sensation)
- Nvidia Tegra 2 (LG Optimus 2X)
- Mali 400MP2 (Galaxy S II )
- SGX544MP+ akan berada di OMAP 5 yg mnggunakan quadcore dual CPU A15
- Adreno 225
- Mali 400MP4 (Galaxy S3)
Untuk mengetahui GPU yang digunakan dalam perangkat Android, kita harus
menginstall quadrant standar/aplikasi yang sejenis atau anda dapat membaca
artikel maxiandroid tentang benchmark.