Apa yang berbeda dari driver GPU dari driver perangkat lain, yang memungkinkan untuk optimasi kinerja?


12

Sepertinya dua pembuat GPU besar terus-menerus merilis driver terbaru yang memiliki peningkatan kinerja kecil di sana-sini. Ketika mereka untuk permainan yang sama, saya yakin itu bertambah seiring waktu.

Dengan mengingat hal itu, mengapa kita tidak pernah mendengar tentang pengubahan CPU AMD atau Intel untuk aplikasi atau versi Windows tertentu atau semacamnya?


1
Mengenai VTC: Ini tidak ambigu. Ada alasan khusus mengenai apa yang akan diubah dan mengapa, dengan driver GPU (dan CPU).
Ben Richards

1
Vendor CPU melakukan pembaruan rilis. Lihat, misalnya, downloadcenter.intel.com/… (klik firmware di paling kanan)
derobert

@derobert - Menarik, jelas Intel tidak berniat mengulangi kegagalan Pentium. Namun pembaruan ini untuk mikrokode prosesor , dan bukan "driver CPU". Microcode dieksekusi pada level yang lebih rendah daripada kode mesin dari file kernel dan .exe .
serbuk kayu

@memastikan mikrokode CPU (setidaknya sebagian) bertanggung jawab untuk menerjemahkan instruksi x86 yang diterima CPU ke dalam operasi aktual yang dijalankannya. Jadi sebenarnya agak mirip dengan driver grafis. Tentu saja, Intel peduli yang banyak tentang kebenaran dari nVidia tidak, sehingga update mereka mungkin sebagian besar perbaikan bug.
derobert

Jawaban:


13

Pertama, kadang-kadang ada kasus di mana patch driver dilepaskan yang dapat meningkatkan kinerja, atau meningkatkan efisiensi, untuk CPU tertentu. Tapi jelas Anda menanyakan pertanyaan ini karena itu tidak umum. Apa yang dilakukan oleh pengoptimalan driver CPU serupa dalam konsep.

GPU adalah sirkuit yang sangat rumit. Itu ada untuk membongkar tugas-tugas tertentu yang membutuhkan waktu sangat lama untuk dilakukan pada CPU. Mereka menerima set data, dan instruksi tentang apa yang harus dilakukan dengan data ini. GPU harus dapat memesan data dengan cara yang dapat dikelola dan menginterpretasikan instruksi untuk menentukan apa yang harus dilakukan. Kemudian, ia harus melakukan serangkaian operasi matematika pada data. Setelah itu, harus menyusun ulang data lagi dan mengirim hasilnya kembali ke sistem operasi setelah selesai. Ini adalah deskripsi yang sangat sederhana dari pipa grafis komputer . Ada beberapa langkah yang harus diambil sebelum data siap untuk program.

Sekarang, karena GPU harus menerima serangkaian instruksi dan mengimplementasikan operasi matematika yang sangat rumit dalam perangkat keras, akan ada hal-hal tertentu yang diketahui berjalan lebih cepat atau lebih lambat melalui pipa ini. Bagian dari menulis driver untuk perangkat adalah mengartikan data dan instruksi yang dikirim ke perangkat, menerjemahkannya sehingga perangkat dapat memahaminya. Ketika seorang pengemudi melakukan ini, ia dapat membuat keputusan tentang bagaimana mengirim data ke perangkat sehingga tugas-tugas akan mengambil waktu sesingkat mungkin. Namun, seorang pengemudi umumnya tidak memiliki banyak informasi tentang apa yang sedang dilakukan oleh program itu. Semua yang diterima dari program adalah panggilan API ("draw a line", "colour a point", "shade a triangle", dll). Jadi, asumsi yang dibuatnya tidak terlalu bagus.

Ketika AMD atau nVidia merilis pembaruan driver yang berisi peningkatan kinerja untuk game tertentu, artinya ini adalah bahwa driver akan mendeteksi game apa yang disebut perangkat keras grafis, dan memiliki serangkaian asumsi hard-coded yang diketahui tentang bagaimana gamenya. diimplementasikan. Mungkin saja gim ini memiliki banyak gambar tekstur yang perlu dengan cepat ditukar masuk dan keluar dari memori, atau melakukan banyak pencampuran warna dengan cepat untuk menghasilkan efek pencahayaan tertentu. Biasanya yang akan dilakukan gim adalah mengimplementasikan program kecil (disebut "shaders") yang menjelaskan cara melakukan perhitungan ini, dan itu akan dikirim ke GPU untuk dieksekusi. Jika pengemudi tahu bagaimana permainan menggunakan perangkat keras, itu dapat mengatur data dan memilih set instruksi yang melakukan tugas yang diinginkan dengan cara yang meningkatkan throughput dan efisiensi.

