Nvidia GTX 960 至 Grid M40 升级无效

Nvidia GTX 960 至 Grid M40 升级无效

我将 GTX960 升级为 Grid M40 以加速 FFMPEG 编码。我在 CentOS 7 上使用旧 GTX960 时一切正常,结果令我印象深刻,因此购买了 M40。正如您所见,操作系统似乎可以很好地识别该卡:

[root@localhost]~# nvidia-smi
Mon Nov 14 17:59:15 2016       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 367.48                 Driver Version: 367.48                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GRID M40            Off  | 0000:44:00.0     Off |                  N/A |
| 60%   60C    P0    17W /  53W |      0MiB /  4041MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  GRID M40            Off  | 0000:45:00.0     Off |                  N/A |
| 59%   59C    P0    17W /  53W |      0MiB /  4041MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   2  GRID M40            Off  | 0000:46:00.0     Off |                  N/A |
| 40%   41C    P0    16W /  53W |      0MiB /  4041MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   3  GRID M40            Off  | 0000:47:00.0     Off |                  N/A |
|  0%   49C    P0    10W /  53W |      0MiB /  4041MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

我可以运行一些 Nvidia 示例应用程序:

[root@localhost]~/NVIDIA_CUDA-8.0_Samples/1_Utilities/bandwidthTest# ./bandwidthTest 
[CUDA Bandwidth Test] - Starting...
Running on...

 Device 0: GRID M40
 Quick Mode

 Host to Device Bandwidth, 1 Device(s)
 PINNED Memory Transfers
   Transfer Size (Bytes)        Bandwidth(MB/s)
   33554432                     6286.3

 Device to Host Bandwidth, 1 Device(s)
 PINNED Memory Transfers
   Transfer Size (Bytes)        Bandwidth(MB/s)
   33554432                     6441.0

 Device to Device Bandwidth, 1 Device(s)
 PINNED Memory Transfers
   Transfer Size (Bytes)        Bandwidth(MB/s)
   33554432                     64577.1

Result = PASS

但是当我尝试运行 ffmpeg 时,出现此错误:

[hevc_nvenc @ 0x290e500] No NVENC capable devices found
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> hevc (hevc_nvenc))
  Stream #0:1 -> #0:1 (copy)
Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height

我尝试卸载 nvidia 驱动程序和 cuda 并重新安装它们,甚至重新编译了 ffmpeg,但错误仍未消失。为了好玩,我还尝试了 Nvidia Quadro K2200,结果相同。有什么想法吗?

答案1

我想我已经找到答案了。我在这里看到Stream #0:0 -> #0:0 (h264 (native) -> hevc (hevc_nvenc))你试图从原生 h.264 输入转换为 h.265 (hevc) 输出。我不认为 GM107(你的 M40 基于的早期 Maxwell 芯片,其中有四个成员)支持H.265编码根据该兼容性列表,您应该能够通过尝试从 h.264 到 MPEG-4 的转码来验证这一点 - 如果它有效,那么您就知道可能没有其他问题,只是您没有合适的硬件来完成这项工作。

根据相同的兼容性列表,您的 GTX 960 及其最新 Maxwell 芯片 (GM206) 将能够很好地支持 h.265。

相关内容