コード例 #1
0
ファイル: OnnxOptions.cs プロジェクト: vpenades/InteropTypes
        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);
        }
コード例 #2
0
ファイル: OnnxOptions.cs プロジェクト: vpenades/InteropTypes
        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;
             */
        }