Graphics processing unit (GPU) atau biasa juga disebut visual processing unit (VPU) atau dalam bahasa Indonesia berarti Unit pengolah grafis adalah sebuah prossesor khusus untuk untuk bagian grafis 3D dari microprocessor. Alat ini digunakan di sistem benam, telepon genggam, komputer pribadi (PC atau Laptop), workstation dan konsol game.
GPU (Graphics processing unit) merupakan sebuah komponen khusus berupa unit yang bertugas mengolah segala hal yang mengarah ke grafis baik itu berbentuk game, multimedia (video), gambar atau animasi 2D/3D dan lain sebagainya.GPU ini diciptakan untuk menjadi pasangan CPU (Central Processing Unit) yang merupakan prosesor PC?Laptop. Tujuan awal diciptakan GPU ini hanya sebagai display saja namun lama kelamaan berkembang dan bisa mengolah beberapa pekerjaan, sehingga beban CPU/processor lebih ringan.
Fungsi GPU
Fungsi GPU (Graphics processing unit) hampir sama dengan CPU, yang membedakan CPU hanya memiliki beberapa core saja, sedangkan untuk GPU memiliki beberapa ribu core. Lebih tepatnya, fungsi utama GPU yaitu mengolah data grafis atau gambar. GPU biasanya didukung oleh adanya panel yang berfungsi sebagai antarmuka antara user dengan perangkat tersebut.
Cara Kerja GPU
Saat GPU menerima raw data atau data mentah, serangkaian proses panjang dimulai dan diakhiri dengan menampilkan 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 pipelinenya yaitu mempersiapkan kalkulasidan 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 bisa diproses oleh modul yang tepat. Disini, ditentukan apakah raw data diproses oleh Vertex Shader, Geometry Shader, Pixel Shader, atau sebuah texture unit.
Setiap objek 3D terdiri atas berbagai triangle. Vertex Shader disuplai dengan koordinat ini, segitiga ini lalu membentuk dunia 3D berdasarkan koordinat tersebut yang disesuaikan, discaling, atau didistorsi sesuai dengan arah pandangan mata. Area pandangan yang diasumsikan tersebut disebut denga frustum. Setelah scane tersebut terbentuk, selanjutnya dilakukan pemeriksaan apakah objek harus terlihat atau tidak, berada di area frustum, dan apakah seluruh atau sebagian ditutupi oleh objek.Elemen yang tidak terlihat akan disingkirkan dari scane untuk menghindari proses kalkulasi yang tidak dibutuhkan. Proses ini disebut dengan Frustum Culling. Jika ditemukan sebuah objek terlalu jauh untuk bisa terlihat atau terlalu dekat menghadap (membelakangi) penonton (secara teoritis), maka proses ekuivalennya disebut sebagai clipping.Proses Vertex Shader yang terakhir yaitu lighting. Disini, 3D scane akan diterangi oleh sumber cahaya ke dalam ruang tersebut. Tanpa langkah ini, 3D scane terlihat gelap. Vertex Shader hanya bisa memanipulasi objek, tapi tidak bisa menghasilkan elemen geometri baru, seperti titik, garis, dan segitiga.
Jika gambar yang akan dilihat sudah terbentuk dalam grid model dengan lighting sourcenya,berarti prosesnya telah membuat sebuah foto dari scane tersebut dalam gambar 2D untuk ditampilkan di monitor. Proses ini dinamakan rastering atau rendering. Setiap titik objek 3D, yang selama ini hanya disimpan sebagai vector, akan diubah menjadi pixel. Selanjutnya yang menguras tenaga yaitu shading (shadowing) yang dilakukan oleh Pixel Shader. Pixel Shader akan memproses warna dan atribut yang dibutuhkan 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 melalui berbagai filter agar scane terlihat lebih realistis. Untuk itu tekstur, yaitu Bitmaps (gambar) yang sudah jadi, akan diproyeksikan menjadi objek 3D (Texture Mapping). Dengan cara ini, akan mudah dihasilkan gambar yang terlihat seperti foto minus fleksibelitas objek 3D. Jadi obyek yang dibentuk oleh tekstur bisa terlihat bagus dari depan, tapi terlihat datar saja dari samping. Anisotrophic filtering, yang juga ditempatkan dalam tekstur units, berfungsi agar tekstur yang sudah terdistorsi secara perspektif bisa ditampilkan secara tajam dari kejauhan.Android menggunakan skia yang merupakan software untuk render yang menawarkan performa yang hebat dan mudah dibawa di prosesor ARM, hal ini menjadikan sangat baik pada NEON ARM (SIMD) prosesor. Implementasi OpenGL Software yaitu 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, tapi ini hanya digunakan melalui lapisan tipis JAVA API untuk permainan dan sebagai bagian dari NDK. Intinya, Google perlu untuk keluar dengan mekanisme antarmuka dan tumpukan grafis yang portable dan scalable.Akan tetapi, dibandingkan dengan CPU, GPU memiliki kekurangan terbesar. Floating Point (FP) number GPU hanya bisa diproses dengan akurasi satu kali, yaitu 32 bit. Proses yang rumit dengan intermediate data yang besar membutuhkan akurasi ganda, dalam hal ini 64 bit. ATI dan nVidia telah merespon tuntutan ini dan sedang berusaha agar GPU terbaru mereka juga menawarkan tingkat akurasi yang lebih untuk operasi Floating Point.