Невозможно получить возможности декодирования с помощью cuvidGetDecoderCaps CUDA SDK

У меня есть сервер с Tesla T4 GPU. Я пытаюсь декодировать видео H264 на GPU. Я использую Cuda SDK для получения CUVIDDECODECAPS (возможности декодирования графического процессора), но он возвращает 0 для MinWidth, MinHeight, MaxWidth, MaxHeight и false для «bIsSupported». т.е. Это оборудование не поддерживает декодирование на 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 SDK видеокодека Nvidia - 11.0.10

Кто-нибудь знает, что я здесь делаю не так?

1 ответ

Каждый 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, если вам необходимо использовать именно этот драйвер.

Другие вопросы по тегам