Sering
kali kita mendengar Graphics Processing Unit (GPU) ketika kita melihat
spek dari perangkat android. Apakah GPU itu? Apakah peranan dari GPU
itu? Pada artikel Sambil Sharing ini, mari kita berbagi tentang GPU pada
perangkat android.
Apakah GPU / Graphics Processing Unit?
GPU atau Graphics Processing Unit adalah chip yang
mengotaki kinerja grafis di perangkat android kita. GPU prinsip
kerjanya sama dengan Video Graphics Adapter (VGA) di PC/Komputer. GPU
memegang peranan penting juga ketika Android kita digunakan untuk
bermain game-game 3D kelas High Definition (HD) atau video berkualitas
tinggi. Semakin murah gadget android, biasanya GPU yang dimiliki
kualitasnya juga standar. Dan sebaliknya.
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 oixel. 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?
Update: Sejak Android
2.1 tidak menggunakan GOOGLES 1,0 API untuk mempercepat GUI, dalam
ketiadaan HW menggunakan sampel OGLES 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.
Jenis Graphics Processing Unit
1.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:
a.Adreno 130, yang berada didalam SOC Quallcom seri MSM7xxx.
b.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).
c.Adreno 205 di QSD8x50A (1.3 GHz), MSM7x30 (800 MHz+L2 cache), MSM8x55 (1 GHz+L2 cache).
d.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).
2.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 sndiri 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:
a.SOC A4/SGX535 (iPhone 4/ipod gen4/ipad)
b.SOC Hummingbird/SGX540 clock 200 (Samsung Galaxy S)
c.SOC OMAP seri 3/SGX530 (Droid X, Motorola Defy, Samsung Galaxy SL, Motorola Mile 2, Droid 2 dan LG optimus Black)
d.Intel GMA 500 dan GMA 600 juga menggunakan SGX535 sbg VGA onboard intel atom
e.Varian
seri 5 berikutnya adalah SGXMP (MP disini mengindikasikan jumlah core)
SOC OMAP 4 (4430)/SGX540MP quadcore clock 300 (Blackberry Playbook, LG
Optimus 3D).
f.SOC A5/SGX543MP2 (iPad 2).
g.SGX543MP4, yang dipakai di Playstation Vita.
h.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.
3.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.
4.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
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)
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)
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)
sumber: