【问题标题】:ffmpeg nvenc GPU Memory Usageffmpeg nvenc GPU 内存使用情况
【发布时间】:2016-06-17 22:13:08
【问题描述】:

我在 Ubuntu 的 NVIDIA QUADRO K4200 上转码视频(ffmpeg 版本是 2.7.1,NVENC SDK 5.0.1)。一个流的 GPU 内存使用量为 100 MB。请查看 nvidia-smi 命令的输出:

但是当我在另一台具有 NVIDIA GTX 980 TI 的计算机上使用相同的 ffmpeg 参数运行相同的转码过程时(ffmpeg 版本是 3.0,NVENC SDK 5.0.1)那么一个流的 GPU 内存使用量为 170 MB。请看下面的截图:

为什么内存使用量会有如此大的差异?我可以像在 QUADRO K4000 上一样将 GTX 980 TI 上的 GPU 内存使用量减少到 100MB 吗?

【问题讨论】:

  • 您能否使用一致的 ffmpeg 版本测试此结果并重新发布结果?
  • 感谢您的评论。我尝试了 ffmpeg 3.0 和 NVENC SDK 6.0,得到了相同的结果。

标签: ffmpeg gpu nvidia transcoding nvenc


【解决方案1】:

你的答案:

在 Quadro 和 Tesla GPU 上,最大同时 NVENC 会话的数量是无限的,因此,这些平台通常会为相同的工作单元产生较低的驱动程序开销。

考虑到与 NVCUVENC(使用您的 CUDA 内核对基本视频流进行编码)不同,NVENC 是一个基于硬件的专用硅知识产权内核 (SIP) 也是明智的,如果您要比较不同的驱动程序和平台版本,所有其他因素保持不变,您的里程将始终变化。

感谢和问候,

Brainiarc7.

【讨论】:

  • 谢谢!找了好久这个问题的答案。
  • 不客气。如有任何关于 NVENC 的问题,请随时问我。
  • 我注意到 QUADRO K4200 中的一个 NVENC 进程需要 100MB 的视频内存,但 GTX 650 中的一个 NVENC 进程在相同的 FFmpeg 设置下只需 82MB。你知道为什么会有这样的差异吗? GTX 650 中的最大同时 NVENC 会话数是有限的,与 K4200 相比,它应该会产生更大的驱动程序开销。
  • 如上一部分所述,您的里程可能会有所不同,主要是因为设备驱动程序有自己的开销(即使通过 SMI 完成利用率测量)。由于上述限制,在所有其他因素保持不变的情况下,比较两个不同 SKU 的相同工作负载的利用率总是会出现差异。
  • 顺便说一句,Nvidia Quadro K4200 在渲染性能上与 Nvidia GeForce GTX 760 相似(在比较单个会话编码时,最有可能是 NVENC)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-12
  • 2017-10-15
  • 1970-01-01
  • 2017-03-18
  • 2019-07-14
  • 2018-06-07
相关资源
最近更新 更多