首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >监视NVENC硬件(活动或空闲)

监视NVENC硬件(活动或空闲)
EN

Stack Overflow用户
提问于 2013-08-09 14:51:40
回答 2查看 2.5K关注 0票数 0

我们可以使用nvenc硬件查询可用的GPU,如下所示:

代码语言:javascript
复制
     cuResult = cuInit(0);

if (cuResult != CUDA_SUCCESS)
{
    printf(">> GetNumberEncoders() - cuInit() failed error:0x%x\n", cuResult);
    exit(EXIT_FAILURE);
}

checkCudaErrors(cuDeviceGetCount(&deviceCount));

if (deviceCount == 0)
{
    printf(">> GetNumberEncoders() - reports no devices available that support CUDA\n");
    exit(EXIT_FAILURE);
}
else
{
    printf(">> GetNumberEncoders() has detected %d CUDA capable GPU device(s) <<\n", deviceCount);

    for (int currentDevice=0; currentDevice < deviceCount; currentDevice++)
    {
        checkCudaErrors(cuDeviceGet(&cuDevice, currentDevice));
        checkCudaErrors(cuDeviceGetName(gpu_name, 100, cuDevice));
        checkCudaErrors(cuDeviceComputeCapability(&SMmajor, &SMminor, currentDevice));
        printf("  [ GPU #%d - < %s > has Compute SM %d.%d, NVENC %s ]\n",
               currentDevice, gpu_name, SMmajor, SMminor,
               (((SMmajor << 4) + SMminor) >= 0x30) ? "Available" : "Not Available");

        if (((SMmajor << 4) + SMminor) >= 0x30)
        {
            encoderInfo[NVENC_devices].device = currentDevice;
            strcpy(encoderInfo[NVENC_devices].gpu_name, gpu_name);
            NVENC_devices++;
        }
    }
}

我有8个具有NVENC功能的GPU:

我们如何检查特定的NVENC硬件现在正在运行或闲置。有没有办法监控NVENC硬件?

具体的NVENC函数“或”CUDA驱动程序或API函数如何帮助我找出哪个GPU或NVENC硬件是空闲的?

注意:我知道CUDA和NVENC硬件是完全不同的,但是我正在寻找直接或间接(使用Cuda API来指定可用的NVENC硬件)检查特定NVENC状态的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-17 00:57:28

可以使用以下命令间接监视NVENC硬件是否处于活动状态

代码语言:javascript
复制
nvidia-smi 

要查看特定的NVENC硬件是繁忙的还是空闲的,因为当您想要使用特定的NVENC时,您应该首先在该GPU上创建一个cuda线程,并使用它的内存,因此通过检查GPU的状态,我们可以将它扩展到它的NVENC硬件。

票数 2
EN

Stack Overflow用户

发布于 2013-08-09 21:14:31

关于这一问题:

那具体的..。CUDA驱动程序或API函数帮助我找出哪一个..。NVENC硬件是闲置的吗?

根本就没有。

NVENC和CUDA是正交的。访问和管理CUDA的API与访问和管理NVENC的API完全不同。您在这里展示的代码标识了系统中的GPU,并且碰巧使用了CUDA API来实现这一点,但是您的问题与CUDA无关。没有任何CUDA API函数允许您使用NVENC硬件做任何事情。

最终,管理NVENC硬件是使用NVENC的客户端应用程序的责任。如果需要,此客户端应用程序可以很容易地使繁忙/非繁忙状态在上游提供给其他应用程序(因为它知道正在管理的硬件的各个状态。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18149580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档