diff --git a/recipe/migrations/cuda129.yaml b/recipe/migrations/cuda129.yaml new file mode 100644 index 0000000000..dd015c53f9 --- /dev/null +++ b/recipe/migrations/cuda129.yaml @@ -0,0 +1,54 @@ +migrator_ts: 1738229377 +__migrator: + kind: + version + migration_number: + 1 + build_number: + 1 + paused: false + override_cbc_keys: + - cuda_compiler_stub + check_solvable: false + primary_key: cuda_compiler_version + ordering: + cuda_compiler_version: + - 12.4 + - 12.6 + - 12.8 + - None + - 12.9 + # to allow manual opt-in for CUDA 11.8, see + # https://github.com/conda-forge/conda-forge-pinning-feedstock/pull/7472 + # must be last due to how cuda_compiler ordering in that migrator works + - 11.8 + commit_message: | + Upgrade to CUDA 12.9 + + CUDA 12.8 added support for architectures `sm_100`, `sm_101` and `sm_120`, + while CUDA 12.9 further added `sm_103` and `sm_121`. To build for these, + maintainers will need to modify their existing list of specified architectures + (e.g. `CMAKE_CUDA_ARCHITECTURES`, `TORCH_CUDA_ARCH_LIST`, etc.) + for their package. A good balance between broad support and storage + footprint (resp. compilation time) is to add `sm_100` and `sm_120`. + + Since CUDA 12.8, the conda-forge nvcc package now sets `CUDAARCHS` and + `TORCH_CUDA_ARCH_LIST` in its activation script to a string containing all + of the supported real architectures plus the virtual architecture of the + latest. Recipes for packages who use these variables to control their build + but do not want to build for all supported architectures will need to override + these variables in their build script. + + ref: https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#new-features + +cuda_compiler_version: # [((linux and (x86_64 or aarch64)) or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + - 12.9 # [((linux and (x86_64 or aarch64)) or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + +c_compiler_version: # [(linux and (x86_64 or aarch64)) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + - 13 # [(linux and (x86_64 or aarch64)) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + +cxx_compiler_version: # [(linux and (x86_64 or aarch64)) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + - 13 # [(linux and (x86_64 or aarch64)) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + +fortran_compiler_version: # [(linux and (x86_64 or aarch64)) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + - 13 # [(linux and (x86_64 or aarch64)) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]