Cuda 如何获得CUVID设备的GPU架构?

Cuda 如何获得CUVID设备的GPU架构?,cuda,cuvid,nvdec,Cuda,Cuvid,Nvdec,我正在使用NVidia的NvDec CUVID功能实现一个视频解码器。 根据(严重不足)手册第2章,解码限制由GPU架构指定。也就是说,最大h265水平分辨率在GP10x上为8192,在GP100或更低版本上为4096,并且在任何低于GM206的架构上都不受支持 如何使用CUDA检测此类体系结构?我是不是应该从计算能力中推断出来?如果让我来推断一下,是否有一个架构与计算能力的表?虽然没有返回GPU代码名的函数,但NVIDIA提供了cuvidGetDecoderCaps()API,让用户查询底层硬

我正在使用NVidia的NvDec CUVID功能实现一个视频解码器。 根据(严重不足)手册第2章,解码限制由GPU架构指定。也就是说,最大h265水平分辨率在GP10x上为8192,在GP100或更低版本上为4096,并且在任何低于GM206的架构上都不受支持


如何使用CUDA检测此类体系结构?我是不是应该从计算能力中推断出来?如果让我来推断一下,是否有一个架构与计算能力的表?

虽然没有返回GPU代码名的函数,但NVIDIA提供了
cuvidGetDecoderCaps()
API,让用户查询底层硬件视频解码器的能力

可从nvenc下载的
Video\u Codec\u SDK\u x.x
中找到
cuvidGetDecoderCaps()
的详细示例。
Samples/nvedecoded3d11/nvedecoded3d11.cpp
中的一个示例:

CUVIDEOFORMAT videoFormat = g_pVideoSource->format();
CUVIDDECODECAPS videoDecodeCaps = {};
videoDecodeCaps.eCodecType = videoFormat.codec;
videoDecodeCaps.eChromaFormat = videoFormat.chroma_format;
videoDecodeCaps.nBitDepthMinus8 = videoFormat.bit_depth_luma_minus8;
if (cuvidGetDecoderCaps(&videoDecodeCaps) != CUDA_SUCCESS)
{
    printf("cuvidGetDecoderCaps failed: %d\n", result);
    return;
}
if (!videoDecodeCaps.bIsSupported) {
    printf("Error: This video format isn't supported on the selected GPU.");
    exit(1);;
}

第4章介绍了一个
cuvidGetDecoderCaps()
函数,它检测解码器的性能??我怎么会错过呢?因为我只想知道体系结构以了解功能,所以请将您的评论作为答案发布,我会将其标记为正确!事实证明,在SDK的v7中没有这样的功能,但由于我不需要与v7向后兼容,所以我可以(并且确实)升级到8.0并使用它的功能。