Memory Optimization for Compilation in OVEP
Calling Split API Calls Read+Model in lieu of unified Compile Model call for export compile flow to ensure memory optimization. Freeing up model proto and serialized string and read model ov ir later to free up memory for the ahead pipeline Optimization during EpCtxt flow All the Graph related operations require all the Node Attributes to be set while dealing with model instances internally with them, in the existing implementation these attributes make a copy when constructing a Graph dynamically during runtime. Propose to use these attributes in place without creating a copy to avoid memory allocation / copy while calling these Graph related functions. Changes to ensure the bug fixes related to openvino version and epctxt file path. Moving Compiler version to C++20 for getting r-value mem optimizations benefit
Motivation and Context
This change is required because memory optimization during Compilation flow is too high.
@jywu-msft
@jywu-msft Please review
/azp run Linux OpenVINO CI Pipeline
Azure Pipelines successfully started running 1 pipeline(s).
/azp run Linux OpenVINO CI Pipeline
Azure Pipelines successfully started running 1 pipeline(s).
Fixed Unit test failures
/azp run Linux OpenVINO CI Pipeline
Azure Pipelines successfully started running 1 pipeline(s).
/azp run Linux CPU CI Pipeline, Linux CPU Minimal Build E2E CI Pipeline, Linux GPU CI Pipeline, Linux GPU TensorRT CI Pipeline, MacOS CI Pipeline, ONNX Runtime Web CI Pipeline, onnxruntime-binary-size-checks-ci-pipeline, Linux QNN CI Pipeline
Azure Pipelines successfully started running 8 pipeline(s).
/azp run Windows CPU CI Pipeline, Windows GPU CI Pipeline, Windows GPU TensorRT CI Pipeline, Windows ARM64 QNN CI Pipeline, orttraining-linux-ci-pipeline, orttraining-linux-gpu-ci-pipeline, orttraining-ortmodule-distributed, Windows x64 QNN CI Pipeline, Linux MIGraphX CI Pipeline, Big Models
/azp run ONNX Runtime React Native CI Pipeline, orttraining-amd-gpu-ci-pipeline, Linux Android Emulator QNN CI Pipeline
Azure Pipelines successfully started running 9 pipeline(s).
Azure Pipelines successfully started running 3 pipeline(s).
/azp run Windows GPU CUDA CI Pipeline, Windows GPU DML CI Pipeline, Windows GPU Doc Gen CI Pipeline
Azure Pipelines successfully started running 3 pipeline(s).
@jywu-msft Can you help with retriggering the linux pipelines for the failure logs on onnxruntime_test_python.py unit tests.
/azp run Linux OpenVINO CI Pipeline
Azure Pipelines successfully started running 1 pipeline(s).
/azp run Linux OpenVINO CI Pipeline
Pull request contains merge conflicts.
@jywu-msft The merge conflicts are fixed. OVEP Internal ci pipeline is successful. Can you kick start the workflows at your availability
/azp run Windows CPU CI Pipeline, Windows GPU CI Pipeline, Windows GPU TensorRT CI Pipeline, Windows ARM64 QNN CI Pipeline, orttraining-linux-ci-pipeline, orttraining-linux-gpu-ci-pipeline, orttraining-ortmodule-distributed, Windows x64 QNN CI Pipeline, Linux MIGraphX CI Pipeline, Big Models
/azp run Windows GPU CUDA CI Pipeline, Windows GPU DML CI Pipeline, Windows GPU Doc Gen CI Pipeline
Azure Pipelines successfully started running 3 pipeline(s).
/azp run Linux CPU CI Pipeline, Linux CPU Minimal Build E2E CI Pipeline, Linux GPU CI Pipeline, Linux GPU TensorRT CI Pipeline, MacOS CI Pipeline, ONNX Runtime Web CI Pipeline, onnxruntime-binary-size-checks-ci-pipeline, Linux QNN CI Pipeline
Azure Pipelines successfully started running 9 pipeline(s).
/azp run Linux OpenVINO CI Pipeline
Azure Pipelines successfully started running 1 pipeline(s).