|
| 1 | +# Dropping CUDA 11.8 as a default CUDA version |
| 2 | + |
| 3 | +CUDA 11.8 is the last holdover from the old days before conda-forge |
| 4 | +[switched](https://github.com/conda-forge/conda-forge.github.io/issues/1963) |
| 5 | +to the new and shiny CUDA 12+ infrastructure, where the CUDA toolchain |
| 6 | +is provided as native conda-packages, rather than a blob in an image. |
| 7 | + |
| 8 | +For CUDA-enabled feedstocks, we've been building both 11.8 and 12.6 by default |
| 9 | +for a while now, but many feedstocks (notably pytorch, tensorflow, onnx, jax etc.) |
| 10 | +have dropped CUDA 11.8 for many months already. |
| 11 | + |
| 12 | +Due to various constraints (details below), we are dropping CUDA 11.8 as a default |
| 13 | +version in our global pinning on June 5th. It will still be possible to opt into |
| 14 | +building CUDA 11.8 on a per-feedstock basis where this is necessary or beneficial. |
| 15 | + |
| 16 | +<!-- truncate --> |
| 17 | + |
| 18 | +The above-mentioned contraints are mainly: |
| 19 | + |
| 20 | +- it [complicates our pinning](https://github.com/conda-forge/conda-forge-pinning-feedstock/issues/6967) due to needing to switch images and compilers with 11.8. |
| 21 | +- it keeps us from [migrating](https://github.com/conda-forge/conda-forge-pinning-feedstock/pull/7005) |
| 22 | + to newer CUDA 12.x versions necessary to support new architectures. |
| 23 | +- it's [not compatible with VS2022](https://github.com/conda-forge/conda-forge.github.io/issues/2138#issuecomment-2916743741), which is due to become the default toolchain on windows |
| 24 | + in conda-forge soon (the previous VS2019 has reached end-of-life more than a year ago). |
| 25 | +- it complicates our infrastructure in several places, due to the big differences between the |
| 26 | + before/after of the new CUDA architecture. |
| 27 | + |
| 28 | +After we have removed CUDA 11.8 from the pinning, any feedstock still building that version |
| 29 | +will drop the respective CI jobs upon rerendering. For feedstocks wanting to keep building |
| 30 | +CUDA 11.8 a bit longer, here's a sample configuration you can put under |
| 31 | +`recipe/conda_build_config.yaml` (and then rerender). |
| 32 | + |
| 33 | +```yaml |
| 34 | +cuda_compiler: |
| 35 | + - None |
| 36 | + - nvcc # [linux or win] |
| 37 | + - cuda-nvcc # [linux or win] |
| 38 | +cuda_compiler_version: |
| 39 | + - None |
| 40 | + - 11.8 # [linux or win] |
| 41 | + - 12.4 # [linux and ppc64le] |
| 42 | + - 12.8 # [(linux and not ppc64le) or win] |
| 43 | + |
| 44 | +# use the same 11.8-enabled image for all variants (changes to ubi8, |
| 45 | +# down from default alma9, also for non-CUDA and CUDA 12 builds) |
| 46 | +docker_image: # [linux] |
| 47 | + # CUDA 11.8 builds |
| 48 | + - quay.io/condaforge/linux-anvil-x86_64-cuda11.8:ubi8 # [linux64 and os.environ.get("BUILD_PLATFORM") == "linux-64"] |
| 49 | + # CUDA 11.8 arch: native compilation (build == target) |
| 50 | + - quay.io/condaforge/linux-anvil-aarch64-cuda11.8:ubi8 # [aarch64 and os.environ.get("BUILD_PLATFORM") == "linux-aarch64"] |
| 51 | + - quay.io/condaforge/linux-anvil-ppc64le-cuda11.8:ubi8 # [ppc64le and os.environ.get("BUILD_PLATFORM") == "linux-ppc64le"] |
| 52 | + # CUDA 11.8 arch: cross-compilation (build != target) |
| 53 | + - quay.io/condaforge/linux-anvil-x86_64-cuda11.8:ubi8 # [aarch64 and os.environ.get("BUILD_PLATFORM") == "linux-64"] |
| 54 | + - quay.io/condaforge/linux-anvil-x86_64-cuda11.8:ubi8 # [ppc64le and os.environ.get("BUILD_PLATFORM") == "linux-64"] |
| 55 | + |
| 56 | +# CUDA 11.8 is not compatible with current compilers |
| 57 | +c_compiler: # [win] |
| 58 | + - vs2019 # [win] |
| 59 | +cxx_compiler: # [win] |
| 60 | + - vs2019 # [win] |
| 61 | +c_compiler_version: # [linux] |
| 62 | + - 13 # [linux] |
| 63 | + - 11 # [linux] |
| 64 | + - 12 # [linux and ppc64le] |
| 65 | + - 13 # [linux and not ppc64le] |
| 66 | +cxx_compiler_version: # [linux] |
| 67 | + - 13 # [linux] |
| 68 | + - 11 # [linux] |
| 69 | + - 12 # [linux and ppc64le] |
| 70 | + - 13 # [linux and not ppc64le] |
| 71 | +fortran_compiler_version: # [linux] |
| 72 | + - 13 # [linux] |
| 73 | + - 11 # [linux] |
| 74 | + - 12 # [linux and ppc64le] |
| 75 | + - 13 # [linux and not ppc64le] |
| 76 | +``` |
| 77 | +
|
| 78 | +Due to changes in the pinning structure (which keys are zipped together), it's possible that |
| 79 | +further adaptations are necessary; you can ping conda-forge/core for that. Also, please let us |
| 80 | +know in the [issue](https://github.com/conda-forge/conda-forge-pinning-feedstock/issues/7404) |
| 81 | +if your feedstock still needs to support CUDA 11.8 and why (later down the line we'll want to |
| 82 | +drop support also in conda-forge-ci-setup, and knowing what feedstocks - if any - still need |
| 83 | +CUDA 11.8 will help guide the decision on timing). |
0 commit comments