学习记录
环境
- Win 10
- Premiere Pro cc2019
- NVIDIA GeForce 940MX
- 导出视频大小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中只用OpenCL和仅软件两个选项。
我对两种模式进行对比,同一个视频OpenCL需要7m的时间,而仅软件却预计30m多(时间过长,没有实测)。
这就更加令我好奇CUDA模式下的速度了。
尝试的过程
- 首先,我怀疑是因为NVIDIA的设置有问题,所以我使用NVIDIA的控制面板,将PR的3D设置都打开。重启PR没有作用。
- 其次,我怀疑是由于核显屏蔽了独显,于是我在设备管理器中将核显禁用,结果连OpenCL都没有了。
- 再次,使用NVIDIA Experience软件更新驱动程序,显示驱动已是最新版本。
- 使用PR的
GPUSniffer.exe
嗅探GPU,得到独显没有工作的原因。
* Not chosen because of old driver.
输出内容的查看见另一篇文章。阻止exe命令行文件执行完自动关闭. - 考虑到显卡的性能弱,是不是对CUDA的功能并不支持,查阅了NVIDIA的官网,明确显示支持CUDA。
图片来源. - 同时查阅了CUDA的支持设备。
图片来源.
支持940M,940MX是940的升级版,理论上也应该支持。 - 在NVIDIA的官网上查询了驱动,940MX的Game Driver有422的版本,而Studio Driver的最新版本缺失。
- 在设备管理器中查看了NVIDIA的驱动,版本是2017年的。估计原因在驱动太老。更新了NVIDIA Experience,在NVIDIA Experience中将驱动更新为最新版本,成功。
总结上面的废话,更新驱动。
效果
项目设置中的CUDA选项出来了。
选中并导出视频。
预计时间 3m30s,实际使用时间5m45s。
因为这个时间不是逐秒递减的,有时候还不断增加。
通过任务管理器的性能可以看到,核显、独显和CPU都在工作。核显占用率约50%,独显占用率几乎100%,CPU占用率不是很高,只用百分之三十多。但这些数据不是保持不变的,CPU最高时也会达到100%,有部分时间占用率达80%以上。
总结
对比3种不同模式。
效果 | 仅软件 | OpenCL | CUDA |
---|---|---|---|
时间 | 30m(预计) | 7m | 5m40s |
设备占用 | CPU(100%) | CPU(100%)+核显(100%) | CPU(30%-80%大幅波动)+核显(50%波动)+独显(100%) |
总的来说,有加速比仅软件要好,OpenCL对CPU的占用率很高,而CUDA能释放CPU的一部分工作,同时能充分利用独显的性能。
当然,在中间的过程中,并没有严格的控制变量,所以对问题只是定性分析,并非定量分析。
很多概念我也不是特别清楚,如有错误,欢迎指正。