Bagaimana OS X memutuskan kapan harus beralih prosesor grafis?

9

Saya menggunakan MacBook Pro awal 2011 15 "saya untuk hampir semua yang ada di bawah matahari - saya sering memonitor GPU mana yang aktif menggunakan gfxCardStatus . Saya telah memperhatikan beberapa keanehan dalam cara OS X memutuskan kapan harus beralih prosesor grafis:

  • Sebagian besar aplikasi yang memerlukan X11 akan memicu perpindahan otomatis, tetapi tidak semua
  • Tampaknya setiap aplikasi yang membutuhkan java akan memicu perpindahan otomatis, meskipun saya belum mengujinya dengan aplikasi non-GUI.
  • Beberapa aplikasi (seperti Mathematica atau XCode) yang COULD memerlukan GPU berkinerja tinggi akan langsung memaksa perpindahan ke kartu diskrit, bahkan jika hanya digunakan untuk tugas yang sepele (perpindahan dinamis dalam aplikasi akan keren, di luar topik)
  • Banyak aplikasi lawas (silverlight) yang tidak memiliki bisnis yang meminta kartu diskrit saya akan memaksanya tidak dapat digunakan kembali
  • Akhirnya, beberapa aplikasi (GIMP, khususnya) yang pasti dapat memanfaatkan GPU diskrit sebenarnya tidak memintanya sama sekali.

Apakah Apple mendokumentasikan bagaimana ia memilih kapan harus mengganti kartu? Bisakah aplikasi membuat permintaan level-OS untuk kartu diskrit jika ada?

agenroadkill
sumber
Dokumen Pengembang Apple dapat membantu: developer.apple.com/metal
Khürt Williams

Jawaban:

5

Pada tingkat tinggi, ini seperti transmisi otomatis - ketika Anda menekan gas dengan lembut, throttle meningkat tetapi ketika Anda menginjak pedal akselerator, mesin menurunkan transmisi untuk meningkatkan keunggulan mekanis.

Anda dapat memengaruhi pengalihan ke GPU yang kuat dengan memukul API dengan pekerjaan yang signifikan dan mengharapkan "transmisi" untuk mengirimkan beban itu ke GPU yang tidak terintegrasi.

Dokumentasi pada API semuanya dalam Xcode (dan online juga, tapi saya lebih suka menggunakan pencarian di Xcode untuk mencari dokumen).

Saya akan mulai dengan:

Tautan tersebut mencakup Mac Pro dan bagian "Apa yang harus Anda ketahui saat menggunakan OpenCL" berisi catatan bermanfaat bahwa WWDC 2013 Sesi 508: Bekerja dengan OpenCL menjelaskan cara beralih di antara dua GPU di portabel Mac menggunakan pertimbangan daya.

bmike
sumber
Terlihat menarik. Saya akan memeriksa dokumen Xcode saat saya di Mac nanti.
agentroadkill
Jadi untuk menjadi jelas - sepenuhnya tergantung pada pengembang aplikasi untuk memutuskan apakah aplikasi harus menggunakan grafis diskrit atau terintegrasi? OS tidak melakukan panggilan ini sendiri?
agentroadkill
@ agentroadkill saya akan mengatakan sebaliknya - pengembang dapat menanyakan OS apa yang terjadi sekarang dan dapat memengaruhi banyak hal, tetapi OS memutuskan untuk menjadwalkan pekerjaan berdasarkan beberapa input yang saling bertentangan. Lagi pula, Anda mungkin memiliki puluhan aplikasi yang memproses panggilan GPU secara terus menerus.
bmike
Benar, OS akhirnya membuat panggilan, tetapi per artikel yang ditautkan: DeviceSelectCL shows how to identify the offline GPU that is not connected to a display, and then use the CL device corresponding to this GPU.Jadi dev dapat memilih untuk mendorong kerja ke GPU itu, OS akan memutuskan apakah diizinkan dan menengahi itu, tetapi aplikasi dapat mendorong pekerjaannya di sana, sesuka hati.
agentroadkill