我正在使用NVIDIA GPU (NVENC)中的硬件编码器进行H264编码。我得到了正确的输出,但我无法启动超过140个编码流。(一个流执行一个视频编码)
我得到的错误是,当错误发生时,应用程序的"NV_ENC_OUT_OF_MEMORY".The内存使用量远远小于总可用内存: 600MB (320X240) 2.5 8GB (640x480)6 8GB(1280x710)(在Quadro M5000中为8 8GB)。
对于比特流分配,NV_ENC_CREATE_BITSTREAM_BUFFER的大小大于单个帧大小,并且memoryHeap类型被缓存。
测试机器配置如下: Debian Linux8.5 Intel Xeon E5 @2.60 GHz Nvidia Quadro M5000 CUDA7.5,驱动程序352.39
对解决方案的任何建议/方向都将不胜感激。耽误您时间,实在对不起。
发布于 2018-07-19 03:36:06
NVENC在GPU中的离散硅IP核心(SIP)块上运行,而不是在GPU的着色器上运行。该SIP块具有硬编码限制(在固件中设置),以确保那些需要比人为限制更多的人购买特斯拉级别的硬件。
由NVIDIA提供的营销技巧。
你可以在这里使用Keylase的nvidia补丁来覆盖这个限制:https://github.com/keylase/nvidia-patch
此外,还可以查看会话限制:https://developer.nvidia.com/video-encode-decode-gpu-support-matrix
https://stackoverflow.com/questions/41093719
复制相似问题