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 9dabee7b..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 @@ -6,6 +6,8 @@ __migrator: 1 build_number: 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: false use_local: true override_cbc_keys: @@ -22,17 +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"] @@ -44,6 +47,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..90205c35 100644 --- a/.ci_support/migrations/cuda129.yaml +++ b/.ci_support/migrations/cuda129.yaml @@ -7,17 +7,19 @@ __migrator: build_number: 1 paused: false + 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 # 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 +49,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..6111ab4e --- /dev/null +++ b/.ci_support/migrations/cuda130.yaml @@ -0,0 +1,60 @@ +migrator_ts: 1738229378 +__migrator: + kind: + version + operation: key_add + migration_number: + 1 + build_number: + 1 + paused: false + use_local: true + override_cbc_keys: + - cuda_compiler_stub + check_solvable: false + primary_key: cuda_compiler_version + ordering: + cuda_compiler_version: + - None + - 12.4 + - 12.6 + - 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 + 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 + +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"] + +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/.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 diff --git a/recipe/01-cuda13-build.diff b/recipe/01-cuda13-build.diff new file mode 100644 index 00000000..8128624a --- /dev/null +++ b/recipe/01-cuda13-build.diff @@ -0,0 +1,43 @@ +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..35fe517d0 100644 +--- a/install/cupy_builder/install_build.py ++++ b/install/cupy_builder/install_build.py +@@ -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. +- 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 +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') + +- 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 e6d76da0..85d903b1 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,7 +1,7 @@ {% set name = "cupy" %} -{% set version = "13.5.1" %} -{% set sha256 = "3dba2f30258463482d52deb420862fbbbaf2c446165a5e8d67377ac6cb5c0870" %} -{% set number = 2 %} +{% set version = "13.6.0" %} +{% set sha256 = "3cba30ae3dd32b5d5c6536e710cb98015227cd4ba83c46b3f1825a7ae55b6667" %} +{% set number = 0 %} {% set target_name = "x86_64-linux" %} # [linux64] {% set target_name = "ppc64le-linux" %} # [ppc64le] @@ -27,11 +27,13 @@ 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 }} # 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 +45,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 +85,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 @@ -95,12 +97,15 @@ outputs: - export CUDA_PATH=$PREFIX/targets/{{ target_name }} # [linux] {% endif %} - echo "nvcc is $NVCC, CUDA path is $CUDA_PATH" # [linux] - - for /f "tokens=* usebackq" %%f in (`where nvcc`) do (set "dummy=%%f" && call set "NVCC=%%dummy:\=\\%%") # [win] + - 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] # 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] + - 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] - >- {{ PYTHON }} -m pip install . --no-deps -vv - if errorlevel 1 exit 1 # [win] @@ -131,8 +136,10 @@ outputs: {% endif %} ignore_run_exports: # optional dependencies + {% if cuda_major < 13 %} - nccl # [linux] - cutensor + {% endif %} requirements: build: - {{ compiler("c") }} @@ -157,8 +164,10 @@ outputs: - libcusparse-dev # [build_platform != target_platform] {% endif %} # optional dependencies for CUDA 11.2+ + {% if cuda_major < 13 %} - nccl ~=2.16 # [build_platform != target_platform] - cutensor ~=2.0 # [build_platform != target_platform] + {% endif %} host: - python - pip @@ -181,8 +190,10 @@ outputs: - libcusparse-dev {% endif %} # optional dependencies + {% if cuda_major < 13 %} - nccl ~=2.16 # [linux] - cutensor ~=2.0 + {% endif %} run: - python - {{ pin_compatible('fastrlock', max_pin='x.x') }} @@ -203,8 +214,10 @@ outputs: - __cuda >={{ cuda_major }}.2 # [cuda_compiler == "nvcc"] - __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('cutensor') }} + {% endif %} test: requires: - pip diff --git a/recipe/preload_config/linux64_cuda13_wheel.json b/recipe/preload_config/linux64_cuda13_wheel.json new file mode 100644 index 00000000..aed5c027 --- /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..aed5c027 --- /dev/null +++ b/recipe/preload_config/win64_cuda13_wheel.json @@ -0,0 +1,4 @@ +{ + "packaging": "conda", + "cuda": "13.x" +}