cuda - cuvidGetDecoderCaps CUDA SDK 无法获取解码能力
问题描述
我有一台带有 Tesla T4 GPU 的服务器。我正在尝试在 GPU 上解码 H264 视频。我正在使用 Cuda SDK 来获取 CUVIDDECODECAPS(GPU 的解码能力),但它返回 0 到 MinWidth、MinHeight、MaxWidth、MaxHeight 和 false 到“bIsSupported”。IE。此硬件不支持在 GPU 上解码。但是根据这个链接T4确实支持视频解码。
下面是代码片段。
CUVIDDECODECAPS decodeCaps = {};
decodeCaps.eCodecType = _codec;
decodeCaps.eChromaFormat = _chromaFormat;
decodeCaps.nBitDepthMinus8 = videoFormat.nBitDepthMinus8;
cuSafeCall(cuCtxPushCurrent(ctx_));
cuSafeCall(cuvidGetDecoderCaps(&decodeCaps));
cuSafeCall(cuCtxPopCurrent(NULL));
下面是驱动和cuda版本
NVIDIA-SMI 440.118.02 驱动程序版本:440.118.02 CUDA 版本:10.2 Nvidia 视频编解码器 SDK 为 11.0.10
有谁知道我在这里做错了什么?
解决方案
每个 Nvidia Video SDK 对 CUDA SDK 和图形驱动程序版本的要求最低。如果您打开 SDK 网页,您会发现以下信息:
NVIDIA Windows 显示驱动程序 456.71 或更高版本 NVIDIA Linux 显示驱动程序 455.28 或更高版本 DirectX SDK(仅限 Windows) CUDA 11.0 工具包
至少在 Linux 上,相关的 NVENC 和 NVDEC 库是驱动程序分发的一部分,因此最新的 SDK 标头不能与旧的库一起使用(根据您的驱动程序版本)。如果您必须使用该特定驱动程序,您可以下载旧版本的视频 SDK。
推荐阅读
- javascript - 如何使用一个函数更改所有 :root 变量
- javascript - 在 JavaScript 中的另一个元素的事件侦听器中引用尚未创建的元素
- python - QFileDialog 在 MacOS 上不打开对话窗口
- javascript - GET 请求在开发中有效,而不是在生产中
- node.js - 如何将文件上传到 AWS S3?,执行此操作时出现错误(使用私有存储桶)
- pandoc - 为什么在 LaTeX 转换为纯文本时 Pandoc 不包含摘要?
- r - 查找列表中一个点与每个点之间的距离,返回列表中最近点的距离
- ios - .onDelete 导致崩溃,因为索引不足
- azure-devops - WhiteSource 无法扫描您的存储库。请通过导航到组织设置 > WhiteSource 选项卡连接到您的 WhiteSource 帐户
- javascript - 如何使用 className 在 reactjs 中更改 html 的外观?