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 Driver Version: 440.118.02 CUDA Version: 10.2 Nvidia Video codec SDK is 11.0.10

有人知道我在这里做错了什么吗?

每个Nvidia Video SDK都对CUDA SDK和图形驱动程序版本有最低要求。如果你打开SDK网页,你会发现这个信息:

NVIDIA Windows显示驱动程序456.71或更新版本NVIDIA Linux显示驱动程序455.28或更新DirectX SDK(仅限Windows) CUDA 11.0 Toolkit

至少在Linux上,相关的NVENC和NVDEC库是驱动程序发行版的一部分,因此最新的SDK头不能与旧的库一起工作(根据您的驱动程序版本)。如果您必须使用该特定驱动程序,可以下载旧版本的Video SDK。

最新更新