-
Notifications
You must be signed in to change notification settings - Fork 6.5k
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
[onnxruntime-cuda12] new port #38275
base: master
Are you sure you want to change the base?
Conversation
7aa688c
to
bf716c4
Compare
bf716c4
to
95e645e
Compare
I'd like to upgrade onnxruntime-gpu if needed, but the cuda I'm currently using is all 12, and having multiple versions of cuda on one machine could cause quite a few problems! |
@FrankXie05 Any news? |
All features and usage have been tested successfully on |
I understand why you are trying to make this change, but this should be an overlay port or in a custom registry for now. I think the port should use the default version of CUDA recommended by upstream. There is cost for maintaining multiple versions of a port ( |
There is also #36850 which uses port features for the different execution providers. |
There's no telling when this pr will be merged at all I guess, this pr is compiled with the source code to replace the current direct download version, it looks like it's going to be a long work in progress. |
Like @JoergAtGithub mentioned, if that pr is finished, I won't need further maintenance on this port, but isn't he currently not finished? I don't know when it will be finished either. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This port conflicts with an existing port:
error: The following files are already installed in D:/vcpkg/installed/x64-windows and are in conflict with onnxruntime-gpu:x64-windows
Installed by onnxruntime-cuda12:x64-windows
bin/onnxruntime.dll
bin/onnxruntime.pdb
bin/onnxruntime_providers_cuda.dll
bin/onnxruntime_providers_cuda.pdb
bin/onnxruntime_providers_shared.dll
bin/onnxruntime_providers_shared.pdb
bin/onnxruntime_providers_tensorrt.dll
bin/onnxruntime_providers_tensorrt.pdb
debug/bin/onnxruntime.dll
debug/bin/onnxruntime.pdb
debug/bin/onnxruntime_providers_cuda.dll
debug/bin/onnxruntime_providers_cuda.pdb
debug/bin/onnxruntime_providers_shared.dll
debug/bin/onnxruntime_providers_shared.pdb
debug/bin/onnxruntime_providers_tensorrt.dll
debug/bin/onnxruntime_providers_tensorrt.pdb
debug/lib/onnxruntime.lib
debug/lib/onnxruntime_providers_cuda.lib
debug/lib/onnxruntime_providers_shared.lib
debug/lib/onnxruntime_providers_tensorrt.lib
lib/onnxruntime.lib
lib/onnxruntime_providers_cuda.lib
lib/onnxruntime_providers_shared.lib
lib/onnxruntime_providers_tensorrt.lib
@BillyONeal It will definitely conflict with onnxruntime-gpu because this port is the onnxruntime which using the cuda12, using the same dll or so with onnxruntime-gpu, do you have any suggestions for modifications? In fact if a future compiled version of onnxruntime is merged, it's bound to conflict with onnxruntime-gpu as well. Normally you wouldn't install more than one version of onnxruntime at the same time, because even if you avoid the conflict by modifying the name of the dll or so, all the functions are still the same and still in conflict, you can't link different versions of onnxruntime at the same time! |
There's an open question on how to represent
Some potential options to improve the situation:
Longer term, we may revisit our features as alternatives policy to account for scenarios like this. |
Creating an overlay port is not a option. You can't expect everyone to know how to write portfile, even if it's just downloading a precompiled link library that doesn't involve compilation. And in order for cmake to find it, users need to have a deep understanding of the mechanics of cmake as well. Isn't open source about not building the wheel over and over again? |
Hi @vipcxj unfortunately, we can't accept this port into the main catalog until we figure out a better solution for our features as alternatives policy. There are changes in this PR, such as the CMake config changes, that we can accept into the |
I'm sorry that there was some confusion over this. You can write instructions in the 'onnxruntime' port that says 'to get the CUDA12 one, copy this as an overlay port and make these changes'. We are not going to be able to accept ports like this that conflict with each other for the foreseeable future. Before registries were a feature, we accepted some alternatives, such as See also https://learn.microsoft.com/vcpkg/contributing/maintainer-guide#unique-port-attribution-rule Example ports already following this pattern include:
|
find_package
calls are REQUIRED, are satisfied byvcpkg.json
's declared dependencies, or disabled with CMAKE_DISABLE_FIND_PACKAGE_Xxx.vcpkg.json
matches what upstream says.vcpkg.json
matches what upstream says../vcpkg x-add-version --all
and committing the result.There is already a port named onnxruntime-gpu. But it use cuda 11. And cuda 11 is still the default cuda version of onnxruntime-gpu. This port introduce the onnxruntime-gpu with cuda 12.