Saat ini banyak laptop datang dengan 2 GPU - yang berkinerja tinggi dan yang hemat daya (kurang kuat). Sebagian besar aplikasi, yang saya gunakan pada laptop saya berjalan dengan GPU terintegrasi (hemat daya), tetapi masih ada beberapa yang dibuka dengan kartu berkinerja tinggi. Saya mencoba mengonfigurasi aplikasi yang sedang saya buat agar berjalan pada GPU kinerja tinggi secara default, tetapi saya tidak dapat menemukan informasi tentang topik di mana pun. Saya harap seseorang dapat sedikit menjelaskan hal ini. Saya akan mendistribusikan aplikasi saya dengan installer NSIS dan saya kira saya harus menambahkan jalur aplikasi saya ke daftar aplikasi untuk kartu NVidia / ATI. Aplikasi ini diprogram dalam C #. Juga, apakah ada yang tahu bagaimana keadaan dengan PC desktop? Apa yang terjadi jika PC memiliki 2 GPU dan saya harus memilih yang lebih kuat?
Milcho
NvOptimusEnablement
trik Optimus ini , tetapi seharusnya saya tahu. Kedengarannya seperti hal baru (driver 302.x +) Terima kasih.Secara umum, Anda tidak bisa.
Driver dual-GPU menyembunyikan dua GPU di belakang antarmuka tunggal, sehingga solusi seperti Nathan Reed biasanya tidak bekerja di pengaturan dual-GPU berkecepatan tinggi / daya rendah yang paling umum.
Pilihan GPU harus ditangani oleh pengemudi dengan cara tertentu. Dengan NVIDIA Optimus, Anda biasanya memperbarui profil Optimus untuk menambahkan aplikasi ke daftar aplikasi yang menggunakan GPU diskrit, umumnya dengan mengklik kanan EXE dan mengklik Properties. Anda juga dapat menggunakan beberapa panggilan yang sangat spesifik untuk Optimus. sesuai jawaban mh01. Dengan pengaturan AMD, ini sangat berbeda.
Pada sistem lain, ada saklar perangkat keras atau bendera OS untuk memutuskan GPU mana yang aktif. Sekali lagi, aplikasi tidak memiliki kendali atas GPU mana yang digunakan.
Ini adalah sesuatu yang saya benar-benar berharap "diperbaiki" dalam pembaruan DirectX di masa depan. Idealnya kedua GPU akan disebutkan seperti yang disarankan Nathan dan kemudian akan ada petunjuk untuk menunjukkan mana dari mereka yang dimaksudkan untuk berkecepatan tinggi atau berdaya rendah, sehingga aplikasi dapat secara cerdas memilih yang tepat atau bahkan mengganti perangkat yang digunakan berdasarkan apa pun faktor (katakanlah, membiarkan browser web memilih tergantung pada memuat WebGL).
sumber
Anda harus dapat menghitung GPU pada sistem dan memilih GPU mana yang akan digunakan ketika aplikasi Anda mulai. Anda tidak menyebutkan API mana yang Anda gunakan, tetapi misalnya di D3D11 Anda akan menggunakan IDXGIFactory :: EnumAdapters untuk mendapatkan daftar GPU dan mengirimkan yang Anda inginkan ke D3D11CreateDevice .
DXGI dapat memberi Anda beberapa informasi terbatas tentang GPU, seperti string deskripsi, ID vendor, dan ID perangkat. Saya kira Anda dapat menggunakan informasi ini untuk mengetahui GPU mana yang berkinerja tinggi, tetapi Anda harus membangun semacam basis data GPU, atau mencoba menggunakan beberapa heuristik untuk menebak. Atau Anda bisa membiarkan pengguna memilih GPU mana yang akan digunakan saat startup.
sumber