private static ONNX.SessionOptions CreateOptionsDirectML(int deviceId) { if (!GetProviders().Contains("DmlExecutionProvider")) { throw new InvalidOperationException("DirectML device not supported"); } var options = new ONNX.SessionOptions(); options.AppendExecutionProvider_DML(deviceId); return(options); }
private static ONNX.SessionOptions _CreateOptionsDevice(int deviceId) { var options = new ONNX.SessionOptions(); var providers = ONNX.OrtEnv.Instance().GetAvailableProviders(); if (providers.Any(item => item == "DmlExecutionProvider")) { options.AppendExecutionProvider_DML(0); } return(options); // return ONNX.SessionOptions.MakeSessionOptionWithCudaProvider(0); // return ONNX.SessionOptions.MakeSessionOptionWithTensorrtProvider(0); /* * var options = new ONNX.SessionOptions(); * * options = new ONNX.SessionOptions * { * LogSeverityLevel = ONNX.OrtLoggingLevel.ORT_LOGGING_LEVEL_INFO, * GraphOptimizationLevel = ONNX.GraphOptimizationLevel.ORT_ENABLE_ALL, * ExecutionMode = deviceId < 0 ? * ONNX.ExecutionMode.ORT_PARALLEL : * ONNX.ExecutionMode.ORT_SEQUENTIAL, * EnableMemoryPattern = deviceId < 0 * }; * * if (deviceId >= 0) * { * options.AppendExecutionProvider_CUDA(deviceId); * // options.a(deviceId); * } * * * else * { * options.IntraOpNumThreads = 2; * options.ExecutionMode = ONNX.ExecutionMode.ORT_PARALLEL; * options.InterOpNumThreads = 6; * options.GraphOptimizationLevel = ONNX.GraphOptimizationLevel.ORT_ENABLE_ALL; * options.AppendExecutionProvider_CPU(0); * } * * return options; */ }