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.