3

我正在使用 NVIDIA GPU (NVENC) 中的硬件编码器进行 H264 编码。我得到了正确的输出,但我无法启动超过 140 个编码流。(一个流执行一个视频编码)

我得到的错误是“NV_ENC_OUT_OF_MEMORY”。发生错误时应用程序的内存使用量远低于可用的总内存:Quadro M5000 中 8GB 中的 600MB (320X240) 2.5GB(640X480) 6GB(1280X710)。

对于比特流分配,NV_ENC_CREATE_BITSTREAM_BUFFER 的大小大于单个帧大小,并且 memoryHeap 类型为 CACHED。

以下是测试机配置:Debian Linux 8.5 Intel Xeon E5 @2.60 GHz Nvidia Quadro M5000 CUDA 7.5,驱动程序 352.39

任何解决方案的建议/方向将不胜感激。谢谢你的时间。

4

1 回答 1

3

NVENC 在 GPU 中的离散硅 IP 核 (SIP) 块上运行,而不是在 GPU 的着色器上运行。该 SIP 块具有硬编码限制(在固件中设置),以确保那些需要超过人为限制的人购买特斯拉级硬件。

英伟达的营销骗局。

您可以在此处使用 Keylase 的 nvidia 修补程序来覆盖此限制:https ://github.com/keylase/nvidia-patch

另外,请参阅会话限制:https ://developer.nvidia.com/video-encode-decode-gpu-support-matrix

于 2018-07-18T19:36:06.003 回答