It should be possible.
According to nVidia docs, you can request this via NVCPL.DLL (liked the documentation).
The call used NvCplGetDataInt()(page 67), with the argument NVCPL_API_NUMBER_OF_SLI_GPUSor NVCPL_API_SLI_MULTI_GPU_RENDERING_MODEyou should get the required information.
, P/Invoke. NVCPL.DLL, ( ), . LoadLibrary GetEntryPoint Marshal ( ), .
Edit:
( nVidia, ;)):
public const int NVCPL_API_NUMBER_OF_GPUS =7;
public const int NVCPL_API_NUMBER_OF_SLI_GPUS = 8;
public const int NVCPL_API_SLI_MULTI_GPU_RENDERING_MODE = 9;
[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)) {
Console.WriteLine(string.Format("SLI GPU present: {0}", sliGpuCount));
} else {
Console.WriteLine("Failed to query NV data");
}
}