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);
        }
예제 #2
0
        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);
        }