Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add migx ep fp8 int4 #78

Open
wants to merge 4 commits into
base: rocm6.3_internal_testing
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions include/onnxruntime/core/session/onnxruntime_c_api.h
Original file line number Diff line number Diff line change
Expand Up @@ -614,6 +614,7 @@ typedef struct OrtTensorRTProviderOptions {
typedef struct OrtMIGraphXProviderOptions {
int device_id; // hip device id.
int migraphx_fp16_enable; // MIGraphX FP16 precision. Default 0 = false, nonzero = true
int migraphx_fp8_enable; // MIGraphX FP8 precision. Default 0 = false, nonzero = true
int migraphx_int8_enable; // MIGraphX INT8 precision. Default 0 = false, nonzero = true
int migraphx_use_native_calibration_table; // MIGraphx INT8 cal table. Default 0 = false, noznero = true
const char* migraphx_int8_calibration_table_name; // MIGraphx INT8 calibration table name
Expand Down
88 changes: 70 additions & 18 deletions onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,12 @@
fp16_enable_ = (std::stoi(fp16_enable_env) == 0 ? false : true);
}

// whether fp8 quantization is enabled
const std::string fp8_enable_env = onnxruntime::GetEnvironmentVar(migraphx_env_vars::kFP8Enable);
if (!fp8_enable_env.empty()) {
fp8_enable_ = (std::stoi(fp8_enable_env) == 0 ? false : true);
}

// whether int8 is enabled
const std::string int8_enable_env = onnxruntime::GetEnvironmentVar(migraphx_env_vars::kINT8Enable);
if (!int8_enable_env.empty()) {
Expand Down Expand Up @@ -192,6 +198,7 @@
LOGS_DEFAULT(VERBOSE) << "[MIGraphX EP] MIGraphX provider options: "
<< "device_id: " << info_.device_id
<< ", migraphx_fp16_enable: " << fp16_enable_
<< ", migraphx_fp8_enable: " << fp8_enable_
<< ", migraphx_int8_enable: " << int8_enable_
<< ", migraphx_int8_enable: " << int8_enable_
<< ", dump_model_ops: " << dump_model_ops_
Expand Down Expand Up @@ -232,11 +239,17 @@
switch (type_proto->tensor_type().elem_type()) {
case ONNX_NAMESPACE::TensorProto_DataType::TensorProto_DataType_FLOAT16:
case ONNX_NAMESPACE::TensorProto_DataType::TensorProto_DataType_FLOAT:
case ONNX_NAMESPACE::TensorProto_DataType::TensorProto_DataType_FLOAT8E4M3FN:
case ONNX_NAMESPACE::TensorProto_DataType::TensorProto_DataType_FLOAT8E4M3FNUZ:
case ONNX_NAMESPACE::TensorProto_DataType::TensorProto_DataType_FLOAT8E5M2:
case ONNX_NAMESPACE::TensorProto_DataType::TensorProto_DataType_FLOAT8E5M2FNUZ:
case ONNX_NAMESPACE::TensorProto_DataType::TensorProto_DataType_DOUBLE:
case ONNX_NAMESPACE::TensorProto_DataType::TensorProto_DataType_INT4:
case ONNX_NAMESPACE::TensorProto_DataType::TensorProto_DataType_INT8:
case ONNX_NAMESPACE::TensorProto_DataType::TensorProto_DataType_INT16:
case ONNX_NAMESPACE::TensorProto_DataType::TensorProto_DataType_INT32:
case ONNX_NAMESPACE::TensorProto_DataType::TensorProto_DataType_INT64:
case ONNX_NAMESPACE::TensorProto_DataType::TensorProto_DataType_UINT4:
case ONNX_NAMESPACE::TensorProto_DataType::TensorProto_DataType_UINT8:
case ONNX_NAMESPACE::TensorProto_DataType::TensorProto_DataType_UINT16:
case ONNX_NAMESPACE::TensorProto_DataType::TensorProto_DataType_UINT32:
Expand All @@ -261,6 +274,21 @@
case ONNX_TENSOR_ELEMENT_DATA_TYPE_DOUBLE:
mgx_type = migraphx_shape_double_type;
break;
case ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT8E4M3FNUZ:
mgx_type = migraphx_shape_fp8e4m3fnuz_type;
break;
case ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT8E4M3FN:
mgx_type = migraphx_shape_fp8e4m3fn_type;
break;
case ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT8E5M2:
mgx_type = migraphx_shape_fp8e5m2_type;
break;
case ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT8E5M2FNUZ:
mgx_type = migraphx_shape_fp8e5m2fnuz_type;
break;
case ONNX_TENSOR_ELEMENT_DATA_TYPE_INT4:
mgx_type = migraphx_shape_int8_type;
break;
case ONNX_TENSOR_ELEMENT_DATA_TYPE_INT8:
mgx_type = migraphx_shape_int8_type;
break;
Expand All @@ -273,6 +301,9 @@
case ONNX_TENSOR_ELEMENT_DATA_TYPE_INT64:
mgx_type = migraphx_shape_int64_type;
break;
case ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT4:
mgx_type = migraphx_shape_uint8_type;
break;
case ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT8:
mgx_type = migraphx_shape_uint8_type;
break;
Expand Down Expand Up @@ -1159,9 +1190,8 @@
prog = migraphx::parse_onnx_buffer(onnx_string_buffer, options);

// Read in the calibration data and map it to an migraphx paramater map for the calibration ops
if (int8_enable_ && int8_calibration_cache_available_) {
if ((int8_enable_ xor fp8_enable_) && int8_calibration_cache_available_) {

Check warning on line 1193 in onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc

View workflow job for this annotation

GitHub Actions / cpplint

[cpplint] onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc#L1193

Use operator ^ instead of xor [readability/alt_tokens] [2]
Raw output
onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc:1193:  Use operator ^ instead of xor  [readability/alt_tokens] [2]
LOGS_DEFAULT(INFO) << "Quantizing input program to int8" << std::endl;
migraphx::quantize_int8_options quant_opts;
migraphx::program_parameters quant_params;

auto param_shapes = prog.get_parameter_shapes();
Expand All @@ -1171,15 +1201,26 @@
auto cal_val_shape = migraphx::shape(migraphx_shape_float_type);
quant_params.add(cal_key.c_str(), migraphx::argument(cal_val_shape, static_cast<void*>(std::move(&cal_val))));
}
quant_opts.add_calibration_data(quant_params);

// specify thing we want to int8 quantize
quant_opts.add_op_name("convolution");
quant_opts.add_op_name("dot");

// perform static quantization on the programs
migraphx::quantize_int8(prog, t_, quant_opts);
LOGS_DEFAULT(INFO) << "Quantizing input program to int8: Complete" << std::endl;
if(int8_enable_)

Check warning on line 1206 in onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc

View workflow job for this annotation

GitHub Actions / cpplint

[cpplint] onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc#L1206

Missing space before ( in if( [whitespace/parens] [5]
Raw output
onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc:1206:  Missing space before ( in if(  [whitespace/parens] [5]
{

Check warning on line 1207 in onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc

View workflow job for this annotation

GitHub Actions / cpplint

[cpplint] onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc#L1207

{ should almost always be at the end of the previous line [whitespace/braces] [4]
Raw output
onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc:1207:  { should almost always be at the end of the previous line  [whitespace/braces] [4]
migraphx::quantize_int8_options quant_opts;
quant_opts.add_calibration_data(quant_params);
// specify thing we want to int8 quantize
quant_opts.add_op_name("convolution");
quant_opts.add_op_name("dot");
migraphx::quantize_int8(prog, t_, quant_opts);
LOGS_DEFAULT(INFO) << "Quantizing input program to int8: Complete" << std::endl;
}
else if(fp8_enable_)

Check warning on line 1216 in onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc

View workflow job for this annotation

GitHub Actions / cpplint

[cpplint] onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc#L1216

An else should appear on the same line as the preceding } [whitespace/newline] [4]
Raw output
onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc:1216:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]

Check warning on line 1216 in onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc

View workflow job for this annotation

GitHub Actions / cpplint

[cpplint] onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc#L1216

Missing space before ( in if( [whitespace/parens] [5]
Raw output
onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc:1216:  Missing space before ( in if(  [whitespace/parens] [5]
{

Check warning on line 1217 in onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc

View workflow job for this annotation

GitHub Actions / cpplint

[cpplint] onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc#L1217

{ should almost always be at the end of the previous line [whitespace/braces] [4]
Raw output
onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc:1217:  { should almost always be at the end of the previous line  [whitespace/braces] [4]
migraphx::quantize_fp8_options quant_opts;
quant_opts.add_calibration_data(quant_params);
migraphx::quantize_fp8(prog, t_, quant_opts);
LOGS_DEFAULT(INFO) << "Quantizing input program to fp8: Complete" << std::endl;
}

Check warning on line 1223 in onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc

View workflow job for this annotation

GitHub Actions / cpplint

[cpplint] onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc#L1223

Redundant blank line at the end of a code block should be deleted. [whitespace/blank_line] [3]
Raw output
onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc:1223:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
}

if (fp16_enable_) {
Expand Down Expand Up @@ -1216,7 +1257,7 @@
std::unique_ptr<MIGraphXFuncState> p = std::make_unique<MIGraphXFuncState>();
*p = {context->allocate_func, context->release_func, context->allocator_handle, map_progs_[context->node_name],
map_onnx_string_[context->node_name], options, t_, map_input_index_[context->node_name], &mgx_mu_,
map_no_input_shape_[context->node_name], fp16_enable_, int8_enable_,
map_no_input_shape_[context->node_name], fp16_enable_, fp8_enable_, int8_enable_,
int8_calibration_cache_available_, dynamic_range_map_,
save_compiled_model_, save_compiled_path_,
load_compiled_model_, load_compiled_path_, dump_model_ops_};
Expand All @@ -1241,6 +1282,7 @@
migraphx::onnx_options& cmp_options = mgx_state->options;
bool& no_input_shape = mgx_state->no_input_shape;
bool fp16_enable = mgx_state->fp16_enable;
bool fp8_enable = mgx_state->fp8_enable;
bool int8_enable = mgx_state->int8_enable;
bool int8_calibration_cache_available = mgx_state->int8_calibration_cache_available;

Expand Down Expand Up @@ -1301,9 +1343,8 @@
prog = migraphx::parse_onnx_buffer(onnx_string, cmp_options);

// Read in the calibration data and map it to an migraphx paramater map for the calibration ops
if (int8_enable && int8_calibration_cache_available) {
if ((int8_enable xor fp8_enable) && int8_calibration_cache_available) {

Check warning on line 1346 in onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc

View workflow job for this annotation

GitHub Actions / cpplint

[cpplint] onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc#L1346

Use operator ^ instead of xor [readability/alt_tokens] [2]
Raw output
onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc:1346:  Use operator ^ instead of xor  [readability/alt_tokens] [2]
LOGS_DEFAULT(INFO) << "Quantize Int8: Begin" << std::endl;
migraphx::quantize_int8_options quant_opts;
migraphx::program_parameters quant_params;

auto param_shapes = prog.get_parameter_shapes();
Expand Down Expand Up @@ -1332,14 +1373,25 @@
auto cal_val_shape = migraphx::shape(migraphx_shape_float_type);
quant_params.add(cal_key.c_str(), migraphx::argument(cal_val_shape, static_cast<void*>(std::move(&cal_val))));
}
quant_opts.add_calibration_data(quant_params);
// specify thing we want to int8 quantize
quant_opts.add_op_name("convolution");
quant_opts.add_op_name("dot");

// perform static quantization on the programs
migraphx::quantize_int8(prog, t, quant_opts);
LOGS_DEFAULT(INFO) << "Quantize Int8: Completed" << std::endl;
if(int8_enable)

Check warning on line 1378 in onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc

View workflow job for this annotation

GitHub Actions / cpplint

[cpplint] onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc#L1378

Missing space before ( in if( [whitespace/parens] [5]
Raw output
onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc:1378:  Missing space before ( in if(  [whitespace/parens] [5]
{

Check warning on line 1379 in onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc

View workflow job for this annotation

GitHub Actions / cpplint

[cpplint] onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc#L1379

{ should almost always be at the end of the previous line [whitespace/braces] [4]
Raw output
onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc:1379:  { should almost always be at the end of the previous line  [whitespace/braces] [4]
migraphx::quantize_int8_options quant_opts;
quant_opts.add_calibration_data(quant_params);
// specify thing we want to int8 quantize
quant_opts.add_op_name("convolution");
quant_opts.add_op_name("dot");
migraphx::quantize_int8(prog, t, quant_opts);
LOGS_DEFAULT(INFO) << "Quantizing input program to fp8: Complete" << std::endl;
}
else if(fp8_enable)

Check warning on line 1388 in onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc

View workflow job for this annotation

GitHub Actions / cpplint

[cpplint] onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc#L1388

An else should appear on the same line as the preceding } [whitespace/newline] [4]
Raw output
onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc:1388:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]

Check warning on line 1388 in onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc

View workflow job for this annotation

GitHub Actions / cpplint

[cpplint] onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc#L1388

Missing space before ( in if( [whitespace/parens] [5]
Raw output
onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc:1388:  Missing space before ( in if(  [whitespace/parens] [5]
{

Check warning on line 1389 in onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc

View workflow job for this annotation

GitHub Actions / cpplint

[cpplint] onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc#L1389

{ should almost always be at the end of the previous line [whitespace/braces] [4]
Raw output
onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc:1389:  { should almost always be at the end of the previous line  [whitespace/braces] [4]
migraphx::quantize_fp8_options quant_opts;
quant_opts.add_calibration_data(quant_params);
migraphx::quantize_fp8(prog, t, quant_opts);
LOGS_DEFAULT(INFO) << "Quantizing input program to fp8: Complete" << std::endl;
}
}

if (fp16_enable) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ namespace onnxruntime {

namespace migraphx_env_vars {
static const char kFP16Enable[] = "ORT_MIGRAPHX_FP16_ENABLE";
static const char kFP8Enable[] = "ORT_MIGRAPHX_FP8_ENABLE";
static const char kINT8Enable[] = "ORT_MIGRAPHX_INT8_ENABLE";
static const char dumpModelOps[] = "ORT_MIGRAPHX_DUMP_MODEL_OPS";
static const char kINT8CalibrationTableName[] = "ORT_MIGRAPHX_INT8_CALIBRATION_TABLE_NAME";
Expand All @@ -43,6 +44,7 @@ struct MIGraphXFuncState {
OrtMutex* mgx_mu_ptr = nullptr;
bool no_input_shape = false;
bool fp16_enable = false;
bool fp8_enable = false;
bool int8_enable = false;
bool int8_calibration_cache_available = false;
std::unordered_map<std::string, float> dynamic_range_map;
Expand Down Expand Up @@ -89,6 +91,7 @@ class MIGraphXExecutionProvider : public IExecutionProvider {
private:
MIGraphXExecutionProviderInfo info_;
bool fp16_enable_ = false;
bool fp8_enable_ = false;
bool int8_enable_ = false;
std::string int8_calibration_cache_name_;
bool int8_calibration_cache_available_ = false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ namespace migraphx {
namespace provider_option_names {
constexpr const char* kDeviceId = "device_id";
constexpr const char* kFp16Enable = "trt_fp16_enable";
constexpr const char* kFp8Enable = "migx_fp8_enable";
constexpr const char* kInt8Enable = "migx_int8_enable";
constexpr const char* kInt8CalibTable = "migx_int8_calibration_table_name";
constexpr const char* kInt8UseNativeCalibTable = "migx_int8_use_native_calibration_table";
Expand Down Expand Up @@ -43,6 +44,7 @@ MIGraphXExecutionProviderInfo MIGraphXExecutionProviderInfo::FromProviderOptions
return Status::OK();
})
.AddAssignmentToReference(migraphx::provider_option_names::kFp16Enable, info.fp16_enable)
.AddAssignmentToReference(migraphx::provider_option_names::kFp8Enable, info.fp8_enable)
.AddAssignmentToReference(migraphx::provider_option_names::kInt8Enable, info.int8_enable)
.AddAssignmentToReference(migraphx::provider_option_names::kSaveCompiledModel, info.save_compiled_model)
.AddAssignmentToReference(migraphx::provider_option_names::kLoadCompiledModel, info.load_compiled_model)
Expand All @@ -56,6 +58,7 @@ ProviderOptions MIGraphXExecutionProviderInfo::ToProviderOptions(const MIGraphXE
const ProviderOptions options{
{migraphx::provider_option_names::kDeviceId, MakeStringWithClassicLocale(info.device_id)},
{migraphx::provider_option_names::kFp16Enable, MakeStringWithClassicLocale(info.fp16_enable)},
{migraphx::provider_option_names::kFp8Enable, MakeStringWithClassicLocale(info.fp8_enable)},
{migraphx::provider_option_names::kInt8Enable, MakeStringWithClassicLocale(info.int8_enable)},
{migraphx::provider_option_names::kSaveCompiledModel, MakeStringWithClassicLocale(info.save_compiled_model)},
{migraphx::provider_option_names::kLoadCompiledModel, MakeStringWithClassicLocale(info.load_compiled_model)},
Expand All @@ -68,6 +71,7 @@ ProviderOptions MIGraphXExecutionProviderInfo::ToProviderOptions(const OrtMIGrap
const ProviderOptions options{
{migraphx::provider_option_names::kDeviceId, MakeStringWithClassicLocale(info.device_id)},
{migraphx::provider_option_names::kFp16Enable, MakeStringWithClassicLocale(info.migraphx_fp16_enable)},
{migraphx::provider_option_names::kFp8Enable, MakeStringWithClassicLocale(info.migraphx_fp8_enable)},
{migraphx::provider_option_names::kInt8Enable, MakeStringWithClassicLocale(info.migraphx_int8_enable)},
{migraphx::provider_option_names::kSaveCompiledModel, MakeStringWithClassicLocale(info.migraphx_save_compiled_model)},
{migraphx::provider_option_names::kLoadCompiledModel, MakeStringWithClassicLocale(info.migraphx_load_compiled_model)},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ struct MIGraphXExecutionProviderInfo {
std::string target_device;
OrtDevice::DeviceId device_id{0};
bool fp16_enable{false};
bool fp8_enable{false};
bool int8_enable{false};
std::string int8_calibration_table_name{""};
bool int8_use_native_calibration_table{false};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ struct MIGraphX_Provider : Provider {
info.device_id = static_cast<OrtDevice::DeviceId>(options.device_id);
info.target_device = "gpu";
info.fp16_enable = options.migraphx_fp16_enable;
info.fp8_enable = options.migraphx_fp8_enable;
info.exhaustive_tune = options.migraphx_exhaustive_tune;
info.int8_enable = options.migraphx_int8_enable;
info.int8_calibration_table_name = "";
Expand All @@ -85,6 +86,7 @@ struct MIGraphX_Provider : Provider {
auto& migx_options = *reinterpret_cast<OrtMIGraphXProviderOptions*>(provider_options);
migx_options.device_id = internal_options.device_id;
migx_options.migraphx_fp16_enable = internal_options.fp16_enable;
migx_options.migraphx_fp8_enable = internal_options.fp8_enable;
migx_options.migraphx_int8_enable = internal_options.int8_enable;
migx_options.migraphx_exhaustive_tune = internal_options.exhaustive_tune;

Expand Down
11 changes: 11 additions & 0 deletions onnxruntime/python/onnxruntime_pybind_state.cc
Original file line number Diff line number Diff line change
Expand Up @@ -831,6 +831,7 @@ std::unique_ptr<IExecutionProvider> CreateExecutionProviderInstance(
0,
0,
0,
0,
nullptr,
1,
"./compiled_model.mxr",
Expand All @@ -854,6 +855,16 @@ std::unique_ptr<IExecutionProvider> CreateExecutionProviderInstance(
"[ERROR] [MIGraphX] The value for the key 'trt_fp16_enable' should be"
" 'True' or 'False'. Default value is 'False'.\n");
}
} else if (option.first == "migraphx_fp8_enable") {
if (option.second == "True" || option.second == "true") {
params.migraphx_fp8_enable = true;
} else if (option.second == "False" || option.second == "false") {
params.migraphx_fp8_enable = false;
} else {
ORT_THROW(
"[ERROR] [MIGraphX] The value for the key 'migx_fp8_enable' should be"
" 'True' or 'False'. Default value is 'False'.\n");
}
} else if (option.first == "migraphx_int8_enable") {
if (option.second == "True" || option.second == "true") {
params.migraphx_int8_enable = true;
Expand Down
1 change: 1 addition & 0 deletions onnxruntime/test/util/default_providers.cc
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ std::unique_ptr<IExecutionProvider> DefaultMIGraphXExecutionProvider() {
0,
0,
0,
0,
nullptr,
1,
"./compiled_model.mxr",
Expand Down
Loading