В .NET 3.5 C#, есть ли способ обнаружить, активен ли NVIDIA SLI -режим

StackOverflow https://stackoverflow.com/questions/1890456

  •  19-09-2019
  •  | 
  •  

Вопрос

Для графических карт NVIDIA вы можете провести две работы как один (SLI). Для настольного приложения .NET мне нужно убедиться, что SLI включен. Это возможно?

Это было полезно?

Решение

Это должно быть возможно.

Согласно документам Nvidia, вы можете запросить это через nvcpl.dll (любил документацию).

Призыв к использованию NvCplGetDataInt() (стр. 67), с аргументом NVCPL_API_NUMBER_OF_SLI_GPUS или же NVCPL_API_SLI_MULTI_GPU_RENDERING_MODE Вы должны получить требуемую информацию.

В Oder, чтобы получить доступ к этой информации, вам понадобится P/Invoke. Если это нормально для статистической ссылки NVCPL.DLL Вам просто нужно создать правильный импорт (статический внешний метод), и все в порядке. В противном случае вы также можете выбрать LoadLibrary а также GetEntryPoint способ и используйте Marshal Класс для создания экземпляра делегата (объявленного правильными аргументами), который представляет функцию, которую следует вызвать.

Редактировать:Следующий фрагмент может начать вас (хотя у меня нет карты nvidia, так что это полностью непроверено и на вашем собственном риске;)):

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");
    }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top