Add option to exclude support for loading ORT format models in full build. (#5129)

* Add ability to exclude support for loading ORT format models.
Disable support for ORT format models in packages
This commit is contained in:
Scott McKay 2020-09-12 12:21:30 +10:00 committed by GitHub
parent 5302fe4079
commit 323a1ba8a4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 109 additions and 36 deletions

View file

@ -112,7 +112,7 @@ option(onnxruntime_USE_TELEMETRY "Build with Telemetry" OFF)
#It's default OFF because it's experimental now.
option(onnxruntime_PREFER_SYSTEM_LIB "Experimental: Build with the preinstalled libraries in your system" OFF)
# Options to reduce build size
# Options related to reducing the binary size produced by the build
option(onnxruntime_DISABLE_CONTRIB_OPS "Disable contrib ops" OFF)
option(onnxruntime_DISABLE_ML_OPS "Disable traditional ML ops" OFF)
option(onnxruntime_DISABLE_RTTI "Disable RTTI" OFF)
@ -120,6 +120,7 @@ option(onnxruntime_DISABLE_RTTI "Disable RTTI" OFF)
option(onnxruntime_DISABLE_EXCEPTIONS "Disable exception handling. Requires onnxruntime_MINIMAL_BUILD currently." OFF)
option(onnxruntime_MINIMAL_BUILD "Exclude as much as possible from the build. Support ORT format models. No support for ONNX format models." OFF)
option(onnxruntime_REDUCED_OPS_BUILD "Reduced set of kernels are registered in build via modification of the kernel registration source files." OFF)
option(onnxruntime_DISABLE_ORT_FORMAT_LOAD "Disable loading an ORT format model when onnxruntime_MINIMAL_BUILD=OFF (i.e. in a full build)." OFF)
# training options
option(onnxruntime_ENABLE_NVTX_PROFILE "Enable NVTX profile." OFF)
@ -208,6 +209,8 @@ endif()
# Will expose option in build.py when all pieces are available
if(onnxruntime_MINIMAL_BUILD)
add_compile_definitions(ORT_MINIMAL_BUILD)
add_compile_definitions(ENABLE_ORT_FORMAT_LOAD)
set(onnxruntime_REDUCED_OPS_BUILD ON)
if (NOT onnxruntime_ENABLE_PYTHON)
@ -240,6 +243,11 @@ if(onnxruntime_MINIMAL_BUILD)
string(APPEND CMAKE_C_FLAGS " -g")
endif()
endif()
else()
# support ORT format model loading unless onnxruntime_DISABLE_ORT_FORMAT_LOAD is set
if (NOT onnxruntime_DISABLE_ORT_FORMAT_LOAD)
add_compile_definitions(ENABLE_ORT_FORMAT_LOAD)
endif()
endif()
if(onnxruntime_ENABLE_LTO)

View file

@ -381,11 +381,13 @@ class Node {
#endif
#if defined(ENABLE_ORT_FORMAT_LOAD)
static Status LoadFromOrtFormat(const onnxruntime::experimental::fbs::Node& fbs_node, Graph& graph,
const logging::Logger& logger, std::unique_ptr<Node>& node);
Status LoadFromOrtFormat(const onnxruntime::experimental::fbs::Node& fbs_node, const logging::Logger& logger);
Status LoadEdgesFromOrtFormat(const onnxruntime::experimental::fbs::NodeEdge& fbs_node_edgs, const Graph& graph);
#endif
/**
@class Definitions
@ -1017,6 +1019,7 @@ class Graph {
virtual ~Graph();
#if defined(ENABLE_ORT_FORMAT_LOAD)
static common::Status LoadFromOrtFormat(
const onnxruntime::experimental::fbs::Graph& fbs_graph, const Model& owning_model,
const std::unordered_map<std::string, int>& domain_to_version,
@ -1026,7 +1029,7 @@ class Graph {
static Status LoadFromOrtFormat(const onnxruntime::experimental::fbs::Graph& fbs_graph,
Graph& parent_graph, const Node& parent_node,
const logging::Logger& logger, std::unique_ptr<Graph>& graph);
#endif
private:
ORT_DISALLOW_COPY_ASSIGNMENT_AND_MOVE(Graph);
@ -1042,8 +1045,10 @@ class Graph {
Graph* parent_graph, const Node* parent_node,
const logging::Logger& logger);
#if defined(ENABLE_ORT_FORMAT_LOAD)
// Populate Graph instance from ORT format serialized data.
common::Status LoadFromOrtFormat(const onnxruntime::experimental::fbs::Graph& fbs_graph);
#endif
#if !defined(ORT_MINIMAL_BUILD)
// Constructor: Given a <GraphProto> loaded from model file, construct

View file

@ -720,6 +720,7 @@ Status SessionState::CreateSubgraphSessionState() {
return Status::OK();
}
#if defined(ENABLE_ORT_FORMAT_LOAD)
Status SessionState::LoadFromOrtFormat(const fbs::SessionState& fbs_session_state,
const KernelRegistryManager& kernel_registry_manager) {
const auto* fbs_kcis = fbs_session_state.kernels();
@ -772,6 +773,7 @@ Status SessionState::LoadFromOrtFormat(const fbs::SessionState& fbs_session_stat
return Status::OK();
}
#endif
Status SessionState::FinalizeSessionState(const std::basic_string<PATH_CHAR_TYPE>& graph_location,
KernelRegistryManager& kernel_registry_manager,
@ -784,7 +786,13 @@ Status SessionState::FinalizeSessionState(const std::basic_string<PATH_CHAR_TYPE
ORT_RETURN_IF_ERROR(CreateSubgraphSessionState());
if (serialized_session_state) {
#if defined(ENABLE_ORT_FORMAT_LOAD)
ORT_RETURN_IF_ERROR(LoadFromOrtFormat(*serialized_session_state, kernel_registry_manager));
#else
return Status(ONNXRUNTIME, INVALID_ARGUMENT,
"ORT format model is not supported in this build.");
#endif
} else {
#if !defined(ORT_MINIMAL_BUILD)
ORT_RETURN_IF_ERROR(PopulateKernelCreateInfo(kernel_registry_manager));

View file

@ -257,8 +257,10 @@ class SessionState {
flatbuffers::Offset<onnxruntime::experimental::fbs::SessionState>& fbs_session_state) const;
#endif
#if defined(ENABLE_ORT_FORMAT_LOAD)
Status LoadFromOrtFormat(const onnxruntime::experimental::fbs::SessionState& fbs_session_state,
const KernelRegistryManager& kernel_registry_manager);
#endif
Status FinalizeSessionState(const std::basic_string<PATH_CHAR_TYPE>& graph_loc,
KernelRegistryManager& kernel_registry_manager,

View file

@ -566,6 +566,7 @@ flatbuffers::Offset<fbs::NodeEdge> Node::SaveEdgesToOrtFormat(flatbuffers::FlatB
#endif // !defined(ORT_MINIMAL_BUILD)
#if defined(ENABLE_ORT_FORMAT_LOAD)
Status Node::LoadFromOrtFormat(const onnxruntime::experimental::fbs::Node& fbs_node, Graph& graph,
const logging::Logger& logger, std::unique_ptr<Node>& node) {
node.reset(new Node(fbs_node.index(), graph));
@ -659,6 +660,7 @@ Status Node::LoadEdgesFromOrtFormat(const onnxruntime::experimental::fbs::NodeEd
return Status::OK();
}
#endif
#if !defined(ORT_MINIMAL_BUILD)
void Node::Init(const std::string& name,
@ -3383,6 +3385,7 @@ std::ostream& operator<<(std::ostream& out, const Graph& graph) {
}
#endif // !defined(ORT_MINIMAL_BUILD)
#if defined(ENABLE_ORT_FORMAT_LOAD)
Status Graph::LoadFromOrtFormat(
const onnxruntime::experimental::fbs::Graph& fbs_graph,
const Model& owning_model,
@ -3526,4 +3529,6 @@ common::Status Graph::LoadFromOrtFormat(const onnxruntime::experimental::fbs::Gr
return Status::OK();
}
#endif // defined(ENABLE_ORT_FORMAT_LOAD)
} // namespace onnxruntime

View file

@ -269,6 +269,8 @@ Status SaveAttributeOrtFormat(flatbuffers::FlatBufferBuilder& builder,
#undef GET_FBS_ATTR
#undef GET_DATA_VEC
#if defined(ENABLE_ORT_FORMAT_LOAD)
static Status LoadTypeInfoOrtFormat(const fbs::TypeInfo& fbs_type_info,
TypeProto& type_proto) ORT_MUST_USE_RESULT;
@ -484,6 +486,8 @@ Status LoadAttributeOrtFormat(const fbs::Attribute& fbs_attr,
return Status::OK();
}
#endif // defined(ENABLE_ORT_FORMAT_LOAD)
} // namespace utils
} // namespace experimental
} // namespace onnxruntime

View file

@ -24,6 +24,7 @@ onnxruntime::common::Status SaveAttributeOrtFormat(
flatbuffers::FlatBufferBuilder& builder, const ONNX_NAMESPACE::AttributeProto& attr_proto,
flatbuffers::Offset<fbs::Attribute>& fbs_attr, const onnxruntime::Graph* graph) ORT_MUST_USE_RESULT;
#if defined(ENABLE_ORT_FORMAT_LOAD)
inline void LoadStringFromOrtFormat(std::string& dst, const flatbuffers::String* fbs_string) {
if (fbs_string)
dst = fbs_string->c_str();
@ -44,6 +45,8 @@ onnxruntime::common::Status LoadAttributeOrtFormat(const fbs::Attribute& fbs_att
Graph& graph, Node& node,
const logging::Logger& logger) ORT_MUST_USE_RESULT;
#endif
} // namespace utils
} // namespace experimental
} // namespace onnxruntime

View file

@ -583,6 +583,7 @@ common::Status Model::SaveToOrtFormat(flatbuffers::FlatBufferBuilder& builder,
Model::Model() : model_path_{} {
}
#if defined(ENABLE_ORT_FORMAT_LOAD)
common::Status Model::LoadFromOrtFormat(const fbs::Model& fbs_model,
const logging::Logger& logger,
std::unique_ptr<Model>& model) {
@ -629,5 +630,6 @@ common::Status Model::LoadFromOrtFormat(const fbs::Model& fbs_model,
return Status::OK();
}
#endif
} // namespace onnxruntime

View file

@ -217,9 +217,11 @@ class Model {
#endif // !defined(ORT_MINIMAL_BUILD)
#if defined(ENABLE_ORT_FORMAT_LOAD)
static common::Status LoadFromOrtFormat(const onnxruntime::experimental::fbs::Model& fbs_model,
const logging::Logger& logger,
std::unique_ptr<Model>& model);
#endif
private:
Model();

View file

@ -556,7 +556,11 @@ common::Status InferenceSession::Load(const std::string& model_uri) {
if ((has_explicit_type && model_type == "ORT") ||
(!has_explicit_type && inference_session_utils::IsOrtFormatModel(model_uri))) {
#if defined(ENABLE_ORT_FORMAT_LOAD)
return LoadOrtModel(model_uri);
#else
return ORT_MAKE_STATUS(ONNXRUNTIME, INVALID_ARGUMENT, "ORT format model is not supported in this build.");
#endif
}
#if !defined(ORT_MINIMAL_BUILD)
@ -579,7 +583,11 @@ common::Status InferenceSession::Load(const std::wstring& model_uri) {
if ((has_explicit_type && model_type == "ORT") ||
(!has_explicit_type && inference_session_utils::IsOrtFormatModel(model_uri))) {
#if defined(ENABLE_ORT_FORMAT_LOAD)
return LoadOrtModel(model_uri);
#else
return ORT_MAKE_STATUS(ONNXRUNTIME, INVALID_ARGUMENT, "ORT format model is not supported in this build.");
#endif
}
#if !defined(ORT_MINIMAL_BUILD)
@ -603,7 +611,11 @@ common::Status InferenceSession::Load(const void* model_data, int model_data_len
if ((has_explicit_type && model_type == "ORT") ||
(!has_explicit_type &&
inference_session_utils::IsOrtFormatModelBytes(model_data, model_data_len))) {
#if defined(ENABLE_ORT_FORMAT_LOAD)
return LoadOrtModel(model_data, model_data_len);
#else
return ORT_MAKE_STATUS(ONNXRUNTIME, INVALID_ARGUMENT, "ORT format model is not supported in this build.");
#endif
}
#if !defined(ORT_MINIMAL_BUILD)
@ -834,6 +846,7 @@ common::Status InferenceSession::TransformGraph(onnxruntime::Graph& graph,
#endif // !defined(ORT_MINIMAL_BUILD)
#if defined(ENABLE_ORT_FORMAT_LOAD)
template <typename T>
static Status LoadOrtModelBytes(const std::basic_string<T>& model_uri,
std::basic_string<ORTCHAR_T>& model_location,
@ -932,6 +945,7 @@ Status InferenceSession::LoadOrtModel(std::function<Status()> load_ort_format_mo
return Status::OK();
}
#endif // defined(ENABLE_ORT_FORMAT_LOAD)
bool InferenceSession::IsInitialized() const {
std::lock_guard<onnxruntime::OrtMutex> l(session_mutex_);

View file

@ -465,6 +465,7 @@ class InferenceSession {
common::Status SaveToOrtFormat(const std::basic_string<ORTCHAR_T>& filepath) const;
#endif
#if defined(ENABLE_ORT_FORMAT_LOAD)
/**
* Load an ORT format model.
* @param model_uri absolute path of the model file.
@ -487,6 +488,8 @@ class InferenceSession {
common::Status LoadOrtModel(std::function<Status()> load_ort_format_model_bytes) ORT_MUST_USE_RESULT;
#endif // defined(ENABLE_ORT_FORMAT_LOAD)
// Create a Logger for a single execution if possible. Otherwise use the default logger.
// If a new logger is created, it will also be stored in new_run_logger,
// which must remain valid for the duration of the execution.
@ -615,7 +618,7 @@ class InferenceSession {
TimePoint time_sent_last_; // the TimePoint of the last report
// Event Rate per provider < 20 peak events per second
constexpr static long long kDurationBetweenSending = 1000 * 1000 * 60 * 10; // duration in (us). send a report every 10 mins
constexpr static long long kDurationBetweenSending = 1000 * 1000 * 60 * 10; // duration in (us). send a report every 10 mins
} telemetry_;
#ifdef ONNXRUNTIME_ENABLE_INSTRUMENT

View file

@ -1,5 +1,9 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// if we can't load an ORT format model we can't really test anything
#if defined(ENABLE_ORT_FORMAT_LOAD)
#include "core/framework/data_types.h"
#include "core/framework/tensorprotoutils.h"
#include "core/graph/onnx_protobuf.h"
@ -361,7 +365,9 @@ TEST(OrtModelOnlyTests, LoadOrtFormatModelMLOps) {
RunOrtModel(test_info);
}
#endif
#endif // !defined(DISABLE_ML_OPS)
} // namespace test
} // namespace onnxruntime
#endif // defined(ENABLE_ORT_FORMAT_LOAD)

View file

@ -364,6 +364,8 @@ def parse_arguments():
parser.add_argument("--disable_rtti", action='store_true', help="Disable RTTI (reduces binary size)")
parser.add_argument("--disable_exceptions", action='store_true',
help="Disable exceptions to reduce binary size. Requires --minimal_build.")
parser.add_argument("--disable_ort_format_load", action='store_true',
help='Disable support for loading ORT format models in a non-minimal build.')
return parser.parse_args()
@ -625,6 +627,7 @@ def generate_build_tree(cmake_path, source_dir, build_dir, cuda_home, cudnn_home
"-Donnxruntime_DISABLE_ML_OPS=" + ("ON" if args.disable_ml_ops else "OFF"),
"-Donnxruntime_DISABLE_RTTI=" + ("ON" if args.disable_rtti else "OFF"),
"-Donnxruntime_DISABLE_EXCEPTIONS=" + ("ON" if args.disable_exceptions else "OFF"),
"-Donnxruntime_DISABLE_ORT_FORMAT_LOAD=" + ("ON" if args.disable_ort_format_load else "OFF"),
"-Donnxruntime_MINIMAL_BUILD=" + ("ON" if args.minimal_build else "OFF"),
"-Donnxruntime_REDUCED_OPS_BUILD=" + (
"ON" if args.include_ops_by_config or args.include_ops_by_model else "OFF"),
@ -1656,6 +1659,9 @@ def main():
if args.enable_pybind and args.disable_exceptions:
raise BuildError('Python bindings require exceptions to be enabled.')
if args.minimal_build and args.disable_ort_format_load:
raise BuildError('Minimal build requires loading ORT format models.')
# Disabling unit tests for VAD-F as FPGA only supports
# models with NCHW layout
if args.use_openvino == "VAD-F_FP32":

View file

@ -20,7 +20,7 @@ jobs:
docker run --rm --volume /data/onnx:/data/onnx:ro --volume $(Build.SourcesDirectory):/onnxruntime_src --volume $(Build.BinariesDirectory):/build --volume /data/models:/build/models:ro \
--volume $HOME/.onnx:/home/onnxruntimedev/.onnx -e NIGHTLY_BUILD onnxruntimeregistry.azurecr.io/internal/azureml/onnxruntimecpubuild:ch2j /opt/python/cp37-cp37m/bin/python3 \
/onnxruntime_src/tools/ci_build/build.py --build_dir /build --config Release --enable_lto \
--skip_submodule_sync --parallel --build_shared_lib --use_openmp
--skip_submodule_sync --parallel --build_shared_lib --disable_ort_format_load --use_openmp
workingDirectory: $(Build.SourcesDirectory)
- task: Docker@2
displayName: logout
@ -60,7 +60,7 @@ jobs:
docker run --gpus all -e NVIDIA_VISIBLE_DEVICES=all --rm --volume /data/onnx:/data/onnx:ro --volume $(Build.SourcesDirectory):/onnxruntime_src --volume $(Build.BinariesDirectory):/build \
--volume /data/models:/build/models:ro --volume $HOME/.onnx:/home/onnxruntimedev/.onnx -e NIGHTLY_BUILD onnxruntimeregistry.azurecr.io/internal/azureml/onnxruntimecuda102build:ch2q \
/opt/python/cp37-cp37m/bin/python3 /onnxruntime_src/tools/ci_build/build.py --build_dir /build --config Release \
--skip_submodule_sync --parallel --build_shared_lib --use_cuda --cuda_version=10.2 --cuda_home=/usr/local/cuda-10.2 --cudnn_home=/usr/local/cuda-10.2
--skip_submodule_sync --parallel --build_shared_lib --disable_ort_format_load --use_cuda --cuda_version=10.2 --cuda_home=/usr/local/cuda-10.2 --cudnn_home=/usr/local/cuda-10.2
workingDirectory: $(Build.SourcesDirectory)
- task: Docker@2
displayName: logout
@ -92,7 +92,7 @@ jobs:
- script: |
sudo python3 -m pip install -r '$(Build.SourcesDirectory)/tools/ci_build/github/linux/docker/scripts/requirements.txt'
sudo xcode-select --switch /Applications/Xcode_10.app/Contents/Developer
python3 $(Build.SourcesDirectory)/tools/ci_build/build.py --use_openmp --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --parallel --build_shared_lib --config RelWithDebInfo
python3 $(Build.SourcesDirectory)/tools/ci_build/build.py --use_openmp --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --parallel --build_shared_lib --disable_ort_format_load --config RelWithDebInfo
displayName: 'Build and Test MacOS'
- template: templates/c-api-artifacts-package-and-publish-steps-posix.yml
parameters:
@ -164,7 +164,7 @@ jobs:
displayName: 'Generate cmake config'
inputs:
scriptPath: '$(Build.SourcesDirectory)\tools\ci_build\build.py'
arguments: '--config RelWithDebInfo --enable_lto --disable_rtti --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --update --cmake_generator "Visual Studio 16 2019" --use_openmp --build_shared_lib --enable_onnx_tests $(TelemetryOption) $(buildparameter)'
arguments: '--config RelWithDebInfo --enable_lto --disable_rtti --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --update --cmake_generator "Visual Studio 16 2019" --use_openmp --build_shared_lib --disable_ort_format_load --enable_onnx_tests $(TelemetryOption) $(buildparameter)'
workingDirectory: '$(Build.BinariesDirectory)'
- task: VSBuild@1
@ -183,7 +183,7 @@ jobs:
displayName: 'test'
inputs:
scriptPath: '$(Build.SourcesDirectory)\tools\ci_build\build.py'
arguments: '--config RelWithDebInfo --enable_lto --disable_rtti --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --test --cmake_generator "Visual Studio 16 2019" --use_openmp --build_shared_lib --enable_onnx_tests $(TelemetryOption) $(buildparameter)'
arguments: '--config RelWithDebInfo --enable_lto --disable_rtti --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --test --cmake_generator "Visual Studio 16 2019" --use_openmp --build_shared_lib --disable_ort_format_load --enable_onnx_tests $(TelemetryOption) $(buildparameter)'
workingDirectory: '$(Build.BinariesDirectory)'
- template: templates/c-api-artifacts-package-and-publish-steps-windows.yml
@ -247,7 +247,7 @@ jobs:
displayName: 'Generate cmake config'
inputs:
scriptPath: '$(Build.SourcesDirectory)\tools\ci_build\build.py'
arguments: '--config RelWithDebInfo --enable_lto --disable_rtti --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --update --cmake_generator "Visual Studio 16 2019" --build_shared_lib --enable_onnx_tests $(TelemetryOption) $(buildparameter)'
arguments: '--config RelWithDebInfo --enable_lto --disable_rtti --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --update --cmake_generator "Visual Studio 16 2019" --build_shared_lib --disable_ort_format_load --enable_onnx_tests $(TelemetryOption) $(buildparameter)'
workingDirectory: '$(Build.BinariesDirectory)'
@ -267,7 +267,7 @@ jobs:
displayName: 'test'
inputs:
scriptPath: '$(Build.SourcesDirectory)\tools\ci_build\build.py'
arguments: '--config RelWithDebInfo --enable_lto --disable_rtti --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --test --cmake_generator "Visual Studio 16 2019" --build_shared_lib --enable_onnx_tests $(TelemetryOption) $(buildparameter)'
arguments: '--config RelWithDebInfo --enable_lto --disable_rtti --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --test --cmake_generator "Visual Studio 16 2019" --build_shared_lib --disable_ort_format_load --enable_onnx_tests $(TelemetryOption) $(buildparameter)'
workingDirectory: '$(Build.BinariesDirectory)'
- template: templates/c-api-artifacts-package-and-publish-steps-windows.yml

View file

@ -9,7 +9,7 @@ jobs:
AgentPool : 'Win-CPU-2019'
ArtifactName: 'drop-nodejs-win32'
JobName: 'Windows_CI'
BuildCommand: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --use_openmp --build_nodejs --enable_onnx_tests --enable_wcos --use_telemetry --cmake_generator "Visual Studio 16 2019"'
BuildCommand: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --disable_ort_format_load --use_openmp --build_nodejs --enable_onnx_tests --enable_wcos --use_telemetry --cmake_generator "Visual Studio 16 2019"'
BuildArch: 'x64'
EnvSetupScript: 'setup_env.bat'
sln_platform: 'x64'
@ -25,7 +25,7 @@ jobs:
AgentPool : $(AgentPoolMacOS)
ArtifactName: 'drop-nodejs-darwin'
JobName: 'Mac_CI'
BuildCommand: 'python3 $(Build.SourcesDirectory)/tools/ci_build/build.py --use_openmp --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --parallel --build_nodejs --config Release'
BuildCommand: 'python3 $(Build.SourcesDirectory)/tools/ci_build/build.py --disable_ort_format_load --use_openmp --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --parallel --build_nodejs --config Release'
DoNodejsPack : 'true'
DoNugetPack: 'false'
DoEsrp: ${{ parameters.DoEsrp }}
@ -50,7 +50,7 @@ jobs:
mkdir -p $HOME/.onnx && docker run --rm --volume /data/onnx:/data/onnx:ro --volume $(Build.SourcesDirectory):/onnxruntime_src --volume $(Build.BinariesDirectory):/build --volume /data/models:/build/models:ro \
--volume $HOME/.onnx:/home/onnxruntimedev/.onnx -e NIGHTLY_BUILD onnxruntimeregistry.azurecr.io/internal/azureml/onnxruntimecpubuild:ch2j /bin/bash -c "/opt/python/cp37-cp37m/bin/python3 \
/onnxruntime_src/tools/ci_build/build.py --build_dir /build --config Release --enable_lto --build_nodejs \
--skip_submodule_sync --parallel --build_shared_lib --use_openmp && cd /onnxruntime_src/nodejs && npm pack"
--skip_submodule_sync --parallel --build_shared_lib --disable_ort_format_load --use_openmp && cd /onnxruntime_src/nodejs && npm pack"
workingDirectory: $(Build.SourcesDirectory)
- task: Docker@2
displayName: logout

View file

@ -7,7 +7,7 @@ jobs:
AgentPool : 'Win-CPU-2019'
ArtifactName: 'drop-nuget'
JobName: 'Windows_CI_Dev'
BuildCommand: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --enable_onnx_tests --cmake_generator "Visual Studio 16 2019" --disable_contrib_ops --disable_ml_ops --enable_msvc_static_runtime'
BuildCommand: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --disable_ort_format_load --enable_onnx_tests --cmake_generator "Visual Studio 16 2019" --disable_contrib_ops --disable_ml_ops --enable_msvc_static_runtime'
BuildArch: 'x64'
EnvSetupScript: 'setup_env.bat'
sln_platform: 'x64'
@ -27,7 +27,7 @@ jobs:
AgentPool : 'Win-CPU-2019'
ArtifactName: 'drop-win-x86-zip'
JobName: 'Windows_CI_Dev_x86'
BuildCommand: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --enable_onnx_tests --x86 --cmake_generator "Visual Studio 16 2019" --disable_contrib_ops --disable_ml_ops --enable_msvc_static_runtime'
BuildCommand: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --disable_ort_format_load --enable_onnx_tests --x86 --cmake_generator "Visual Studio 16 2019" --disable_contrib_ops --disable_ml_ops --enable_msvc_static_runtime'
BuildArch: 'x86'
EnvSetupScript: 'setup_env_x86.bat'
sln_platform: 'Win32'
@ -47,7 +47,7 @@ jobs:
parameters:
AgentPool : 'Win-CPU-2019'
JobName: 'Windows_Arm64_Dev'
BuildCommand: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --cmake_generator "Visual Studio 16 2019" --disable_contrib_ops --disable_ml_ops --enable_msvc_static_runtime --arm64'
BuildCommand: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --disable_ort_format_load --cmake_generator "Visual Studio 16 2019" --disable_contrib_ops --disable_ml_ops --enable_msvc_static_runtime --arm64'
DoDebugBuild: 'false'
DoNugetPack : 'true'
DoCompliance: 'false'
@ -82,7 +82,7 @@ jobs:
inputs:
script: |
mkdir -p $HOME/.onnx
docker run --rm --volume /data/onnx:/data/onnx:ro --volume $(Build.SourcesDirectory):/onnxruntime_src --volume $(Build.BinariesDirectory):/build --volume /data/models:/build/models:ro --volume $HOME/.onnx:/home/onnxruntimedev/.onnx -e NIGHTLY_BUILD onnxruntimeregistry.azurecr.io/internal/azureml/onnxruntimecpubuild:ch2j /bin/bash -c "/opt/python/cp37-cp37m/bin/python3 /onnxruntime_src/tools/ci_build/build.py --build_dir /build --config Release --enable_lto --skip_submodule_sync --parallel --build_shared_lib --enable_onnx_tests --disable_contrib_ops --disable_ml_ops && cd /build/Release && make install DESTDIR=/build/linux-x64"
docker run --rm --volume /data/onnx:/data/onnx:ro --volume $(Build.SourcesDirectory):/onnxruntime_src --volume $(Build.BinariesDirectory):/build --volume /data/models:/build/models:ro --volume $HOME/.onnx:/home/onnxruntimedev/.onnx -e NIGHTLY_BUILD onnxruntimeregistry.azurecr.io/internal/azureml/onnxruntimecpubuild:ch2j /bin/bash -c "/opt/python/cp37-cp37m/bin/python3 /onnxruntime_src/tools/ci_build/build.py --build_dir /build --config Release --enable_lto --skip_submodule_sync --parallel --build_shared_lib --disable_ort_format_load --enable_onnx_tests --disable_contrib_ops --disable_ml_ops && cd /build/Release && make install DESTDIR=/build/linux-x64"
workingDirectory: $(Build.SourcesDirectory)
- task: Docker@2
displayName: logout
@ -114,7 +114,7 @@ jobs:
parameters:
AgentPool : $(AgentPoolMacOS)
JobName: 'MacOS_CI_Dev'
BuildCommand: 'python3 $(Build.SourcesDirectory)/tools/ci_build/build.py --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --parallel --build_shared_lib --disable_contrib_ops --disable_ml_ops --config RelWithDebInfo'
BuildCommand: 'python3 $(Build.SourcesDirectory)/tools/ci_build/build.py --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --parallel --build_shared_lib --disable_ort_format_load --disable_contrib_ops --disable_ml_ops --config RelWithDebInfo'
DoNugetPack : 'true'
NuPackScript: |
set -e -x

View file

@ -9,7 +9,7 @@ jobs:
AgentPool : 'Win-CPU-2019'
ArtifactName: 'drop-nuget'
JobName: 'Windows_CI_Dev'
BuildCommand: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --use_openmp --build_shared_lib --enable_onnx_tests --enable_wcos --use_telemetry --use_winml --cmake_generator "Visual Studio 16 2019"'
BuildCommand: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --use_openmp --build_shared_lib --disable_ort_format_load --enable_onnx_tests --enable_wcos --use_telemetry --use_winml --cmake_generator "Visual Studio 16 2019"'
BuildArch: 'x64'
EnvSetupScript: 'setup_env.bat'
sln_platform: 'x64'
@ -29,7 +29,7 @@ jobs:
AgentPool : 'Win-CPU-2019'
ArtifactName: 'drop-win-x86-zip'
JobName: 'Windows_CI_Dev_x86'
BuildCommand: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --use_openmp --build_shared_lib --enable_onnx_tests --enable_wcos --x86 --use_telemetry --use_winml --cmake_generator "Visual Studio 16 2019"'
BuildCommand: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --use_openmp --build_shared_lib --disable_ort_format_load --enable_onnx_tests --enable_wcos --x86 --use_telemetry --use_winml --cmake_generator "Visual Studio 16 2019"'
BuildArch: 'x86'
EnvSetupScript: 'setup_env_x86.bat'
sln_platform: 'Win32'
@ -50,7 +50,7 @@ jobs:
AgentPool : 'Win-CPU-2019'
ArtifactName: 'drop-win-arm64-zip'
JobName: 'Windows_CI_Dev_arm64'
BuildCommand: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --use_openmp --build_shared_lib --enable_onnx_tests --enable_wcos --arm64 --use_telemetry --use_winml --cmake_generator "Visual Studio 16 2019"'
BuildCommand: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --use_openmp --build_shared_lib --disable_ort_format_load --enable_onnx_tests --enable_wcos --arm64 --use_telemetry --use_winml --cmake_generator "Visual Studio 16 2019"'
BuildArch: 'x64'
EnvSetupScript: 'setup_env.bat'
sln_platform: 'arm64'
@ -71,7 +71,7 @@ jobs:
AgentPool : 'Win-CPU-2019'
ArtifactName: 'drop-win-arm-zip'
JobName: 'Windows_CI_Dev_arm'
BuildCommand: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --use_openmp --build_shared_lib --enable_onnx_tests --enable_wcos --arm --use_telemetry --use_winml --cmake_generator "Visual Studio 16 2019"'
BuildCommand: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --use_openmp --build_shared_lib --disable_ort_format_load --enable_onnx_tests --enable_wcos --arm --use_telemetry --use_winml --cmake_generator "Visual Studio 16 2019"'
BuildArch: 'x64'
EnvSetupScript: 'setup_env.bat'
sln_platform: 'arm'
@ -105,7 +105,7 @@ jobs:
inputs:
script: |
mkdir -p $HOME/.onnx
docker run --rm --volume /data/onnx:/data/onnx:ro --volume $(Build.SourcesDirectory):/onnxruntime_src --volume $(Build.BinariesDirectory):/build --volume /data/models:/build/models:ro --volume $HOME/.onnx:/home/onnxruntimedev/.onnx -e NIGHTLY_BUILD onnxruntimeregistry.azurecr.io/internal/azureml/onnxruntimecpubuild:ch2j /bin/bash -c "/opt/python/cp37-cp37m/bin/python3 /onnxruntime_src/tools/ci_build/build.py --build_dir /build --config Release --enable_lto --skip_submodule_sync --parallel --build_shared_lib --use_openmp --enable_onnx_tests && cd /build/Release && make install DESTDIR=/build/linux-x64"
docker run --rm --volume /data/onnx:/data/onnx:ro --volume $(Build.SourcesDirectory):/onnxruntime_src --volume $(Build.BinariesDirectory):/build --volume /data/models:/build/models:ro --volume $HOME/.onnx:/home/onnxruntimedev/.onnx -e NIGHTLY_BUILD onnxruntimeregistry.azurecr.io/internal/azureml/onnxruntimecpubuild:ch2j /bin/bash -c "/opt/python/cp37-cp37m/bin/python3 /onnxruntime_src/tools/ci_build/build.py --build_dir /build --config Release --enable_lto --skip_submodule_sync --parallel --build_shared_lib --disable_ort_format_load --use_openmp --enable_onnx_tests && cd /build/Release && make install DESTDIR=/build/linux-x64"
workingDirectory: $(Build.SourcesDirectory)
- task: Docker@2
displayName: logout
@ -137,7 +137,7 @@ jobs:
parameters:
AgentPool : $(AgentPoolMacOS)
JobName: 'MacOS_CI_Dev'
BuildCommand: 'python3 $(Build.SourcesDirectory)/tools/ci_build/build.py --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --parallel --build_shared_lib --use_openmp --config RelWithDebInfo'
BuildCommand: 'python3 $(Build.SourcesDirectory)/tools/ci_build/build.py --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --parallel --build_shared_lib --disable_ort_format_load --use_openmp --config RelWithDebInfo'
DoNugetPack : 'true'
NuPackScript: |
set -e -x

View file

@ -110,6 +110,7 @@ stages:
--config Release \
--skip_submodule_sync \
--parallel \
--disable_ort_format_load \
--enable_lto \
--build_wheel \
--use_openmp \
@ -188,6 +189,7 @@ stages:
--config Release \
--skip_submodule_sync \
--parallel \
--disable_ort_format_load \
--build_wheel \
--enable_onnx_tests --use_cuda --cuda_version=10.2 --cuda_home=/usr/local/cuda-10.2 --cudnn_home=/usr/local/cuda-10.2 \
${{ parameters.build_py_parameters }} \
@ -270,6 +272,7 @@ stages:
--config Release \
--skip_submodule_sync \
--parallel \
--disable_ort_format_load \
--build_wheel \
--enable_onnx_tests \
${{ parameters.build_py_parameters }} \
@ -365,6 +368,7 @@ stages:
--config RelWithDebInfo
--enable_lto
--disable_rtti
--disable_ort_format_load
--build_dir $(Build.BinariesDirectory)
--skip_submodule_sync
--cmake_generator "Visual Studio 16 2019"
@ -488,6 +492,7 @@ stages:
--build_dir $(Build.BinariesDirectory)
--skip_submodule_sync
--cmake_generator "Visual Studio 16 2019"
--disable_ort_format_load
--enable_pybind
--enable_onnx_tests
${{ parameters.build_py_parameters }}
@ -575,7 +580,7 @@ stages:
- script: |
sudo python -m pip install -r '$(Build.SourcesDirectory)/tools/ci_build/github/linux/docker/scripts/requirements.txt'
sudo xcode-select --switch /Applications/Xcode_10.app/Contents/Developer
./build.sh --config Release --skip_submodule_sync --parallel --build_wheel --use_openmp ${{ parameters.build_py_parameters }}
./build.sh --config Release --skip_submodule_sync --parallel --disable_ort_format_load --build_wheel --use_openmp ${{ parameters.build_py_parameters }}
displayName: 'Command Line Script'
- task: CopyFiles@2

View file

@ -11,7 +11,7 @@ steps:
displayName: 'Download test data and generate cmake config'
inputs:
script: |
$(Build.BinariesDirectory)\packages\python\python.exe $(Build.SourcesDirectory)\tools\ci_build\build.py --config ${{parameters.buildConfig}} --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --cmake_path $(Build.BinariesDirectory)\cmake\bin\cmake.exe --ctest_path $(Build.BinariesDirectory)\cmake\bin\ctest.exe --enable_onnx_tests --update ${{parameters.buildAdditionalParams}}
$(Build.BinariesDirectory)\packages\python\python.exe $(Build.SourcesDirectory)\tools\ci_build\build.py --config ${{parameters.buildConfig}} --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --disable_ort_format_load --cmake_path $(Build.BinariesDirectory)\cmake\bin\cmake.exe --ctest_path $(Build.BinariesDirectory)\cmake\bin\ctest.exe --enable_onnx_tests --update ${{parameters.buildAdditionalParams}}
workingDirectory: '$(Build.BinariesDirectory)'
- task: VSBuild@1
@ -29,7 +29,7 @@ steps:
displayName: 'Test ${{parameters.buildConfig}}'
inputs:
filename: '$(Build.BinariesDirectory)\packages\python\python.exe'
arguments: '$(Build.SourcesDirectory)\tools\ci_build\build.py --config ${{parameters.buildConfig}} --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --cmake_path $(Build.BinariesDirectory)\cmake\bin\cmake.exe --ctest_path $(Build.BinariesDirectory)\cmake\bin\ctest.exe --build_shared_lib --enable_onnx_tests --test ${{parameters.buildAdditionalParams}}'
arguments: '$(Build.SourcesDirectory)\tools\ci_build\build.py --config ${{parameters.buildConfig}} --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --cmake_path $(Build.BinariesDirectory)\cmake\bin\cmake.exe --ctest_path $(Build.BinariesDirectory)\cmake\bin\ctest.exe --build_shared_lib --disable_ort_format_load --enable_onnx_tests --test ${{parameters.buildAdditionalParams}}'
workingFolder: '$(Build.BinariesDirectory)'
- task: PublishTestResults@2

View file

@ -38,21 +38,21 @@ steps:
inputs:
scriptPath: '$(Build.SourcesDirectory)\tools\ci_build\build.py'
${{ if and(eq(parameters.BuildArch, 'x64'), eq(parameters.BuildForStore, 'false')) }}:
arguments: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --enable_onnx_tests --enable_wcos $(TelemetryOption) --use_dml --use_winml --cmake_generator "Visual Studio 16 2019" --update --config RelWithDebInfo --enable_lto --disable_rtti'
arguments: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --disable_ort_format_load --enable_onnx_tests --enable_wcos $(TelemetryOption) --use_dml --use_winml --cmake_generator "Visual Studio 16 2019" --update --config RelWithDebInfo --enable_lto --disable_rtti'
${{ if and(eq(parameters.BuildArch, 'x64'), eq(parameters.BuildForStore, 'true')) }}:
arguments: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --skip_winml_tests --enable_wcos $(TelemetryOption) --use_winml --cmake_generator "Visual Studio 16 2019" --update --config RelWithDebInfo --enable_lto --disable_rtti --enable_windows_store --target winml_dll'
arguments: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --disable_ort_format_load --skip_winml_tests --enable_wcos $(TelemetryOption) --use_winml --cmake_generator "Visual Studio 16 2019" --update --config RelWithDebInfo --enable_lto --disable_rtti --enable_windows_store --target winml_dll'
${{ if and(eq(parameters.BuildArch, 'x86'), eq(parameters.BuildForStore, 'false')) }}:
arguments: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --enable_onnx_tests --enable_wcos $(TelemetryOption) --use_dml --use_winml --cmake_generator "Visual Studio 16 2019" --update --config RelWithDebInfo --enable_lto --disable_rtti --x86'
arguments: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --disable_ort_format_load --enable_onnx_tests --enable_wcos $(TelemetryOption) --use_dml --use_winml --cmake_generator "Visual Studio 16 2019" --update --config RelWithDebInfo --enable_lto --disable_rtti --x86'
${{ if and(eq(parameters.BuildArch, 'x86'), eq(parameters.BuildForStore, 'true')) }}:
arguments: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --skip_winml_tests --enable_wcos $(TelemetryOption) --use_winml --cmake_generator "Visual Studio 16 2019" --update --config RelWithDebInfo --enable_lto --disable_rtti --x86 --enable_windows_store --target winml_dll'
arguments: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --disable_ort_format_load --skip_winml_tests --enable_wcos $(TelemetryOption) --use_winml --cmake_generator "Visual Studio 16 2019" --update --config RelWithDebInfo --enable_lto --disable_rtti --x86 --enable_windows_store --target winml_dll'
${{ if and(eq(parameters.BuildArch, 'arm64'), eq(parameters.BuildForStore, 'false')) }}:
arguments: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --enable_onnx_tests --enable_wcos $(TelemetryOption) --use_winml --cmake_generator "Visual Studio 16 2019" --update --config RelWithDebInfo --enable_lto --disable_rtti --arm64'
arguments: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --disable_ort_format_load --enable_onnx_tests --enable_wcos $(TelemetryOption) --use_winml --cmake_generator "Visual Studio 16 2019" --update --config RelWithDebInfo --enable_lto --disable_rtti --arm64'
${{ if and(eq(parameters.BuildArch, 'arm64'), eq(parameters.BuildForStore, 'true')) }}:
arguments: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --skip_winml_tests --enable_wcos $(TelemetryOption) --use_winml --cmake_generator "Visual Studio 16 2019" --update --config RelWithDebInfo --enable_lto --disable_rtti --arm64 --enable_windows_store --target winml_dll'
arguments: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --disable_ort_format_load --skip_winml_tests --enable_wcos $(TelemetryOption) --use_winml --cmake_generator "Visual Studio 16 2019" --update --config RelWithDebInfo --enable_lto --disable_rtti --arm64 --enable_windows_store --target winml_dll'
${{ if and(eq(parameters.BuildArch, 'arm'), eq(parameters.BuildForStore, 'false')) }}:
arguments: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --enable_onnx_tests --enable_wcos $(TelemetryOption) --use_winml --cmake_generator "Visual Studio 16 2019" --update --config RelWithDebInfo --enable_lto --disable_rtti --arm'
arguments: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --disable_ort_format_load --enable_onnx_tests --enable_wcos $(TelemetryOption) --use_winml --cmake_generator "Visual Studio 16 2019" --update --config RelWithDebInfo --enable_lto --disable_rtti --arm'
${{ if and(eq(parameters.BuildArch, 'arm'), eq(parameters.BuildForStore, 'true')) }}:
arguments: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --skip_winml_tests --enable_wcos $(TelemetryOption) --use_winml --cmake_generator "Visual Studio 16 2019" --update --config RelWithDebInfo --enable_lto --disable_rtti --arm --enable_windows_store --target winml_dll'
arguments: '--build_dir $(Build.BinariesDirectory) --skip_submodule_sync --build_shared_lib --disable_ort_format_load --skip_winml_tests --enable_wcos $(TelemetryOption) --use_winml --cmake_generator "Visual Studio 16 2019" --update --config RelWithDebInfo --enable_lto --disable_rtti --arm --enable_windows_store --target winml_dll'
workingDirectory: '$(Build.BinariesDirectory)'
- ${{ if or(notIn(parameters['sln_platform'], 'Win32', 'x64'), eq(parameters.BuildForStore, 'true')) }}: