0%

laptop-iGPU-dGPU-switch

Optimus切换

2010年左右,英特尔发布了首批核芯显卡,将显示核心集成到CPU中,后来英伟达和AMD都推出了各自的新型智能显卡切换技术(英伟达的叫Optimus,AMD的叫Dynamic Switchable Graphics),解决了上一代切换显卡需要重启、或出现黑屏不顺畅的问题。

Optiums的劣势

  • 使用Optimus无法禁用vsync。
  • 由于独立显卡的图像要经过核芯显卡中转输出,因此独立显卡的性能发挥会受到核芯显卡的制约;而核芯显卡的显存与内存共享,独立显卡的性能发挥还会受到内存速度和带宽的影响。
  • 一些老游戏和没做好适配的游戏在双显卡的笔记本上会出现BUG,这些游戏假设计算机只有一个GPU。当游戏开始时,它会搜索GPU,并首先找到Intel GPU。此后,游戏将只使用英特尔GPU。即使指定Nvidia GPU在Optimus中使用它,游戏仍然会在Intel GPU上运行。比如2008年发布的《侠盗猎车手4》,只能使用核芯显卡,即使右键手动设置使用独显运行也无效,要正常玩耍需要手动替换大神修改好的游戏文件才行。
  • 双显卡智能切换技术需要操作系统的支持,也给其它一些应用场景带来了麻烦。Linux系统并不支持双显卡智能切换技术,导致独立显卡无法使用又不能进入闲置状态,造成空跑耗电和发热。(bumblebee等开源解决方案的稳定性不够高)。
  • 具有可切换Intel / Nvidia显卡(Nvidia Optimus)的笔记本电脑将始终使用英特尔显卡。Optimus的工作方式是Nvidia GPU作为协处理器。如果指定游戏使用Nvidia GPU,它会在Nvidia GPU上呈现完整的帧。然后将完成帧传输到Intel GPU。然后英特尔GPU将其显示在屏幕上(全屏或窗口)。因此,即使游戏使用的是Nvidia GPU,英特尔GPU仍然可以正常工作。这就像让vsync始终打开一样,两个GPU充当两个帧缓冲区。如果在Optimus笔记本电脑上禁用Intel GPU,笔记本电脑将恢复到基本的VGA图形模式,直到重新安装英特尔驱动程序。

Optiums无法禁用iGPU的原因

凡是带有 Optimus 的笔记本是无法关闭 iGPU (intel 核心显卡) 的。因为这个设备的屏幕(LVDS/eDP)是来自于 iGPU 卡的 DAC(广义上的), 而且 HDMI/DisplayPort/VGA /DP over USB 3.1 按照标准方案都是来自 iGPU. 在 Windows 上控制 Optimus 设置的本质是, 让 3D 应用程序在选择 3D API 的执行设备(就比如 DX/OpenGL/OpenCL/Vulkan)的时候选择到偏好的设备上, 然后如果是让 dGPU 渲染, 那么渲染的 frame buffer 就会通过 PCIe 总线传输到 CPU, 交给窗口管理器, 窗口管理器交给 iGPU 进行最终输出. 这个过程会占用 PCIe 的带宽, 并引入延迟.Linux 上可以选择 PCIe 上回传画面的编码格式(jpeg, raw, png 等). 但是MacBook Pro 就是一个例外. MacBook Pro 的 eDP 和 DP(现在集成在 USB-C/Thunderbolt 中) 来自于 iGPU/dGPU, 系统会在纯 iGPU/dGPU 渲染 + iGPU 输出/dGPU 渲染输出 + iGPU 视频加速 这三个情况下切换, 所以集显能被关闭, 也能在独显启动时辅助视频解码. 这些特性都借助于 PCIe/DisplayPort 的分组交换。 dp port MacBook Pro 有两组视频源, 经过 TB 芯片后接到 eDP 屏幕, 然后 Thunderbolt HCI 接到 Thunderbolt PHY, 另外原生输出也可以直接通过 mDP 输出. Thunderbolt3-dp

硬件双模切换

早期的显卡切换技术

核芯显卡尚未诞生的时候,笔记本上的集成显卡和独立显卡互不相容—二者只能启用其一,和台式机类似。给两个显卡都设计与屏幕连接的信号电路,在BIOS里添加一个切换功能,让用户可以选择开机时使用集成显卡还是独立显卡,实现了二者的共存。缺点是需要在BIOS里硬切换显示信号的输出路径,所以每次切换显卡都需要重启电脑,否则会导致黑屏。 mux

MUX switch

近几年游戏本的迅速发展给市场带来了转机,而游戏本的性能发挥十分重要,一些独显的专属特性(G-SYNC等)也要求笔记本的显示屏必须直连到独显才能使用,英特尔也逐渐放松并最终停止了对厂商的施压。因此我们重新看到了越来越多使用第三种整合方案的笔记本,比如几款高端准系统;刚发布新品不久的联想拯救者 Y7000、Y7000p和Y9000K也都采用了这种方案,并最高搭载了1T SSD的固态硬盘,其中Y7000和Y7000p也是近些年首次采用整合方案的中端游戏本。 为了解决optimus所带来的的种种问题,厂商又把MUX加了回来,但是这次MUX负责切换的并不是集显和独显了,而是optimus和独显。 MUX switch的好处是给用户一个选择的余地,既保留了独显输出的特性,又能在需要的时候切换回optimus以省电或者使用异构加成。缺点是需要像传统切换技术一样为核显和独显分别设计与屏幕连接的信号电路,测试也要分两种情况分别执行,增加了人力和物力成本,所以相关产品基本都不便宜。另外用户需要重启或者在BIOS中才能切换。

需要注意的是,显卡切换在不同的产品中会有不同的名称,比如: 对于蓝天: MSHybrid→optimus discrete→独显输出 对于alienware: PEG→独显输出 SG→optimus IGFX→关闭独显 关于MacBook: MacBook有MUX,支持纯集显/纯独显/集显输出独显渲染以及集显辅助视频解码。 和optimus不一样的是,这套体系是通过检测程序是否调用高性能API来决定最终使用的模式,另外在windows下只能使用独显。

如何鉴别optimus与独显输出

  1. 看任务管理器/设备管理器,只有一个独显是独显输出模式,集显和独显同时出现则是optimus模式;
  2. 看鲁大师跑分,有异构分的一定是optimus模式,没有异构分的可能是optimus模式。
  3. 最后看bios选项,有切换选项的是支持多模切换,没有的是optimus/屏蔽集显。