A package with multiple support for multiple GPU types

Do you have an app package or a library package?

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.