microsoft / microsoft/onnxruntime
No nuget packages when building multiple EPs
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 21.9k
- Forks
- 4.2k
- Avg merge
- 4d 11h
- Merged PRs (30d)
- 184
Description
**Describe the bug**
When building for source with a combinations of EPs such as the example below only on nugets for one EP will be built.
**Urgency**
No strict urgency, I would like to be able to use the command below. Perhaps this is intended, you cannot combine multiple EPs and nuget. Then I would like the build to fail earlier if it is the case.
**System information**
- Windows 10
- ONNX Runtime built from source
- ONNX Runtime version: 2d6e10ba0054bfbbbc89f1e6d945b4ca3d59631f
- Python version: 3.9.2
- Visual Studio version (if applicable): 16.8.6
- GCC/Compiler version (if compiling from source): CMake 3.19.5
- CUDA/cuDNN version: 10.2.89 / TensorRT 7.1.3.4
- GPU model and memory: RTX 3070 8gb
**To Reproduce**
Running build command:
```powershell
./build.bat --config RelWithDebInfo `
--build_shared_lib --build_nuget --parallel --use_openmp `
--cuda_version 10.2 --cuda_home "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2" `
--cudnn_home "C:\Users\thomas\bin\cudnn" `
--use_tensorrt --tensorrt_home "C:\Users\thomas\bin\TensorRT" `
--use_dnnl --use_dml --cmake_generator "Visual Studio 16 2019" --skip_tests
```
nuget.exe in `PATH`.
**Expected behavior**
Build nuget packages for each EPs as if the build command had been run separately for each EP.
Now the two below are the only nugets built.
```powershell
> ls .\build\Windows\RelWithDebInfo\RelWithDebInfo\nuget-artifacts\ | select name
Name
----
Microsoft.ML.OnnxRuntime.Managed.1.7.0-dev-20210301-0714-2d6e10ba0.nupkg
Microsoft.ML.OnnxRuntime.TensorRT.1.7.0-dev-20210301-0714-2d6e10ba0.nupkg
```
I would expect all the relevant nugets to be built:
```
Microsoft.ML.OnnxRuntime.1.7.0-dev-20210301-0714-2d6e10ba0.nupkg # from DML
Microsoft.ML.OnnxRuntime.DNNL.1.7.0-dev-20210301-0714-2d6e10ba0.nupkg
Microsoft.ML.OnnxRuntime.GPU.1.7.0-dev-20210301-0714-2d6e10ba0.nupkg
...
```
**Additional context**
The DML related packages are built (or however they are created)
```powershell
> ls .\build\Windows\packages\ | select name
Name
----
GoogleTestAdapter.0.17.1
Microsoft.AI.DirectML.1.4.2
Microsoft.Windows.CppWinRT.2.0.201113.7
```
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with build.bat and the NuGet packaging flow that produces build/Windows/RelWithDebInfo/RelWithDebInfo/nuget-artifacts, using the provided multi-EP command as the reproduction case. Compare the packaging behavior for DML, DNNL, CUDA, and TensorRT options; done means all applicable NuGet packages are produced, or the build fails early when combinations are unsupported.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, cpp
- Domain
- build-system, release
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100