Namun, kadang-kadang, setelah produk dikirim, bug mungkin ditemukan di beberapa bagian GPU. Mungkin cukup jelas untuk dilewatkan dalam validasi ketika chip sedang dirancang, tetapi mungkin ditemukan bahwa hal itu menyebabkan beberapa perilaku yang tidak diinginkan atau buggy (atau bahkan crash) dalam permainan tertentu yang menabraknya. Dalam hal ini pengemudi akan mendeteksi keadaan buggy ini dan mengatasinya, baik dengan melepas beberapa perhitungan ke sisi CPU atau mengubah cara pengumpanan data ke GPU sehingga tidak memasuki keadaan ini. Ini, sekali lagi, akan dirilis dalam bentuk pembaruan driver.

Jadi pada dasarnya, itu tidak mengubah kinerja perangkat keras itu sendiri, itu hanya mengubah cara menggunakan perangkat keras, sehingga dapat beroperasi lebih efisien dan cepat pada set data yang sama.


Tentang insinyur pengemudi yang memahami bagaimana sebuah game diimplementasikan, ini membuat saya bertanya-tanya apakah layar splash Nvidia di beberapa game lebih dari sekadar iklan.
Louis

2
@ Louis Ini bukan hanya iklan. Itu karena NVidia memelihara hubungan khusus dengan studio game tertentu dan menawarkan bantuan kepada pengembang untuk mengoptimalkan kode game untuk perangkat keras grafis NVidia. AMD juga melakukan ini (kadang-kadang Anda akan melihat logo AMD dalam sebuah game), tetapi NVidia secara historis memiliki kehadiran yang jauh lebih besar.
Ben Richards

Membaca ini lagi, saya melihat itu adalah jawaban yang bagus dan di mana tanda centang berada. Saya berharap semua jawaban begitu mengajar dalam penjelasan mereka.
Louis

Apakah Anda mengintegrasikan ini ( lebih banyak angka ) sebagai contoh untuk hadiah lain?
Louis

10

"Driver CPU" jarang ada, dan tentu saja tidak sebagai modul yang dapat dimuat. "Driver CPU" sesekali akan diperlukan untuk beberapa variasi kontrol multicore atau penanganan interupsi (mis. AMD dual-core membutuhkan driver WinXP untuk pemanfaatan penuh). Kalau tidak, sebagian besar OS dikonfigurasikan dan dibangun untuk mengakses CPU secara langsung. Jika masalah muncul dan parah, maka kode kernel ditambal dan pembaruan kernel dirilis.

GPU bukan hanya periferal lagi; mereka telah berevolusi menjadi co-prosesor. "Driver GPU" tidak hanya menyediakan akses perangkat, mereka termasuk algoritma pemrosesan (yaitu subprogram grafis) untuk GPU yang dikemas dalam driver. Ukuran "driver" ini adalah giveaway / petunjuk. Algoritma / subprogram inilah yang sedang diperbaiki.


2
Itu menjelaskan mengapa unduhan driver untuk kartu saya lebih dari 200MB sekarang.
Louis

Saya benar-benar ragu ada kode senilai 200 MB pada driver itu. Saya akan terkejut jika itu lebih dari beberapa MB tentang semua algoritma ini. >.>
user541686

1
@Mehrdad karena penasaran, saya membuka installer EXE dengan 7-zip untuk driver Nivida. folder Display.Driver adalah 147 MB, ada satu exe yaitu 31 MB, setiap file lain di atas 660 KB adalah DLL.
Scott Chamberlain

@Scott: Exe itu hampir pasti adalah arsip dari lebih banyak file yang berisi kode aktual . Saya berharap file aktual menjadi beberapa megabita paling banyak ... modulo sumber daya apa pun yang mungkin dikandungnya, yang bukan kode.
user541686

0

Bukan hanya driver, itu GPU itu sendiri. GPU khusus dalam berbagai jenis perhitungan (mis. FFT) dan manipulasi memori. Ia dapat bekerja paralel pada sebagian besar tugas yang diberikan dan membuatnya lebih efektif, daripada CPU tujuan umum.

Dengan pengetahuan yang lebih baik tentang program yang sedang berjalan Anda dapat mengoptimalkan manipulasi memori atau proses perhitungan untuk program ini. GPU sangat fleksibel dalam cara melakukan perhitungan dan melakukan manipulasi memori, sehingga firmware atau driver yang sempurna masih perlu ditulis. ;) Ada banyak ruang untuk perbaikan.

Sebagian besar perangkat lain tidak serba guna dalam penggunaannya. Sebagian besar perangkat keras pada PC harus berjalan dalam spesifikasi itu, ikuti protokol, sehingga driver tidak perlu dioptimalkan.

A, lupa tentang CPU. > _ <CPU dapat dioptimalkan. Sebagian besar model CPU baru memiliki firmware yang dapat diprogram di dalamnya, tetapi peningkatan kinerja tidak sepadan dengan usaha. Ini hanya digunakan untuk memperbaiki kesalahan dalam proses membangun perangkat keras.


"Kebanyakan model CPU baru memiliki firmware yang dapat diprogram di dalamnya," Tolong jelaskan.
Tim
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.