ffmpeg - cuda 编码 - OpenEncodeSessionEx 失败:内存不足

Vel*_*Dev 6 gpu ffmpeg x264 multi-gpu

我在使用 GPU (CUDA) 进行 ffmpeg 视频编码时遇到问题。

我有 2 个 nVidia GTX 1050 Ti

当我尝试进行多个并行编码时,问题就出现了。超过 2 个进程和 ffmpeg 像这样死亡:

[h264_nvenc @ 0xcc1cc0] OpenEncodeSessionEx failed: out of memory (10)
Run Code Online (Sandbox Code Playgroud)

问题是 nvidia-smi 显示 gpu 上有很多可用资源:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.66                 Driver Version: 384.66                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 105...  Off  | 00000000:41:00.0 Off |                  N/A |
| 40%   37C    P0    42W /  75W |    177MiB /  4038MiB |     30%      Default |
+-------------------------------+----------------------+----------------------+
|   1  GeForce GTX 105...  Off  | 00000000:42:00.0 Off |                  N/A |
| 40%   21C    P8    35W /  75W |     10MiB /  4038MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
Run Code Online (Sandbox Code Playgroud)

第二个 GPU 似乎根本没有使用,第一个 GPU 上剩余的内存绰绰有余,可以支持第三个文件。

任何想法都会非常有帮助!

p0r*_*che 13

实际上,您的卡是“不合格的”(就 NVIDIA 而言)并且仅支持 2 个同时会话。您可以咨询https://developer.nvidia.com/video-encode-decode-gpu-support-matrix#Encoder或下载 NVENC SDK,其中包含包含合格和不合格 GPU 许可条款的 pdf。有一些禁用会话计数检查的驱动程序补丁,您可以尝试https://github.com/keylase/nvidia-patch