From e7e4bd07b9ce0f9ba02e4efd970fd9b65533ad6c Mon Sep 17 00:00:00 2001 From: regro-cf-autotick-bot <36490558+regro-cf-autotick-bot@users.noreply.github.com> Date: Mon, 18 Aug 2025 10:20:59 +0000 Subject: [PATCH 01/17] updated v13.6.0 --- recipe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index e6d76da0..c2d8dcc1 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,6 +1,6 @@ {% set name = "cupy" %} -{% set version = "13.5.1" %} -{% set sha256 = "3dba2f30258463482d52deb420862fbbbaf2c446165a5e8d67377ac6cb5c0870" %} +{% set version = "13.6.0" %} +{% set sha256 = "3cba30ae3dd32b5d5c6536e710cb98015227cd4ba83c46b3f1825a7ae55b6667" %} {% set number = 2 %} {% set target_name = "x86_64-linux" %} # [linux64] From 6f1ca235d7efbb8b96a1be101ad0cf510fbe3c91 Mon Sep 17 00:00:00 2001 From: Leo Fang Date: Mon, 18 Aug 2025 14:52:28 -0400 Subject: [PATCH 02/17] add 13.0 migrator --- .ci_support/migrations/cuda118.yaml | 9 ++++- .ci_support/migrations/cuda129.yaml | 4 ++ .ci_support/migrations/cuda130.yaml | 63 +++++++++++++++++++++++++++++ recipe/meta.yaml | 6 +-- 4 files changed, 77 insertions(+), 5 deletions(-) create mode 100644 .ci_support/migrations/cuda130.yaml diff --git a/.ci_support/migrations/cuda118.yaml b/.ci_support/migrations/cuda118.yaml index 9dabee7b..945c3478 100644 --- a/.ci_support/migrations/cuda118.yaml +++ b/.ci_support/migrations/cuda118.yaml @@ -6,8 +6,9 @@ __migrator: 1 build_number: 1 - paused: false - use_local: true + # This is intended as a _manual_ migrator to re-add CUDA 11.8, after we + # dropped it as version that's built by default; DO NOT unpause + paused: true override_cbc_keys: - cuda_compiler_stub operation: key_add @@ -27,6 +28,7 @@ __migrator: - 12.8 - None - 12.9 + - 13.0 - 11.8 cuda_compiler_version_min: - 12.4 @@ -44,6 +46,9 @@ cuda_compiler_version: # [(linux or win64) and os.environ.get("CF_CUDA_ENAB cuda_compiler_version_min: # [linux or win64] - 11.8 # [linux or win64] +c_stdlib_version: # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + - 2.17 # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + c_compiler_version: # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - 11 # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] diff --git a/.ci_support/migrations/cuda129.yaml b/.ci_support/migrations/cuda129.yaml index 5074cd12..f8b53b36 100644 --- a/.ci_support/migrations/cuda129.yaml +++ b/.ci_support/migrations/cuda129.yaml @@ -18,6 +18,7 @@ __migrator: - 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 @@ -47,6 +48,9 @@ cuda_compiler_version: # [((linux and (x86_64 or aarch64)) or win64) and cuda_compiler_version_min: # [((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_stdlib_version: # [(linux and (x86_64 or aarch64)) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + - 2.17 # [(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"] diff --git a/.ci_support/migrations/cuda130.yaml b/.ci_support/migrations/cuda130.yaml new file mode 100644 index 00000000..f078ac22 --- /dev/null +++ b/.ci_support/migrations/cuda130.yaml @@ -0,0 +1,63 @@ +migrator_ts: 1755016036 +__migrator: + operation: key_add + migration_number: + 1 + build_number: + 0 + paused: true + use_local: true + 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 + `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 + + > [[!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/meta.yaml b/recipe/meta.yaml index c2d8dcc1..71a6bc7a 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -31,7 +31,7 @@ source: build: number: {{ number }} # For CUDA 12, the compiler version is hard-coded in the cuda120.yaml migrator - skip: true # [(py < 39) or cuda_compiler_version not in ("11.8", "12.9") or ppc64le] + skip: true # [(py < 39) or cuda_compiler_version not in ("11.8", "12.9", "13.0") or ppc64le] requirements: host: @@ -43,7 +43,7 @@ outputs: build: number: {{ number }} # For CUDA 12, the compiler version is hard-coded in the cuda120.yaml migrator - skip: true # [(py < 39) or cuda_compiler_version not in ("11.8", "12.9") or ppc64le] + skip: true # [(py < 39) or cuda_compiler_version not in ("11.8", "12.9", "13.0") or ppc64le] requirements: host: - python @@ -83,7 +83,7 @@ outputs: build: number: {{ number }} # For CUDA 12, the compiler version is hard-coded in the cuda120.yaml migrator - skip: true # [(py < 39) or cuda_compiler_version not in ("11.8", "12.9") or ppc64le] + skip: true # [(py < 39) or cuda_compiler_version not in ("11.8", "12.9", "13.0") or ppc64le] script_env: # To avoid memory usage warnings on CI, reduce parallelism of CuPy builds. - CUPY_NUM_BUILD_JOBS=1 From 52edec7489fef649f9ee5d49d30ef6fa4c80b75e Mon Sep 17 00:00:00 2001 From: Leo Fang Date: Mon, 18 Aug 2025 15:03:27 -0400 Subject: [PATCH 03/17] ensure use_local is true for using local changes --- .ci_support/migrations/cuda118.yaml | 3 ++- .ci_support/migrations/cuda129.yaml | 1 + .ci_support/migrations/cuda130.yaml | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.ci_support/migrations/cuda118.yaml b/.ci_support/migrations/cuda118.yaml index 945c3478..c58073d9 100644 --- a/.ci_support/migrations/cuda118.yaml +++ b/.ci_support/migrations/cuda118.yaml @@ -8,7 +8,8 @@ __migrator: 1 # This is intended as a _manual_ migrator to re-add CUDA 11.8, after we # dropped it as version that's built by default; DO NOT unpause - paused: true + paused: false + use_local: true override_cbc_keys: - cuda_compiler_stub operation: key_add diff --git a/.ci_support/migrations/cuda129.yaml b/.ci_support/migrations/cuda129.yaml index f8b53b36..da6984d7 100644 --- a/.ci_support/migrations/cuda129.yaml +++ b/.ci_support/migrations/cuda129.yaml @@ -7,6 +7,7 @@ __migrator: build_number: 1 paused: false + use_local: true override_cbc_keys: - cuda_compiler_stub check_solvable: false diff --git a/.ci_support/migrations/cuda130.yaml b/.ci_support/migrations/cuda130.yaml index f078ac22..a7482dd6 100644 --- a/.ci_support/migrations/cuda130.yaml +++ b/.ci_support/migrations/cuda130.yaml @@ -5,7 +5,7 @@ __migrator: 1 build_number: 0 - paused: true + paused: false use_local: true override_cbc_keys: - cuda_compiler_stub From 4b758f1754ef74b35f8398873def2ec7aa6c3781 Mon Sep 17 00:00:00 2001 From: Leo Fang Date: Mon, 18 Aug 2025 16:42:40 -0400 Subject: [PATCH 04/17] reordering timestamps based on bdice suggestion + remove extra items from list MNT: Re-rendered with conda-build 25.7.0, conda-smithy 3.51.1, and conda-forge-pinning 2025.08.18.20.25.24 --- .azure-pipelines/azure-pipelines-linux.yml | 40 +++++++ .azure-pipelines/azure-pipelines-win.yml | 15 +++ ...ler_version13.0python3.10.____cpython.yaml | 42 +++++++ ...ler_version13.0python3.11.____cpython.yaml | 42 +++++++ ...ler_version13.0python3.12.____cpython.yaml | 42 +++++++ ...piler_version13.0python3.13.____cp313.yaml | 42 +++++++ ...iler_version13.0python3.9.____cpython.yaml | 42 +++++++ ...ler_version13.0python3.10.____cpython.yaml | 42 +++++++ ...ler_version13.0python3.11.____cpython.yaml | 42 +++++++ ...ler_version13.0python3.12.____cpython.yaml | 42 +++++++ ...piler_version13.0python3.13.____cp313.yaml | 42 +++++++ ...iler_version13.0python3.9.____cpython.yaml | 42 +++++++ .ci_support/migrations/cuda118.yaml | 8 +- .ci_support/migrations/cuda129.yaml | 4 +- .ci_support/migrations/cuda130.yaml | 19 ++-- ...ler_version13.0python3.10.____cpython.yaml | 27 +++++ ...ler_version13.0python3.11.____cpython.yaml | 27 +++++ ...ler_version13.0python3.12.____cpython.yaml | 27 +++++ ...piler_version13.0python3.13.____cp313.yaml | 27 +++++ ...iler_version13.0python3.9.____cpython.yaml | 27 +++++ README.md | 105 ++++++++++++++++++ 21 files changed, 729 insertions(+), 17 deletions(-) create mode 100644 .ci_support/linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.10.____cpython.yaml create mode 100644 .ci_support/linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.11.____cpython.yaml create mode 100644 .ci_support/linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.12.____cpython.yaml create mode 100644 .ci_support/linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.13.____cp313.yaml create mode 100644 .ci_support/linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.9.____cpython.yaml create mode 100644 .ci_support/linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.10.____cpython.yaml create mode 100644 .ci_support/linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.11.____cpython.yaml create mode 100644 .ci_support/linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.12.____cpython.yaml create mode 100644 .ci_support/linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.13.____cp313.yaml create mode 100644 .ci_support/linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.9.____cpython.yaml create mode 100644 .ci_support/win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.10.____cpython.yaml create mode 100644 .ci_support/win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.11.____cpython.yaml create mode 100644 .ci_support/win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.12.____cpython.yaml create mode 100644 .ci_support/win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.13.____cp313.yaml create mode 100644 .ci_support/win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.9.____cpython.yaml diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index 90e51521..4ab77807 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -28,6 +28,26 @@ jobs: CONFIG: linux_64_cuda_compilercuda-nvcccuda_compiler_version12.9python3.9.____cpython UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.10.____cpython: + CONFIG: linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.10.____cpython + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.11.____cpython: + CONFIG: linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.11.____cpython + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.12.____cpython: + CONFIG: linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.12.____cpython + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.13.____cp313: + CONFIG: linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.13.____cp313 + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.9.____cpython: + CONFIG: linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.9.____cpython + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 linux_64_cuda_compilernvcccuda_compiler_version11.8python3.10.____cpython: CONFIG: linux_64_cuda_compilernvcccuda_compiler_version11.8python3.10.____cpython UPLOAD_PACKAGES: 'True' @@ -68,6 +88,26 @@ jobs: CONFIG: linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version12.9python3.9.____cpython UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.10.____cpython: + CONFIG: linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.10.____cpython + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.11.____cpython: + CONFIG: linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.11.____cpython + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.12.____cpython: + CONFIG: linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.12.____cpython + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.13.____cp313: + CONFIG: linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.13.____cp313 + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.9.____cpython: + CONFIG: linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.9.____cpython + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 linux_aarch64_cuda_compilernvcccuda_compiler_version11.8python3.10.____cpython: CONFIG: linux_aarch64_cuda_compilernvcccuda_compiler_version11.8python3.10.____cpython UPLOAD_PACKAGES: 'True' diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index 3beab345..3924cd3c 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -23,6 +23,21 @@ jobs: win_64_cuda_compilercuda-nvcccuda_compiler_version12.9python3.9.____cpython: CONFIG: win_64_cuda_compilercuda-nvcccuda_compiler_version12.9python3.9.____cpython UPLOAD_PACKAGES: 'True' + win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.10.____cpython: + CONFIG: win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.10.____cpython + UPLOAD_PACKAGES: 'True' + win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.11.____cpython: + CONFIG: win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.11.____cpython + UPLOAD_PACKAGES: 'True' + win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.12.____cpython: + CONFIG: win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.12.____cpython + UPLOAD_PACKAGES: 'True' + win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.13.____cp313: + CONFIG: win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.13.____cp313 + UPLOAD_PACKAGES: 'True' + win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.9.____cpython: + CONFIG: win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.9.____cpython + UPLOAD_PACKAGES: 'True' win_64_cuda_compilernvcccuda_compiler_version11.8python3.10.____cpython: CONFIG: win_64_cuda_compilernvcccuda_compiler_version11.8python3.10.____cpython UPLOAD_PACKAGES: 'True' diff --git a/.ci_support/linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.10.____cpython.yaml b/.ci_support/linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.10.____cpython.yaml new file mode 100644 index 00000000..a567fec7 --- /dev/null +++ b/.ci_support/linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.10.____cpython.yaml @@ -0,0 +1,42 @@ +c_compiler: +- gcc +c_compiler_version: +- '14' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +cdt_name: +- conda +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- cuda-nvcc +cuda_compiler_version: +- '13.0' +cutensor: +- '2' +cxx_compiler: +- gxx +cxx_compiler_version: +- '14' +docker_image: +- quay.io/condaforge/linux-anvil-x86_64:alma9 +nccl: +- '2' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.10.* *_cpython +target_platform: +- linux-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version + - cuda_compiler_version + - cuda_compiler + - docker_image diff --git a/.ci_support/linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.11.____cpython.yaml b/.ci_support/linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.11.____cpython.yaml new file mode 100644 index 00000000..e1bcefbc --- /dev/null +++ b/.ci_support/linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.11.____cpython.yaml @@ -0,0 +1,42 @@ +c_compiler: +- gcc +c_compiler_version: +- '14' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +cdt_name: +- conda +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- cuda-nvcc +cuda_compiler_version: +- '13.0' +cutensor: +- '2' +cxx_compiler: +- gxx +cxx_compiler_version: +- '14' +docker_image: +- quay.io/condaforge/linux-anvil-x86_64:alma9 +nccl: +- '2' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.11.* *_cpython +target_platform: +- linux-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version + - cuda_compiler_version + - cuda_compiler + - docker_image diff --git a/.ci_support/linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.12.____cpython.yaml b/.ci_support/linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.12.____cpython.yaml new file mode 100644 index 00000000..5efca12a --- /dev/null +++ b/.ci_support/linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.12.____cpython.yaml @@ -0,0 +1,42 @@ +c_compiler: +- gcc +c_compiler_version: +- '14' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +cdt_name: +- conda +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- cuda-nvcc +cuda_compiler_version: +- '13.0' +cutensor: +- '2' +cxx_compiler: +- gxx +cxx_compiler_version: +- '14' +docker_image: +- quay.io/condaforge/linux-anvil-x86_64:alma9 +nccl: +- '2' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.12.* *_cpython +target_platform: +- linux-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version + - cuda_compiler_version + - cuda_compiler + - docker_image diff --git a/.ci_support/linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.13.____cp313.yaml b/.ci_support/linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.13.____cp313.yaml new file mode 100644 index 00000000..157f76e0 --- /dev/null +++ b/.ci_support/linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.13.____cp313.yaml @@ -0,0 +1,42 @@ +c_compiler: +- gcc +c_compiler_version: +- '14' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +cdt_name: +- conda +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- cuda-nvcc +cuda_compiler_version: +- '13.0' +cutensor: +- '2' +cxx_compiler: +- gxx +cxx_compiler_version: +- '14' +docker_image: +- quay.io/condaforge/linux-anvil-x86_64:alma9 +nccl: +- '2' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.13.* *_cp313 +target_platform: +- linux-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version + - cuda_compiler_version + - cuda_compiler + - docker_image diff --git a/.ci_support/linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.9.____cpython.yaml b/.ci_support/linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.9.____cpython.yaml new file mode 100644 index 00000000..bd44b236 --- /dev/null +++ b/.ci_support/linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.9.____cpython.yaml @@ -0,0 +1,42 @@ +c_compiler: +- gcc +c_compiler_version: +- '14' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +cdt_name: +- conda +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- cuda-nvcc +cuda_compiler_version: +- '13.0' +cutensor: +- '2' +cxx_compiler: +- gxx +cxx_compiler_version: +- '14' +docker_image: +- quay.io/condaforge/linux-anvil-x86_64:alma9 +nccl: +- '2' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.9.* *_cpython +target_platform: +- linux-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version + - cuda_compiler_version + - cuda_compiler + - docker_image diff --git a/.ci_support/linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.10.____cpython.yaml b/.ci_support/linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.10.____cpython.yaml new file mode 100644 index 00000000..7dab7d71 --- /dev/null +++ b/.ci_support/linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.10.____cpython.yaml @@ -0,0 +1,42 @@ +c_compiler: +- gcc +c_compiler_version: +- '14' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +cdt_name: +- conda +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- cuda-nvcc +cuda_compiler_version: +- '13.0' +cutensor: +- '2' +cxx_compiler: +- gxx +cxx_compiler_version: +- '14' +docker_image: +- quay.io/condaforge/linux-anvil-x86_64:alma9 +nccl: +- '2' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.10.* *_cpython +target_platform: +- linux-aarch64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version + - cuda_compiler_version + - cuda_compiler + - docker_image diff --git a/.ci_support/linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.11.____cpython.yaml b/.ci_support/linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.11.____cpython.yaml new file mode 100644 index 00000000..ae06f7fe --- /dev/null +++ b/.ci_support/linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.11.____cpython.yaml @@ -0,0 +1,42 @@ +c_compiler: +- gcc +c_compiler_version: +- '14' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +cdt_name: +- conda +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- cuda-nvcc +cuda_compiler_version: +- '13.0' +cutensor: +- '2' +cxx_compiler: +- gxx +cxx_compiler_version: +- '14' +docker_image: +- quay.io/condaforge/linux-anvil-x86_64:alma9 +nccl: +- '2' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.11.* *_cpython +target_platform: +- linux-aarch64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version + - cuda_compiler_version + - cuda_compiler + - docker_image diff --git a/.ci_support/linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.12.____cpython.yaml b/.ci_support/linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.12.____cpython.yaml new file mode 100644 index 00000000..e73fa3fc --- /dev/null +++ b/.ci_support/linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.12.____cpython.yaml @@ -0,0 +1,42 @@ +c_compiler: +- gcc +c_compiler_version: +- '14' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +cdt_name: +- conda +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- cuda-nvcc +cuda_compiler_version: +- '13.0' +cutensor: +- '2' +cxx_compiler: +- gxx +cxx_compiler_version: +- '14' +docker_image: +- quay.io/condaforge/linux-anvil-x86_64:alma9 +nccl: +- '2' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.12.* *_cpython +target_platform: +- linux-aarch64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version + - cuda_compiler_version + - cuda_compiler + - docker_image diff --git a/.ci_support/linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.13.____cp313.yaml b/.ci_support/linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.13.____cp313.yaml new file mode 100644 index 00000000..af4621c4 --- /dev/null +++ b/.ci_support/linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.13.____cp313.yaml @@ -0,0 +1,42 @@ +c_compiler: +- gcc +c_compiler_version: +- '14' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +cdt_name: +- conda +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- cuda-nvcc +cuda_compiler_version: +- '13.0' +cutensor: +- '2' +cxx_compiler: +- gxx +cxx_compiler_version: +- '14' +docker_image: +- quay.io/condaforge/linux-anvil-x86_64:alma9 +nccl: +- '2' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.13.* *_cp313 +target_platform: +- linux-aarch64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version + - cuda_compiler_version + - cuda_compiler + - docker_image diff --git a/.ci_support/linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.9.____cpython.yaml b/.ci_support/linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.9.____cpython.yaml new file mode 100644 index 00000000..96a8f12b --- /dev/null +++ b/.ci_support/linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.9.____cpython.yaml @@ -0,0 +1,42 @@ +c_compiler: +- gcc +c_compiler_version: +- '14' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +cdt_name: +- conda +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- cuda-nvcc +cuda_compiler_version: +- '13.0' +cutensor: +- '2' +cxx_compiler: +- gxx +cxx_compiler_version: +- '14' +docker_image: +- quay.io/condaforge/linux-anvil-x86_64:alma9 +nccl: +- '2' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.9.* *_cpython +target_platform: +- linux-aarch64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version + - cuda_compiler_version + - cuda_compiler + - docker_image diff --git a/.ci_support/migrations/cuda118.yaml b/.ci_support/migrations/cuda118.yaml index c58073d9..35448d34 100644 --- a/.ci_support/migrations/cuda118.yaml +++ b/.ci_support/migrations/cuda118.yaml @@ -1,4 +1,4 @@ -migrator_ts: 1748496951 +migrator_ts: 1738229379 __migrator: kind: version @@ -24,18 +24,18 @@ __migrator: - cuda-nvcc - nvcc cuda_compiler_version: + - None - 12.4 - 12.6 - - 12.8 - - None - 12.9 - 13.0 - 11.8 cuda_compiler_version_min: + - None - 12.4 - 12.6 - - 12.8 - 12.9 + - 13.0 - 11.8 cuda_compiler: # [(linux or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] diff --git a/.ci_support/migrations/cuda129.yaml b/.ci_support/migrations/cuda129.yaml index da6984d7..90205c35 100644 --- a/.ci_support/migrations/cuda129.yaml +++ b/.ci_support/migrations/cuda129.yaml @@ -10,14 +10,14 @@ __migrator: use_local: true override_cbc_keys: - cuda_compiler_stub + operation: key_add check_solvable: false primary_key: cuda_compiler_version ordering: cuda_compiler_version: + - None - 12.4 - 12.6 - - 12.8 - - None - 12.9 - 13.0 # to allow manual opt-in for CUDA 11.8, see diff --git a/.ci_support/migrations/cuda130.yaml b/.ci_support/migrations/cuda130.yaml index a7482dd6..6111ab4e 100644 --- a/.ci_support/migrations/cuda130.yaml +++ b/.ci_support/migrations/cuda130.yaml @@ -1,10 +1,12 @@ -migrator_ts: 1755016036 +migrator_ts: 1738229378 __migrator: + kind: + version operation: key_add migration_number: 1 build_number: - 0 + 1 paused: false use_local: true override_cbc_keys: @@ -13,18 +15,15 @@ __migrator: primary_key: cuda_compiler_version ordering: cuda_compiler_version: + - None - 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 @@ -42,14 +41,12 @@ __migrator: 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"] +cuda_compiler_version_min: # [((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"] diff --git a/.ci_support/win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.10.____cpython.yaml b/.ci_support/win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.10.____cpython.yaml new file mode 100644 index 00000000..1caa8ac2 --- /dev/null +++ b/.ci_support/win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.10.____cpython.yaml @@ -0,0 +1,27 @@ +c_compiler: +- vs2019 +c_stdlib: +- vs +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- cuda-nvcc +cuda_compiler_version: +- '13.0' +cutensor: +- '2' +cxx_compiler: +- vs2019 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.10.* *_cpython +target_platform: +- win-64 +zip_keys: +- - cuda_compiler_version + - cuda_compiler diff --git a/.ci_support/win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.11.____cpython.yaml b/.ci_support/win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.11.____cpython.yaml new file mode 100644 index 00000000..039b2e82 --- /dev/null +++ b/.ci_support/win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.11.____cpython.yaml @@ -0,0 +1,27 @@ +c_compiler: +- vs2019 +c_stdlib: +- vs +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- cuda-nvcc +cuda_compiler_version: +- '13.0' +cutensor: +- '2' +cxx_compiler: +- vs2019 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.11.* *_cpython +target_platform: +- win-64 +zip_keys: +- - cuda_compiler_version + - cuda_compiler diff --git a/.ci_support/win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.12.____cpython.yaml b/.ci_support/win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.12.____cpython.yaml new file mode 100644 index 00000000..06a4cb83 --- /dev/null +++ b/.ci_support/win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.12.____cpython.yaml @@ -0,0 +1,27 @@ +c_compiler: +- vs2019 +c_stdlib: +- vs +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- cuda-nvcc +cuda_compiler_version: +- '13.0' +cutensor: +- '2' +cxx_compiler: +- vs2019 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.12.* *_cpython +target_platform: +- win-64 +zip_keys: +- - cuda_compiler_version + - cuda_compiler diff --git a/.ci_support/win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.13.____cp313.yaml b/.ci_support/win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.13.____cp313.yaml new file mode 100644 index 00000000..d2311c16 --- /dev/null +++ b/.ci_support/win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.13.____cp313.yaml @@ -0,0 +1,27 @@ +c_compiler: +- vs2019 +c_stdlib: +- vs +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- cuda-nvcc +cuda_compiler_version: +- '13.0' +cutensor: +- '2' +cxx_compiler: +- vs2019 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.13.* *_cp313 +target_platform: +- win-64 +zip_keys: +- - cuda_compiler_version + - cuda_compiler diff --git a/.ci_support/win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.9.____cpython.yaml b/.ci_support/win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.9.____cpython.yaml new file mode 100644 index 00000000..5184950c --- /dev/null +++ b/.ci_support/win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.9.____cpython.yaml @@ -0,0 +1,27 @@ +c_compiler: +- vs2019 +c_stdlib: +- vs +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- cuda-nvcc +cuda_compiler_version: +- '13.0' +cutensor: +- '2' +cxx_compiler: +- vs2019 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.9.* *_cpython +target_platform: +- win-64 +zip_keys: +- - cuda_compiler_version + - cuda_compiler diff --git a/README.md b/README.md index bd8d2022..9f813a79 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,41 @@ Current build status variant + + linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.10.____cpython + + + variant + + + + linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.11.____cpython + + + variant + + + + linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.12.____cpython + + + variant + + + + linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.13.____cp313 + + + variant + + + + linux_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.9.____cpython + + + variant + + linux_64_cuda_compilernvcccuda_compiler_version11.8python3.10.____cpython @@ -158,6 +193,41 @@ Current build status variant + + linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.10.____cpython + + + variant + + + + linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.11.____cpython + + + variant + + + + linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.12.____cpython + + + variant + + + + linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.13.____cp313 + + + variant + + + + linux_aarch64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.9.____cpython + + + variant + + linux_aarch64_cuda_compilernvcccuda_compiler_version11.8python3.10.____cpython @@ -228,6 +298,41 @@ Current build status variant + + win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.10.____cpython + + + variant + + + + win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.11.____cpython + + + variant + + + + win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.12.____cpython + + + variant + + + + win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.13.____cp313 + + + variant + + + + win_64_cuda_compilercuda-nvcccuda_compiler_version13.0python3.9.____cpython + + + variant + + win_64_cuda_compilernvcccuda_compiler_version11.8python3.10.____cpython From 7554d448a7644191fbf4e1b7889f684a6799d46f Mon Sep 17 00:00:00 2001 From: Leo Fang Date: Mon, 18 Aug 2025 16:45:13 -0400 Subject: [PATCH 05/17] Update recipe/meta.yaml --- recipe/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 71a6bc7a..1edb4e89 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,7 +1,7 @@ {% set name = "cupy" %} {% set version = "13.6.0" %} {% set sha256 = "3cba30ae3dd32b5d5c6536e710cb98015227cd4ba83c46b3f1825a7ae55b6667" %} -{% set number = 2 %} +{% set number = 0 %} {% set target_name = "x86_64-linux" %} # [linux64] {% set target_name = "ppc64le-linux" %} # [ppc64le] From 647d719ab95e785adfa584559a77173d3d6c9cdf Mon Sep 17 00:00:00 2001 From: Leo Fang Date: Mon, 18 Aug 2025 16:59:43 -0400 Subject: [PATCH 06/17] cutensor 2.3 is not ready on CF yet --- recipe/meta.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 1edb4e89..d6867165 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -132,7 +132,9 @@ outputs: ignore_run_exports: # optional dependencies - nccl # [linux] + {% if cuda_major < 13 %} - cutensor + {% endif %} requirements: build: - {{ compiler("c") }} @@ -158,7 +160,9 @@ outputs: {% endif %} # optional dependencies for CUDA 11.2+ - nccl ~=2.16 # [build_platform != target_platform] + {% if cuda_major < 13 %} - cutensor ~=2.0 # [build_platform != target_platform] + {% endif %} host: - python - pip @@ -182,7 +186,9 @@ outputs: {% endif %} # optional dependencies - nccl ~=2.16 # [linux] + {% if cuda_major < 13 %} - cutensor ~=2.0 + {% endif %} run: - python - {{ pin_compatible('fastrlock', max_pin='x.x') }} @@ -204,7 +210,9 @@ outputs: - __cuda >={{ cuda_major }}.0 # [cuda_compiler == "cuda-nvcc"] - {{ pin_subpackage('cupy', max_pin='x.x') }} - {{ pin_compatible('nccl') }} # [linux] + {% if cuda_major < 13 %} - {{ pin_compatible('cutensor') }} + {% endif %} test: requires: - pip From 3599011e056e62b2e3947636ab73711869a82054 Mon Sep 17 00:00:00 2001 From: Leo Fang Date: Mon, 18 Aug 2025 19:27:21 -0400 Subject: [PATCH 07/17] also hide nccl --- recipe/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index d6867165..8a3df7b1 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -131,8 +131,8 @@ outputs: {% endif %} ignore_run_exports: # optional dependencies - - nccl # [linux] {% if cuda_major < 13 %} + - nccl # [linux] - cutensor {% endif %} requirements: @@ -159,8 +159,8 @@ outputs: - libcusparse-dev # [build_platform != target_platform] {% endif %} # optional dependencies for CUDA 11.2+ - - nccl ~=2.16 # [build_platform != target_platform] {% if cuda_major < 13 %} + - nccl ~=2.16 # [build_platform != target_platform] - cutensor ~=2.0 # [build_platform != target_platform] {% endif %} host: @@ -185,8 +185,8 @@ outputs: - libcusparse-dev {% endif %} # optional dependencies - - nccl ~=2.16 # [linux] {% if cuda_major < 13 %} + - nccl ~=2.16 # [linux] - cutensor ~=2.0 {% endif %} run: @@ -209,8 +209,8 @@ outputs: - __cuda >={{ cuda_major }}.2 # [cuda_compiler == "nvcc"] - __cuda >={{ cuda_major }}.0 # [cuda_compiler == "cuda-nvcc"] - {{ pin_subpackage('cupy', max_pin='x.x') }} - - {{ pin_compatible('nccl') }} # [linux] {% if cuda_major < 13 %} + - {{ pin_compatible('nccl') }} # [linux] - {{ pin_compatible('cutensor') }} {% endif %} test: From 877ba7e5d17f39a215e2e8d45a10f16ca2219f0b Mon Sep 17 00:00:00 2001 From: Leo Fang Date: Mon, 18 Aug 2025 21:20:42 -0400 Subject: [PATCH 08/17] add cuda 13 preload config (without nccl/cutensor) --- recipe/preload_config/linux64_cuda13_wheel.json | 4 ++++ recipe/preload_config/win64_cuda13_wheel.json | 4 ++++ 2 files changed, 8 insertions(+) create mode 100644 recipe/preload_config/linux64_cuda13_wheel.json create mode 100644 recipe/preload_config/win64_cuda13_wheel.json diff --git a/recipe/preload_config/linux64_cuda13_wheel.json b/recipe/preload_config/linux64_cuda13_wheel.json new file mode 100644 index 00000000..791b1406 --- /dev/null +++ b/recipe/preload_config/linux64_cuda13_wheel.json @@ -0,0 +1,4 @@ +{ + "packaging": "conda", + "cuda": "13.x", +} diff --git a/recipe/preload_config/win64_cuda13_wheel.json b/recipe/preload_config/win64_cuda13_wheel.json new file mode 100644 index 00000000..791b1406 --- /dev/null +++ b/recipe/preload_config/win64_cuda13_wheel.json @@ -0,0 +1,4 @@ +{ + "packaging": "conda", + "cuda": "13.x", +} From d73b8643d26cf232788405fba08053cf1f2b50dc Mon Sep 17 00:00:00 2001 From: Leo Fang Date: Mon, 18 Aug 2025 21:45:06 -0400 Subject: [PATCH 09/17] extend build system to support conda cuda 13 --- recipe/01-cuda13-build.diff | 35 +++++++++++++++++++++++++++++++++++ recipe/meta.yaml | 2 ++ 2 files changed, 37 insertions(+) create mode 100644 recipe/01-cuda13-build.diff diff --git a/recipe/01-cuda13-build.diff b/recipe/01-cuda13-build.diff new file mode 100644 index 00000000..f6e1947a --- /dev/null +++ b/recipe/01-cuda13-build.diff @@ -0,0 +1,35 @@ +diff --git a/install/cupy_builder/cupy_setup_build.py b/install/cupy_builder/cupy_setup_build.py +index cf7096b10..fdbfa7760 100644 +--- a/install/cupy_builder/cupy_setup_build.py ++++ b/install/cupy_builder/cupy_setup_build.py +@@ -366,7 +366,7 @@ def make_extensions(ctx: Context, compiler, use_cython): + f'{os.environ["BUILD_PREFIX"]}/bin/ld') + if (PLATFORM_LINUX and ( + int(os.environ.get('CONDA_BUILD_CROSS_COMPILATION', 0)) == 1 or +- os.environ.get('CONDA_OVERRIDE_CUDA', '0').startswith('12'))): ++ os.environ.get('CONDA_OVERRIDE_CUDA', '0').startswith(('12', '13')))): + # If cross-compiling, we need build_and_run() & build_shlib() to + # use the compiler on the build platform to generate stub files + # that are executable in the build environment, not the target +diff --git a/install/cupy_builder/install_build.py b/install/cupy_builder/install_build.py +index 2d9b3aaa0..742c783dd 100644 +--- a/install/cupy_builder/install_build.py ++++ b/install/cupy_builder/install_build.py +@@ -746,7 +746,7 @@ def conda_update_dirs(include_dirs, library_dirs): + # executable in the build environment, not the target environment. + # This assumes, however, that the build/host environments see the same + # CUDA Toolkit. +- if os.environ.get('CONDA_OVERRIDE_CUDA', '0').startswith('12'): ++ if os.environ.get('CONDA_OVERRIDE_CUDA', '0').startswith(('12', '13')): + include_dirs.insert( + 0, + f'{os.environ["BUILD_PREFIX"]}/targets/x86_64-linux/include') +@@ -761,7 +761,7 @@ def conda_update_dirs(include_dirs, library_dirs): + include_dirs.append(f'{os.environ["BUILD_PREFIX"]}/include') + library_dirs.append(f'{os.environ["BUILD_PREFIX"]}/lib') + +- if os.environ.get('CONDA_OVERRIDE_CUDA', '0').startswith('12'): ++ if os.environ.get('CONDA_OVERRIDE_CUDA', '0').startswith(('12', '13')): + if PLATFORM_LINUX: + include_dirs.append( + f'{os.environ["BUILD_PREFIX"]}/targets/' diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 8a3df7b1..ad874ac8 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -27,6 +27,8 @@ package: source: - url: https://pypi.org/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz sha256: {{ sha256 }} + patches: + - 01-cuda13-build.diff build: number: {{ number }} From 256067f44021b93f3bac24f1f87acf11e122502b Mon Sep 17 00:00:00 2001 From: Leo Fang Date: Mon, 18 Aug 2025 21:51:13 -0400 Subject: [PATCH 10/17] try to support windows --- recipe/01-cuda13-build.diff | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/recipe/01-cuda13-build.diff b/recipe/01-cuda13-build.diff index f6e1947a..b108512e 100644 --- a/recipe/01-cuda13-build.diff +++ b/recipe/01-cuda13-build.diff @@ -12,7 +12,7 @@ index cf7096b10..fdbfa7760 100644 # use the compiler on the build platform to generate stub files # that are executable in the build environment, not the target diff --git a/install/cupy_builder/install_build.py b/install/cupy_builder/install_build.py -index 2d9b3aaa0..742c783dd 100644 +index 2d9b3aaa0..1e6de11a2 100644 --- a/install/cupy_builder/install_build.py +++ b/install/cupy_builder/install_build.py @@ -746,7 +746,7 @@ def conda_update_dirs(include_dirs, library_dirs): @@ -33,3 +33,18 @@ index 2d9b3aaa0..742c783dd 100644 if PLATFORM_LINUX: include_dirs.append( f'{os.environ["BUILD_PREFIX"]}/targets/' +@@ -775,8 +775,12 @@ def conda_update_dirs(include_dirs, library_dirs): + # for optional dependencies + include_dirs.append( + f'{os.environ["LIBRARY_INC"]}') # $PREFIX/Library/include +- library_dirs.append( +- f'{os.environ["LIBRARY_LIB"]}') # $PREFIX/Library/lib ++ if os.environ.get('CONDA_OVERRIDE_CUDA', '0').startswith('12'): ++ library_dirs.append( ++ f'{os.environ["LIBRARY_LIB"]}') # $PREFIX/Library/lib ++ else: # CUDA 13 ++ library_dirs.append( ++ f'{os.environ["LIBRARY_LIB"]}/x64') + + return include_dirs, library_dirs + From e61a4ce2bef99f591a3330dd900f502ec1508e35 Mon Sep 17 00:00:00 2001 From: Leo Fang Date: Mon, 18 Aug 2025 21:52:45 -0400 Subject: [PATCH 11/17] reduce diff --- recipe/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index ad874ac8..ab1cdec2 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -212,7 +212,7 @@ outputs: - __cuda >={{ cuda_major }}.0 # [cuda_compiler == "cuda-nvcc"] - {{ pin_subpackage('cupy', max_pin='x.x') }} {% if cuda_major < 13 %} - - {{ pin_compatible('nccl') }} # [linux] + - {{ pin_compatible('nccl') }} # [linux] - {{ pin_compatible('cutensor') }} {% endif %} test: From eb221da91f0a7611d33f0ac5ff8d50df4cba0e7c Mon Sep 17 00:00:00 2001 From: Leo Fang Date: Mon, 18 Aug 2025 22:33:01 -0400 Subject: [PATCH 12/17] fix typo --- recipe/preload_config/linux64_cuda13_wheel.json | 2 +- recipe/preload_config/win64_cuda13_wheel.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/recipe/preload_config/linux64_cuda13_wheel.json b/recipe/preload_config/linux64_cuda13_wheel.json index 791b1406..aed5c027 100644 --- a/recipe/preload_config/linux64_cuda13_wheel.json +++ b/recipe/preload_config/linux64_cuda13_wheel.json @@ -1,4 +1,4 @@ { "packaging": "conda", - "cuda": "13.x", + "cuda": "13.x" } diff --git a/recipe/preload_config/win64_cuda13_wheel.json b/recipe/preload_config/win64_cuda13_wheel.json index 791b1406..aed5c027 100644 --- a/recipe/preload_config/win64_cuda13_wheel.json +++ b/recipe/preload_config/win64_cuda13_wheel.json @@ -1,4 +1,4 @@ { "packaging": "conda", - "cuda": "13.x", + "cuda": "13.x" } From 09220ba1d13194f7bf9e9c78e596557edb3d5142 Mon Sep 17 00:00:00 2001 From: Leo Fang Date: Mon, 18 Aug 2025 22:34:54 -0400 Subject: [PATCH 13/17] debug --- recipe/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index ab1cdec2..001313a1 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -97,12 +97,12 @@ outputs: - export CUDA_PATH=$PREFIX/targets/{{ target_name }} # [linux] {% endif %} - echo "nvcc is $NVCC, CUDA path is $CUDA_PATH" # [linux] + - echo "CONDA_OVERRIDE_CUDA is $CONDA_OVERRIDE_CUDA" # [linux] - for /f "tokens=* usebackq" %%f in (`where nvcc`) do (set "dummy=%%f" && call set "NVCC=%%dummy:\=\\%%") # [win] # we use this WAR until we figure out how to proceed with conda-forge/nvcc-feedstock#88 - set "NVCC=%NVCC% --use-local-env" # [win64] - - echo "nvcc is %NVCC%, CUDA path is %CUDA_PATH%" # [win] - # Workaround __ieee128 error; see https://github.com/LLNL/blt/issues/341 - - export NVCC="$NVCC -Xcompiler -mno-float128" # [ppc64le] + - echo "nvcc is %NVCC%, CUDA path is %CUDA_PATH%" # [win] + - echo "CONDA_OVERRIDE_CUDA is %CONDA_OVERRIDE_CUDA%" # [win] - >- {{ PYTHON }} -m pip install . --no-deps -vv - if errorlevel 1 exit 1 # [win] From 7a0a31010deb5263db894cb84d734c614672b95c Mon Sep 17 00:00:00 2001 From: Leo Fang Date: Mon, 18 Aug 2025 23:15:11 -0400 Subject: [PATCH 14/17] fix for win --- recipe/01-cuda13-build.diff | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/recipe/01-cuda13-build.diff b/recipe/01-cuda13-build.diff index b108512e..8128624a 100644 --- a/recipe/01-cuda13-build.diff +++ b/recipe/01-cuda13-build.diff @@ -12,10 +12,18 @@ index cf7096b10..fdbfa7760 100644 # use the compiler on the build platform to generate stub files # that are executable in the build environment, not the target diff --git a/install/cupy_builder/install_build.py b/install/cupy_builder/install_build.py -index 2d9b3aaa0..1e6de11a2 100644 +index 2d9b3aaa0..35fe517d0 100644 --- a/install/cupy_builder/install_build.py +++ b/install/cupy_builder/install_build.py -@@ -746,7 +746,7 @@ def conda_update_dirs(include_dirs, library_dirs): +@@ -151,6 +151,7 @@ def get_compiler_setting(ctx: Context, use_hip): + include_dirs.append(os.path.join(cuda_path, 'include')) + if PLATFORM_WIN32: + library_dirs.append(os.path.join(cuda_path, 'bin')) ++ library_dirs.append(os.path.join(cuda_path, 'bin', 'x64')) + library_dirs.append(os.path.join(cuda_path, 'lib', 'x64')) + else: + library_dirs.append(os.path.join(cuda_path, 'lib64')) +@@ -746,7 +747,7 @@ def conda_update_dirs(include_dirs, library_dirs): # executable in the build environment, not the target environment. # This assumes, however, that the build/host environments see the same # CUDA Toolkit. @@ -24,7 +32,7 @@ index 2d9b3aaa0..1e6de11a2 100644 include_dirs.insert( 0, f'{os.environ["BUILD_PREFIX"]}/targets/x86_64-linux/include') -@@ -761,7 +761,7 @@ def conda_update_dirs(include_dirs, library_dirs): +@@ -761,7 +762,7 @@ def conda_update_dirs(include_dirs, library_dirs): include_dirs.append(f'{os.environ["BUILD_PREFIX"]}/include') library_dirs.append(f'{os.environ["BUILD_PREFIX"]}/lib') @@ -33,18 +41,3 @@ index 2d9b3aaa0..1e6de11a2 100644 if PLATFORM_LINUX: include_dirs.append( f'{os.environ["BUILD_PREFIX"]}/targets/' -@@ -775,8 +775,12 @@ def conda_update_dirs(include_dirs, library_dirs): - # for optional dependencies - include_dirs.append( - f'{os.environ["LIBRARY_INC"]}') # $PREFIX/Library/include -- library_dirs.append( -- f'{os.environ["LIBRARY_LIB"]}') # $PREFIX/Library/lib -+ if os.environ.get('CONDA_OVERRIDE_CUDA', '0').startswith('12'): -+ library_dirs.append( -+ f'{os.environ["LIBRARY_LIB"]}') # $PREFIX/Library/lib -+ else: # CUDA 13 -+ library_dirs.append( -+ f'{os.environ["LIBRARY_LIB"]}/x64') - - return include_dirs, library_dirs - From 7bc7076f4bdc324a87154cb0a7894de4fd788f84 Mon Sep 17 00:00:00 2001 From: Leo Fang Date: Mon, 18 Aug 2025 23:37:17 -0400 Subject: [PATCH 15/17] try not to set NVCC for win + CUDA 13 --- recipe/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 001313a1..5dc4473f 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -100,9 +100,9 @@ outputs: - echo "CONDA_OVERRIDE_CUDA is $CONDA_OVERRIDE_CUDA" # [linux] - for /f "tokens=* usebackq" %%f in (`where nvcc`) do (set "dummy=%%f" && call set "NVCC=%%dummy:\=\\%%") # [win] # we use this WAR until we figure out how to proceed with conda-forge/nvcc-feedstock#88 - - set "NVCC=%NVCC% --use-local-env" # [win64] - - echo "nvcc is %NVCC%, CUDA path is %CUDA_PATH%" # [win] - - echo "CONDA_OVERRIDE_CUDA is %CONDA_OVERRIDE_CUDA%" # [win] + - set "NVCC=%NVCC% --use-local-env" # [win64 and cuda_compiler_version != "13.0"] + - echo "nvcc is %NVCC%, CUDA path is %CUDA_PATH%" # [win64 and cuda_compiler_version != "13.0"] + - echo "CONDA_OVERRIDE_CUDA is %CONDA_OVERRIDE_CUDA%" # [win64 and cuda_compiler_version != "13.0"] - >- {{ PYTHON }} -m pip install . --no-deps -vv - if errorlevel 1 exit 1 # [win] From 681bb67b6a4af8e03a2f3a0c5c4573e24ea3af6d Mon Sep 17 00:00:00 2001 From: Leo Fang Date: Mon, 18 Aug 2025 23:55:12 -0400 Subject: [PATCH 16/17] try not to set NVCC & set CUDA_PATH instead for win + CUDA 13 --- recipe/meta.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 5dc4473f..9587838b 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -98,11 +98,12 @@ outputs: {% endif %} - echo "nvcc is $NVCC, CUDA path is $CUDA_PATH" # [linux] - echo "CONDA_OVERRIDE_CUDA is $CONDA_OVERRIDE_CUDA" # [linux] - - for /f "tokens=* usebackq" %%f in (`where nvcc`) do (set "dummy=%%f" && call set "NVCC=%%dummy:\=\\%%") # [win] + - for /f "tokens=* usebackq" %%f in (`where nvcc`) do (set "dummy=%%f" && call set "NVCC=%%dummy:\=\\%%") # [win64 and cuda_compiler_version != "13.0"] # we use this WAR until we figure out how to proceed with conda-forge/nvcc-feedstock#88 - set "NVCC=%NVCC% --use-local-env" # [win64 and cuda_compiler_version != "13.0"] - - echo "nvcc is %NVCC%, CUDA path is %CUDA_PATH%" # [win64 and cuda_compiler_version != "13.0"] - - echo "CONDA_OVERRIDE_CUDA is %CONDA_OVERRIDE_CUDA%" # [win64 and cuda_compiler_version != "13.0"] + - set "CUDA_PATH=%PREFIX%\Library" # [win64 and cuda_compiler_version == "13.0"] + - echo "nvcc is %NVCC%, CUDA path is %CUDA_PATH%" # [win64] + - echo "CONDA_OVERRIDE_CUDA is %CONDA_OVERRIDE_CUDA%" # [win64] - >- {{ PYTHON }} -m pip install . --no-deps -vv - if errorlevel 1 exit 1 # [win] From 59405df9d024599d7fa8600c2a345ed28c787597 Mon Sep 17 00:00:00 2001 From: Leo Fang Date: Tue, 19 Aug 2025 00:26:54 -0400 Subject: [PATCH 17/17] restore NVCC --- recipe/meta.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 9587838b..85d903b1 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -98,9 +98,11 @@ outputs: {% endif %} - echo "nvcc is $NVCC, CUDA path is $CUDA_PATH" # [linux] - echo "CONDA_OVERRIDE_CUDA is $CONDA_OVERRIDE_CUDA" # [linux] - - for /f "tokens=* usebackq" %%f in (`where nvcc`) do (set "dummy=%%f" && call set "NVCC=%%dummy:\=\\%%") # [win64 and cuda_compiler_version != "13.0"] + - for /f "tokens=* usebackq" %%f in (`where nvcc`) do (set "dummy=%%f" && call set "NVCC=%%dummy:\=\\%%") # [win64] # we use this WAR until we figure out how to proceed with conda-forge/nvcc-feedstock#88 - - set "NVCC=%NVCC% --use-local-env" # [win64 and cuda_compiler_version != "13.0"] + - set "NVCC=%NVCC% --use-local-env" # [win64] + # Starting CUDA 13, everything is pushed one level down (bin->bin\x64, lib->lib\x64). We need to assist CuPy's build + # system to locate things when build env != target env. - set "CUDA_PATH=%PREFIX%\Library" # [win64 and cuda_compiler_version == "13.0"] - echo "nvcc is %NVCC%, CUDA path is %CUDA_PATH%" # [win64] - echo "CONDA_OVERRIDE_CUDA is %CONDA_OVERRIDE_CUDA%" # [win64]