1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
Author: Shengqi Chen <harry@debian.org>
Description: Fix compilation with latest GCC
See also https://github.com/microsoft/onnxruntime/issues/23954
Forwarded: no
--- a/onnxruntime/core/session/inference_session.cc
+++ b/onnxruntime/core/session/inference_session.cc
@@ -391,7 +391,10 @@
const auto disabled_list = utils::SplitString(disabled_string, ";");
InlinedHashSet<std::string> disabled_rules_and_transformers;
disabled_rules_and_transformers.reserve(disabled_list.size());
- disabled_rules_and_transformers.insert(disabled_list.cbegin(), disabled_list.cend());
+ // disabled_rules_and_transformers.insert(disabled_list.cbegin(), disabled_list.cend());
+ for (const auto& rule : disabled_list) {
+ disabled_rules_and_transformers.insert(std::string(rule));
+ }
ORT_THROW_IF_ERROR(FilterEnabledOptimizers(std::move(disabled_rules_and_transformers)));
}
}
--- a/onnxruntime/test/providers/base_tester.h
+++ b/onnxruntime/test/providers/base_tester.h
@@ -54,7 +54,11 @@
// Dims variant is needed to reduce the number of overloads
// MS compiler refuses to create a gsl::span from initializer_list especially if it contains a single element
+#if DISABLE_ABSEIL
+ using DimsVariant = std::variant<std::vector<int64_t>>;
+#else
using DimsVariant = std::variant<std::vector<int64_t>, TensorShapeVector>;
+#endif
template <typename T>
void AddInput(const char* name, std::initializer_list<int64_t> dims, std::initializer_list<T> values,
@@ -771,7 +775,11 @@
bool testing_function_called_{}; // has the function that performs the actual testing been called yet?
gsl::span<const int64_t> ToDimsSpan(const DimsVariant& dims_var) {
+#if DISABLE_ABSEIL
+ return gsl::span<const int64_t>(std::get<0>(dims_var));
+#else
return std::visit([](auto&& dims) { return gsl::span<const int64_t>(dims); }, dims_var);
+#endif
}
template <typename T>
--- a/onnxruntime/contrib_ops/cpu/utils/console_dumper.h
+++ b/onnxruntime/contrib_ops/cpu/utils/console_dumper.h
@@ -3,6 +3,7 @@
#pragma once
#include <string>
+#include <iostream>
#include "core/framework/ort_value.h"
#include "core/framework/float16.h"
#include "contrib_ops/cpu/utils/debug_macros.h"
--- a/onnxruntime/core/framework/resource_accountant.cc
+++ b/onnxruntime/core/framework/resource_accountant.cc
@@ -147,8 +147,8 @@
size_t initializers_sizes = SafeInt<size_t>(std::stoull(std::string{splits[2]}));
size_t total_dynamic_sizes = SafeInt<size_t>(std::stoull(std::string{splits[3]}));
size_t total_temp_allocations = SafeInt<size_t>(std::stoull(std::string{splits[4]}));
- node_stats.insert_or_assign(std::move(node_name), {input_sizes, initializers_sizes,
- total_dynamic_sizes, total_temp_allocations});
+ const NodeAllocationStats stats = {input_sizes, initializers_sizes, total_dynamic_sizes, total_temp_allocations};
+ node_stats.insert_or_assign(std::move(node_name), stats);
}
result.swap(node_stats);
@@ -224,4 +224,4 @@
return result;
}
-} // namespace onnxruntime
\ No newline at end of file
+} // namespace onnxruntime
|