OS X ตัดสินใจอย่างไรเมื่อจะเปลี่ยนโปรเซสเซอร์กราฟิก


9

ฉันใช้ MacBook Pro ช่วงต้นปี 2011 15 "สำหรับเกือบทุกอย่างภายใต้ดวงอาทิตย์ - ฉันมักจะตรวจสอบว่า GPU ใช้งานอยู่โดยใช้gfxCardStatusฉันสังเกตเห็นนิสัยแปลก ๆ ในการที่ OS X ตัดสินใจว่าจะสลับโปรเซสเซอร์กราฟิกเมื่อใด:

  • แอปส่วนใหญ่ที่ต้องใช้ X11 จะทริกเกอร์การสลับอัตโนมัติ แต่ไม่ใช่ทั้งหมด
  • ดูเหมือนว่าทุกแอพที่ต้องใช้จาวาจะทริกเกอร์การสลับอัตโนมัติแม้ว่าฉันจะไม่ได้ทดสอบกับแอพที่ไม่ใช่ GUI
  • แอพบางตัว (เช่น Mathematica หรือ XCode) ซึ่ง COULD ต้องการ GPU ที่มีประสิทธิภาพสูงจะบังคับให้เคลื่อนที่ไปยังการ์ดที่แยกจากกันทันทีแม้ว่าจะเป็นเพียงเรื่องเล็กน้อยสำหรับงานที่ไม่สำคัญ (การสลับในแอปแบบไดนามิกจะเจ๋ง)
  • แอปรุ่นเก่าจำนวนมาก (Silverlight) ที่ไม่มีธุรกิจขอการ์ดแยกของฉันจะบังคับให้มันไม่ลงรอยกัน
  • ในที่สุดแอพบางตัว (โดยเฉพาะอย่างยิ่ง GIMP) ซึ่งสามารถได้รับประโยชน์จาก GPU ที่แยกจากกันจริงๆแล้วไม่ขอเลย

Apple มีเอกสารอย่างไรเมื่อเปลี่ยนการ์ด แอพสามารถส่งคำขอระดับ OS สำหรับการ์ดแยกได้หรือไม่ถ้ามี


เอกสารนักพัฒนาของ Apple อาจช่วยได้: developer.apple.com/metal
Khürt Williams

คำตอบ:


5

ในระดับสูงมันเป็นเหมือนเกียร์อัตโนมัติ - เมื่อคุณกดแก๊สเบา ๆ คันเร่งจะเพิ่มขึ้น แต่เมื่อคุณเหยียบคันเร่งเครื่องยนต์จะลดเกียร์ลงเพื่อเพิ่มความได้เปรียบเชิงกล

คุณสามารถมีอิทธิพลต่อการสลับไปใช้ GPU ที่มีประสิทธิภาพโดยการกดปุ่ม API ด้วยการทำงานที่สำคัญและคาดหวังว่า "การส่ง" เพื่อส่งโหลดนั้นไปยัง GPU ที่ไม่รวม

เอกสารเกี่ยวกับ API ทั้งหมดนั้นอยู่ใน Xcode (และออนไลน์ด้วย แต่ฉันชอบใช้การค้นหาบน Xcode เพื่อตามหาเอกสาร)

ฉันจะเริ่มต้นด้วย:

ลิงก์เหล่านั้นครอบคลุมถึง Mac Pro และส่วน "สิ่งที่คุณควรรู้เมื่อใช้งาน OpenCL" ประกอบด้วยหมายเหตุที่เป็นประโยชน์ที่ WWDC 2013 เซสชัน 508: การทำงานกับ OpenCL อธิบายวิธีสลับระหว่าง GPU สองตัวในเครื่องพกพา Mac โดยคำนึงถึงการใช้พลังงาน


ดูน่าสนใจ ฉันจะตรวจสอบเอกสาร Xcode เมื่อฉันใช้ Mac ของฉันในภายหลัง
agentroadkill

ดังนั้นเพื่อความชัดเจน - ทั้งหมดขึ้นอยู่กับผู้พัฒนาแอปพลิเคชันในการตัดสินใจว่าแอปควรใช้กราฟิกแยกหรือรวมหรือไม่ ระบบปฏิบัติการไม่ทำการโทรด้วยตัวเอง?
agentroadkill

@agentroadkill ฉันจะบอกว่าตรงกันข้าม - ผู้พัฒนาสามารถถามระบบปฏิบัติการว่าเกิดอะไรขึ้นตอนนี้และสามารถมีอิทธิพลต่อสิ่งต่าง ๆ ได้ แต่ระบบปฏิบัติการกำลังตัดสินใจที่จะกำหนดเวลาการทำงานโดยอิงจากอินพุตที่ขัดแย้งกันหลายประการ ท้ายที่สุดคุณอาจมีการเรียก GPU ของแอพอย่างต่อเนื่อง
bmike

ใช่แล้วท้ายที่สุดระบบปฏิบัติการจะทำการโทร แต่ตามบทความที่เชื่อมโยง: 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.ดังนั้นผู้พัฒนาจึงสามารถเลือกที่จะผลักดันงานให้กับ GPU นั้นได้ระบบปฏิบัติการจะตัดสินใจว่าจะอนุญาตหรือไม่และตัดสินว่าเป็นเช่นนั้นหรือไม่
agentroadkill
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.