PR渲染只使用核显,不使用独显的解决方法

时间:2024-04-02 22:23:43

学习记录

环境

  1. Win 10
  2. Premiere Pro cc2019
  3. NVIDIA GeForce 940MX
  4. 导出视频大小53M,格式MP4

起源

在使用PR导出视频时,意外发现,CPU和核显的占用率都是100%,但独显占用率几乎为0,只有微小的跳动。也就是说独显虽然能工作,但是对视频渲染没有起到作用。
虽然说NVIDIA GeForce 940MX只是笔记本的入门显卡,甚至有的网友评论“关闭独显以提高性能”,但是,独显也应该起到一定的作用。
在后面的百度中,我了解到PR的渲染有3种不同的模式。

  • Mercury Playback Engine GPU加速(CUDA)
  • Mercury Playback Engine GPU加速(OpenCL)
  • 仅Mercury Playback Engine软件
    OpenCL是使用CPU+核显的模式。
    CUDA是有独显时的模式。
    仅软件是没有显卡的默认模式选项。
    PR渲染只使用核显,不使用独显的解决方法
    我的PR中只用OpenCL和仅软件两个选项。
    我对两种模式进行对比,同一个视频OpenCL需要7m的时间,而仅软件却预计30m多(时间过长,没有实测)。
    这就更加令我好奇CUDA模式下的速度了。

尝试的过程

  • 首先,我怀疑是因为NVIDIA的设置有问题,所以我使用NVIDIA的控制面板,将PR的3D设置都打开。重启PR没有作用。
  • 其次,我怀疑是由于核显屏蔽了独显,于是我在设备管理器中将核显禁用,结果连OpenCL都没有了。
  • 再次,使用NVIDIA Experience软件更新驱动程序,显示驱动已是最新版本。
  • 使用PR的GPUSniffer.exe嗅探GPU,得到独显没有工作的原因。
    * Not chosen because of old driver.
    PR渲染只使用核显,不使用独显的解决方法
    输出内容的查看见另一篇文章。阻止exe命令行文件执行完自动关闭.
  • 考虑到显卡的性能弱,是不是对CUDA的功能并不支持,查阅了NVIDIA的官网,明确显示支持CUDA。
    PR渲染只使用核显,不使用独显的解决方法
    图片来源.
  • 同时查阅了CUDA的支持设备。
    PR渲染只使用核显,不使用独显的解决方法
    图片来源.
    支持940M,940MX是940的升级版,理论上也应该支持。
  • 在NVIDIA的官网上查询了驱动,940MX的Game Driver有422的版本,而Studio Driver的最新版本缺失。
  • 在设备管理器中查看了NVIDIA的驱动,版本是2017年的。估计原因在驱动太老。更新了NVIDIA Experience,在NVIDIA Experience中将驱动更新为最新版本,成功。

总结上面的废话,更新驱动

效果

项目设置中的CUDA选项出来了。
PR渲染只使用核显,不使用独显的解决方法
选中并导出视频。
预计时间 3m30s,实际使用时间5m45s。
因为这个时间不是逐秒递减的,有时候还不断增加。
PR渲染只使用核显,不使用独显的解决方法
通过任务管理器的性能可以看到,核显、独显和CPU都在工作。核显占用率约50%,独显占用率几乎100%,CPU占用率不是很高,只用百分之三十多。但这些数据不是保持不变的,CPU最高时也会达到100%,有部分时间占用率达80%以上。
PR渲染只使用核显,不使用独显的解决方法

总结

对比3种不同模式。

效果 仅软件 OpenCL CUDA
时间 30m(预计) 7m 5m40s
设备占用 CPU(100%) CPU(100%)+核显(100%) CPU(30%-80%大幅波动)+核显(50%波动)+独显(100%)

总的来说,有加速比仅软件要好,OpenCL对CPU的占用率很高,而CUDA能释放CPU的一部分工作,同时能充分利用独显的性能。

当然,在中间的过程中,并没有严格的控制变量,所以对问题只是定性分析,并非定量分析。
很多概念我也不是特别清楚,如有错误,欢迎指正。