在使用AleaGPU运行GPU代码之前,是否能够检测到GPU是否存在?
Gpu.Default是否为空?此对象上是否有可检查的属性?
如果GPU存在,我基本上希望运行一个更快的算法版本,否则我想运行最初的慢速版本。
发布于 2017-12-24 22:01:18
我已经禁用了我的GPU,然后尝试了这一行:
Console.WriteLine(Alea.Device.Devices.Count().ToString());我得到了这个异常System.Exception was unhandled Message=[CUDAError] CUDA_ERROR_UNKNOWN,如果您尝试访问Gpu.Default,您也会得到相同的异常。所以你可以这样做:
bool GpuEnabled = false;
try
{
GpuEnabled = Alea.Device.Devices.Count() > 0;
}
catch
{
GpuEnabled = false;
}
Console.WriteLine(GpuEnabled.ToString());注意:我不确定Alea是否抛出了一个异常,因为我有一个GPU,但是它被禁用了,或者它的行为方式与一台根本没有GPU的机器一样,无论如何,这段代码应该安全地处理这两个假设。
发布于 2017-11-28 14:36:19
这可能是最简单的方法:(它使您的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();
}https://stackoverflow.com/questions/47503804
复制相似问题