2017-11-27 13 views
1

AleaGPU에서 GPU 코드를 실행하기 전에 GPU가 있는지 감지 할 수 있습니까?GPU가 AleaGpu에서 사용 가능한지 감지하십시오.

Gpu.Default이 null입니까? 이 개체에 확인할 수있는 속성이 있습니까?

기본적으로 GPU가있는 경우 더 빠른 버전의 알고리즘을 실행하고 그렇지 않으면 원래의 느린 버전을 실행하려고합니다.

답변

1

내가 장애인 내 GPU는 다음이 줄 시도가 :

Console.WriteLine(Alea.Device.Devices.Count().ToString()); 

을 그리고 난이 예외 System.Exception was unhandled Message=[CUDAError] CUDA_ERROR_UNKNOWN를 가지고와 Gpu.Default에 액세스하려고하면 같은 예외가 발생합니다. 나는 GPU가 있기 때문에 Alea가 예외를 던져하지만 장애인이라면 나는 확실하지 않다, 또는 '아무튼 기계와 같은 방식으로 작동합니다 :

bool GpuEnabled = false; 
try 
{ 
    GpuEnabled = Alea.Device.Devices.Count() > 0; 
} 
catch 
{ 
    GpuEnabled = false; 
} 
Console.WriteLine(GpuEnabled.ToString()); 

참고 : 그래서 당신은 이런 식으로 뭔가를 할 수 어쨌든이 코드는 두 가정을 모두 안전하게 처리해야합니다.

0

이 아마 가장 쉬운 방법입니다 : (그것은 당신이 API 무관하게)

var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_DisplayConfiguration"); 

var q = searcher.Get() 
       .SelectMany(x => x.Properties) 
       .Where(x => x.Name == "Description") 

foreach (var item in q) 
{ 
    yield return item.Value.ToString(); 
}