Skip to content

Supporting precompilation without CUDA is problematic #2253

Open
@maleadt

Description

@maleadt

We currently support precompiling CUDA-dependent packages like CUDA.jl or CUDNN_jll.jl when the user doesn't have CUDA installed. This was motivated by not having package extensions, but it also simplifies deployment (e.g. on HPC log-in nodes) or use if non-GPU infrastructure (like Registrator.jl).

It however also leads to issues like #2252, where the user can precompile CUDNN_jll without CUDA, resulting in a precompilation cache containing cuda+none that doesn't invalidate when CUDA does get installed later on. We had a similar issue with upgrades, #1877, but in this case we cannot add an include dependency on a missing library (whose ultimate installation location we do not know).

I fear that the only way to support this, is to refuse precompilation without CUDA. This can be argued for now that we have package extensions, but it would regress other use cases as well. At the least, it should be possible to override this behavior for HPC use case, instead providing the runtime CUDA version, and possibly the fact to use a local toolkit as well.

Metadata

Metadata

Assignees

No one assigned

    Labels

    installationCUDA is easy to install, right?

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions