From 32272d3f03b47527086025e9b587b1ed40bba883 Mon Sep 17 00:00:00 2001 From: regro-cf-autotick-bot <36490558+regro-cf-autotick-bot@users.noreply.github.com> Date: Fri, 15 May 2026 22:40:18 +0000 Subject: [PATCH 1/2] Upgrade to CUDA 13.0 CUDA 13.0 requires architecture `sm_75` or higher, and renamed `sm_101` to `sm_110`. 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. Since CUDA 12.8, the conda-forge nvcc package now sets `CUDAARCHS` and 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 > [[!IMPORTANT]] > Remember to update any CUDA 11/12 specific selector syntax in the recipe to include > CUDA 13. For example `# [(cuda_compiler_version or "None").startswith("12")]` > might be replaced with `# [cuda_compiler_version != "None"]`. --- .ci_support/migrations/cuda130.yaml | 62 +++++++++++++++++++++++++++++ recipe/recipe.yaml | 33 +++++++-------- 2 files changed, 79 insertions(+), 16 deletions(-) create mode 100644 .ci_support/migrations/cuda130.yaml diff --git a/.ci_support/migrations/cuda130.yaml b/.ci_support/migrations/cuda130.yaml new file mode 100644 index 00000000..2bc82b75 --- /dev/null +++ b/.ci_support/migrations/cuda130.yaml @@ -0,0 +1,62 @@ +migrator_ts: 1755016036 +__migrator: + operation: key_add + 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 + - 13.0 + # 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 + wait_for_migrators: + - cuda129 + commit_message: | + Upgrade to CUDA 13.0 + + CUDA 13.0 requires architecture `sm_75` or higher, and renamed `sm_101` to + `sm_110`. 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. + + Since CUDA 12.8, the conda-forge nvcc package now sets `CUDAARCHS` and + 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 + + > [[!IMPORTANT]] + > Remember to update any CUDA 11/12 specific selector syntax in the recipe to include + > CUDA 13. For example `# [(cuda_compiler_version or "None").startswith("12")]` + > might be replaced with `# [cuda_compiler_version != "None"]`. + +cuda_compiler_version: # [((linux and (x86_64 or aarch64)) or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + - 13.0 # [((linux and (x86_64 or aarch64)) or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + +c_stdlib_version: # [(linux and (x86_64 or aarch64)) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + - 2.28 # [(linux and (x86_64 or aarch64)) 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"] + - 14 # [(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"] + - 14 # [(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"] + - 14 # [(linux and (x86_64 or aarch64)) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] diff --git a/recipe/recipe.yaml b/recipe/recipe.yaml index d2c62dc5..b3fd8cc9 100644 --- a/recipe/recipe.yaml +++ b/recipe/recipe.yaml @@ -2,7 +2,7 @@ schema_version: 1 context: version: "2.19.1" - build: 5 + build: 6 # Quite often libml_dtypes-headers and ml_dtypes diverge. # https://github.com/tensorflow/tensorflow/blob/v2.18.0/third_party/py/ml_dtypes/workspace.bzl libml_dtypes_version: "0.5.1" @@ -150,18 +150,18 @@ outputs: - cudnn - nccl - cuda-version ${{ cuda_compiler_version }}.* - - if: cuda_compiler_version != "None" and cuda_compiler_version[:2] == "12" - then: - - cuda-cupti-dev - - cuda-cudart-dev - - cuda-nvml-dev - - cuda-nvtx-dev - - libcublas-dev - - libcusolver-dev - - libcurand-dev - - libcufft-dev - - libcusparse-dev - - libnvjitlink-dev + - if: cuda_compiler_version[:2] == "12" + then: + - cuda-cupti-dev + - cuda-cudart-dev + - cuda-nvml-dev + - cuda-nvtx-dev + - libcublas-dev + - libcusolver-dev + - libcurand-dev + - libcufft-dev + - libcusparse-dev + - libnvjitlink-dev # If 3.12 is changed, edit recipe/build_pkg.sh too - python 3.12.* - pip @@ -380,10 +380,11 @@ outputs: - keras >=3.5 # avoid that people without GPUs needlessly download ~0.5-1GB - if: cuda_compiler_version != "None" - then: __cuda + then: # https://github.com/conda-forge/tensorflow-feedstock/issues/296#issuecomment-1835781851 - - if: cuda_compiler_version != "None" and cuda_compiler_version[:2] == "12" - then: cuda-nvcc-tools + - __cuda + - if: cuda_compiler_version[:2] == "12" + then: cuda-nvcc-tools - ${{ pin_subpackage("libtensorflow_framework", exact=True) }} - ${{ pin_subpackage("libtensorflow_cc", exact=True) }} tests: From 93c3f3dad89a023dd2f69528171f4d6ff0a8568c Mon Sep 17 00:00:00 2001 From: regro-cf-autotick-bot <36490558+regro-cf-autotick-bot@users.noreply.github.com> Date: Fri, 15 May 2026 22:41:34 +0000 Subject: [PATCH 2/2] MNT: Re-rendered with conda-smithy 3.61.2 and conda-forge-pinning 2026.05.15.18.02.4 --- ..._compiler_version13.0microarch_level1.yaml | 74 +++++++++++++++++++ ..._compiler_version13.0microarch_level3.yaml | 74 +++++++++++++++++++ .github/workflows/conda-build.yml | 12 +++ pixi.toml | 12 +++ 4 files changed, 172 insertions(+) create mode 100644 .ci_support/linux_64_cuda_compiler_version13.0microarch_level1.yaml create mode 100644 .ci_support/linux_64_cuda_compiler_version13.0microarch_level3.yaml diff --git a/.ci_support/linux_64_cuda_compiler_version13.0microarch_level1.yaml b/.ci_support/linux_64_cuda_compiler_version13.0microarch_level1.yaml new file mode 100644 index 00000000..2cf05c10 --- /dev/null +++ b/.ci_support/linux_64_cuda_compiler_version13.0microarch_level1.yaml @@ -0,0 +1,74 @@ +c_compiler: +- gcc +c_compiler_version: +- '14' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.28' +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- cuda-nvcc +cuda_compiler_version: +- '13.0' +cudnn: +- '9' +cxx_compiler: +- gxx +cxx_compiler_version: +- '14' +docker_image: +- quay.io/condaforge/linux-anvil-x86_64:alma9 +flatbuffers: +- 25.9.23 +giflib: +- '5.2' +github_actions_labels: +- namespace-profile-16cpu-on-linux-64 +icu: +- '78' +libabseil: +- '20260107' +libcurl: +- '8' +libgrpc: +- '1.78' +libjpeg_turbo: +- '3' +libpng: +- '1.6' +libprotobuf: +- 6.33.5 +microarch_level: +- '1' +nccl: +- '2' +openssl: +- '3.5' +perl: +- 5.32.1 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.10.* *_cpython +- 3.11.* *_cpython +- 3.12.* *_cpython +- 3.13.* *_cp313 +snappy: +- '1.2' +sqlite: +- '3' +target_platform: +- linux-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version + - c_stdlib_version + - cuda_compiler_version +zlib: +- '1' diff --git a/.ci_support/linux_64_cuda_compiler_version13.0microarch_level3.yaml b/.ci_support/linux_64_cuda_compiler_version13.0microarch_level3.yaml new file mode 100644 index 00000000..47dcb75d --- /dev/null +++ b/.ci_support/linux_64_cuda_compiler_version13.0microarch_level3.yaml @@ -0,0 +1,74 @@ +c_compiler: +- gcc +c_compiler_version: +- '14' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.28' +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- cuda-nvcc +cuda_compiler_version: +- '13.0' +cudnn: +- '9' +cxx_compiler: +- gxx +cxx_compiler_version: +- '14' +docker_image: +- quay.io/condaforge/linux-anvil-x86_64:alma9 +flatbuffers: +- 25.9.23 +giflib: +- '5.2' +github_actions_labels: +- namespace-profile-16cpu-on-linux-64 +icu: +- '78' +libabseil: +- '20260107' +libcurl: +- '8' +libgrpc: +- '1.78' +libjpeg_turbo: +- '3' +libpng: +- '1.6' +libprotobuf: +- 6.33.5 +microarch_level: +- '3' +nccl: +- '2' +openssl: +- '3.5' +perl: +- 5.32.1 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.10.* *_cpython +- 3.11.* *_cpython +- 3.12.* *_cpython +- 3.13.* *_cp313 +snappy: +- '1.2' +sqlite: +- '3' +target_platform: +- linux-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version + - c_stdlib_version + - cuda_compiler_version +zlib: +- '1' diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml index cb96315e..f257dbdc 100644 --- a/.github/workflows/conda-build.yml +++ b/.github/workflows/conda-build.yml @@ -34,6 +34,18 @@ jobs: os: ubuntu runs_on: ['namespace-profile-16cpu-on-linux-64'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + - CONFIG: linux_64_cuda_compiler_version13.0microarch_level1 + STORE_BUILD_ARTIFACTS: False + UPLOAD_PACKAGES: True + os: ubuntu + runs_on: ['namespace-profile-16cpu-on-linux-64'] + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + - CONFIG: linux_64_cuda_compiler_version13.0microarch_level3 + STORE_BUILD_ARTIFACTS: False + UPLOAD_PACKAGES: True + os: ubuntu + runs_on: ['namespace-profile-16cpu-on-linux-64'] + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - CONFIG: linux_64_cuda_compiler_versionNonemicroarch_level1 STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True diff --git a/pixi.toml b/pixi.toml index 06ab4751..88343a41 100644 --- a/pixi.toml +++ b/pixi.toml @@ -35,6 +35,18 @@ description = "Build tensorflow-feedstock with variant linux_64_cuda_compiler_ve [tasks."inspect-linux_64_cuda_compiler_version12.8microarch_level3"] cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_64_cuda_compiler_version12.8microarch_level3.yaml" description = "List contents of tensorflow-feedstock packages built for variant linux_64_cuda_compiler_version12.8microarch_level3" +[tasks."build-linux_64_cuda_compiler_version13.0microarch_level1"] +cmd = "rattler-build build --recipe recipe -m .ci_support/linux_64_cuda_compiler_version13.0microarch_level1.yaml" +description = "Build tensorflow-feedstock with variant linux_64_cuda_compiler_version13.0microarch_level1 directly (without setup scripts)" +[tasks."inspect-linux_64_cuda_compiler_version13.0microarch_level1"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_64_cuda_compiler_version13.0microarch_level1.yaml" +description = "List contents of tensorflow-feedstock packages built for variant linux_64_cuda_compiler_version13.0microarch_level1" +[tasks."build-linux_64_cuda_compiler_version13.0microarch_level3"] +cmd = "rattler-build build --recipe recipe -m .ci_support/linux_64_cuda_compiler_version13.0microarch_level3.yaml" +description = "Build tensorflow-feedstock with variant linux_64_cuda_compiler_version13.0microarch_level3 directly (without setup scripts)" +[tasks."inspect-linux_64_cuda_compiler_version13.0microarch_level3"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_64_cuda_compiler_version13.0microarch_level3.yaml" +description = "List contents of tensorflow-feedstock packages built for variant linux_64_cuda_compiler_version13.0microarch_level3" [tasks."build-linux_64_cuda_compiler_versionNonemicroarch_level1"] cmd = "rattler-build build --recipe recipe -m .ci_support/linux_64_cuda_compiler_versionNonemicroarch_level1.yaml" description = "Build tensorflow-feedstock with variant linux_64_cuda_compiler_versionNonemicroarch_level1 directly (without setup scripts)"