En .NET 3.5 C#, ¿hay alguna forma de detectar si el modo NVIDIA SLI está activo

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

  •  19-09-2019
  •  | 
  •  

Pregunta

Para las tarjetas gráficas NVIDIA, puede tener dos trabajando como uno (SLI). Para una aplicación de escritorio .NET, necesito poder verificar que SLI esté habilitado. es posible?

¿Fue útil?

Solución

Eso debería ser posible.

Según los documentos de Nvidia, puede consultar esto a través de nvcpl.dll (Me gustó la documentación).

La llamada a ser utilizada es NvCplGetDataInt() (página 67), con el argumento NVCPL_API_NUMBER_OF_SLI_GPUS o NVCPL_API_SLI_MULTI_GPU_RENDERING_MODE Debe obtener la información requerida.

En Oder para acceder a esta información, necesitará P/Invoke. Si está bien vincular estadísticamente NVCPL.DLL Solo tiene que crear la importación correcta (método externo estático) y está bien. De lo contrario, también puede elegir el LoadLibrary y GetEntryPoint camino y usar el Marshal clase para crear una instancia de un delegado (declarado con los argumentos correctos) que representa la función a llamar.

Editar:El siguiente fragmento puede hacer que comience (sin embargo, no tengo una tarjeta NVIDIA, por lo que eso es completamente no probado y bajo su propio riesgo;)):

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");
    }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top