2009-12-11 1 views

답변

3

가능해야합니다.

nVidia 문서에 따르면 via NVCPL.DLL (문서 선호)을 쿼리 할 수 ​​있습니다.

사용할 전화가 NVCPL_API_NUMBER_OF_SLI_GPUS 또는 NVCPL_API_SLI_MULTI_GPU_RENDERING_MODENvCplGetDataInt() (67 페이지)이고 필요한 정보를 얻어야합니다.

이 정보에 액세스하려면 P/Invoke가 필요합니다. 통계적으로 NVCPL.DLL을 연결하는 것이 좋으면 올바른 가져 오기 (정적 외부 메서드)를 만들어야하며 괜찮습니다. 그렇지 않은 경우 LoadLibraryGetEntryPoint 웨이를 선택하고 Marshal 클래스를 사용하여 호출 할 함수를 나타내는 대리자 (올바른 인수로 선언 된)의 인스턴스를 만들 수 있습니다.

편집 :가 은 다음 코드는 당신이 (즉, 완전히 검증되지 않은 당신의 자신의 위험에 그래서 나는, 비록 엔비디아 카드가없는) 시작 수) :

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"); 
    } 
} 
+1

nvcpl API 지금 더 이상 사용되지 않습니다. 이것은 더 이상 작동하지 않습니다 : ( – docdocdoc9