首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在.NET 3.5 C#中,是否有一种方法可以检测NVIDIA SLI模式是否处于活动状态

在.NET 3.5 C#中,是否有一种方法可以检测NVIDIA SLI模式是否处于活动状态
EN

Stack Overflow用户
提问于 2009-12-12 03:48:56
回答 1查看 772关注 0票数 3

对于NVIDIA显卡,可以有两个作为一个工作(SLI)。对于.NET桌面应用程序,我需要能够检查是否启用了SLI。这个是可能的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-12-12 04:06:23

这应该是可能的。

根据nVidia文档,您可以查询此via NVCPL.DLL (喜欢文档)。

要使用的调用是NvCplGetDataInt() (第67页),使用参数NVCPL_API_NUMBER_OF_SLI_GPUSNVCPL_API_SLI_MULTI_GPU_RENDERING_MODE应该可以获得所需的信息。

为了访问此信息,您需要使用P/Invoke。如果可以从统计上链接NVCPL.DLL,那么只需创建正确的导入(静态外部方法)就可以了。否则,您还可以选择LoadLibraryGetEntryPoint方式,并使用Marshal类创建代表要调用的函数的委托(使用正确的参数声明)的实例。

编辑:以下代码片段可能会帮助您入门(虽然我没有nVidia卡,因此完全未经测试,风险自负; ):

代码语言:javascript
运行
复制
public const int NVCPL_API_NUMBER_OF_GPUS =7;    // Graphics card number of GPUs. 
public const int NVCPL_API_NUMBER_OF_SLI_GPUS = 8;    // Graphics card number of SLI GPU clusters available. 
public const int NVCPL_API_SLI_MULTI_GPU_RENDERING_MODE = 9;    // Get/Set SLI multi-GPU redering mode.  

[DllImport("NVCPL.DLL", CallingConvention=CallingConvention.Cdecl)]
public static extern bool nvCplGetDataInt([In] int lFlag, [Out] out int plInfo);

public static void Main()   {
    int sliGpuCount;
    if (nvCplGetDataInt(NVCPL_API_NUMBER_OF_SLI_GPUS, out sliGpuCount)) {
        // we got the result
        Console.WriteLine(string.Format("SLI GPU present: {0}", sliGpuCount));
    } else {
        // something did go wrong
        Console.WriteLine("Failed to query NV data");
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1890456

复制
相关文章

相似问题

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