public static async Task <(string rawOutput, OpenCLDeviceDetectionResult parsed)> TryQueryOpenCLDevicesAsync() { Logger.Info(Tag, "TryQueryOpenCLDevicesAsync START"); var result = await DeviceDetectionPrinter.GetDeviceDetectionResultAsync <OpenCLDeviceDetectionResult>("ocl -n", 60 * 1000); Logger.Info(Tag, "TryQueryOpenCLDevicesAsync END"); return(result); }
public static async Task <(string rawOutput, CudaDeviceDetectionResult parsed)> TryQueryCUDADevicesAsync(bool useNvmlFallback) { var execStr = useNvmlFallback ? "cuda -n -nvmlFallback" : "cuda -n"; Logger.Info(Tag, $"TryQueryCUDADevicesAsync START {execStr}"); var result = await DeviceDetectionPrinter.GetDeviceDetectionResultAsync <CudaDeviceDetectionResult>(execStr, 30 * 1000); Logger.Info(Tag, $"TryQueryCUDADevicesAsync END {execStr}"); return(result); }
public static async Task <(string rawOutput, CpuID parsed)> TryQueryCPUDevicesAsync() { var execStr = "cpu -n"; Logger.Info(Tag, $"TryQueryCUDADevicesAsync START {execStr}"); var result = await DeviceDetectionPrinter.GetDeviceDetectionResultAsync <CpuID>(execStr, 30 * 1000); Logger.Info(Tag, $"TryQueryCUDADevicesAsync END {execStr}"); return(result); }
// if we get multiple platforms copy the OpenCL.dll to nhml root public static async Task <(string rawOutput, OpenCLDeviceDetectionResult parsed)> TryQueryOpenCLDevicesAsyncFallback() { Logger.Info(Tag, "TryQueryOpenCLDevicesAsyncFallback START"); try { Logger.Info(Tag, "TryQueryOpenCLDevicesAsyncFallback trying to copy OpenCL.dll"); File.Copy(Paths.RootPath("OpenCL", "OpenCL.dll"), Paths.Root, true); } catch (Exception e) { Logger.Error(Tag, $"TryQueryOpenCLDevicesAsyncFallback trying to copy OpenCL.dll error: {e.Message}"); } var result = await DeviceDetectionPrinter.GetDeviceDetectionResultAsync <OpenCLDeviceDetectionResult>("ocl -n", 60 * 1000); Logger.Info(Tag, "TryQueryOpenCLDevicesAsyncFallback END"); return(result); }