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.