# A package with multiple support for multiple GPU types

**URL:** <https://discourse.julialang.org/t/a-package-with-multiple-support-for-multiple-gpu-types/137789>\
**Category:** General Usage\
**Tags:** package\
**Created:** [June 24, 2026, 9:27pm UTC](https://discourse.julialang.org/t/a-package-with-multiple-support-for-multiple-gpu-types/137789 "2026-06-24T21:27:47Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![PatrickHaecker](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/patrickhaecker/32/222891_2.png) [@PatrickHaecker](https://discourse.julialang.org/u/PatrickHaecker)\
**Post date:** [June 25, 2026, 3:42am UTC](https://discourse.julialang.org/t/a-package-with-multiple-support-for-multiple-gpu-types/137789/3 "2026-06-25T03:42:34Z")

</div>

Do you have an [app package or a library package](https://discourse.julialang.org/t/does-manifest-toml-belong-in-the-repository/12029/2)?

For a library package, you probably should not have a Manifest.toml, so there should not be a problem with `instantiate` to begin with.

For an app package, I think the user should be free to choose on their own (they might even decide to use the CPU because their GPU is busy with some other stuff). Using preferences and potentially package extensions might help. As far as I know there are no union dependencies, so you can’t depend on `oneAPI.jl OR CUDA.jl`.

---

_[View the full topic](https://discourse.julialang.org/t/a-package-with-multiple-support-for-multiple-gpu-types/137789)._
