diff --git a/.ci_support/linux_64_blas_implgenericchannel_targetsconda-forge_pytorch_rccuda_compiler_version12.9is_rcTrue.yaml b/.ci_support/linux_64_blas_implgenericchannel_targetsconda-forge_maincuda_compiler_version12.9is_rcFalse.yaml similarity index 95% rename from .ci_support/linux_64_blas_implgenericchannel_targetsconda-forge_pytorch_rccuda_compiler_version12.9is_rcTrue.yaml rename to .ci_support/linux_64_blas_implgenericchannel_targetsconda-forge_maincuda_compiler_version12.9is_rcFalse.yaml index 50a508ca3..2569f0525 100644 --- a/.ci_support/linux_64_blas_implgenericchannel_targetsconda-forge_pytorch_rccuda_compiler_version12.9is_rcTrue.yaml +++ b/.ci_support/linux_64_blas_implgenericchannel_targetsconda-forge_maincuda_compiler_version12.9is_rcFalse.yaml @@ -11,7 +11,7 @@ c_stdlib_version: channel_sources: - conda-forge channel_targets: -- conda-forge pytorch_rc +- conda-forge main cuda_compiler: - cuda-nvcc cuda_compiler_version: @@ -25,11 +25,11 @@ cxx_compiler_version: docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 fmt: -- '12.0' +- '12.1' github_actions_labels: - cirun-openstack-gpu-2xlarge is_rc: -- 'True' +- 'False' libabseil: - '20250512' libblas: diff --git a/.ci_support/linux_64_blas_implgenericchannel_targetsconda-forge_pytorch_rccuda_compiler_versionNoneis_rcTrue.yaml b/.ci_support/linux_64_blas_implgenericchannel_targetsconda-forge_maincuda_compiler_versionNoneis_rcFalse.yaml similarity index 95% rename from .ci_support/linux_64_blas_implgenericchannel_targetsconda-forge_pytorch_rccuda_compiler_versionNoneis_rcTrue.yaml rename to .ci_support/linux_64_blas_implgenericchannel_targetsconda-forge_maincuda_compiler_versionNoneis_rcFalse.yaml index aa311390d..72f926c61 100644 --- a/.ci_support/linux_64_blas_implgenericchannel_targetsconda-forge_pytorch_rccuda_compiler_versionNoneis_rcTrue.yaml +++ b/.ci_support/linux_64_blas_implgenericchannel_targetsconda-forge_maincuda_compiler_versionNoneis_rcFalse.yaml @@ -11,7 +11,7 @@ c_stdlib_version: channel_sources: - conda-forge channel_targets: -- conda-forge pytorch_rc +- conda-forge main cuda_compiler: - cuda-nvcc cuda_compiler_version: @@ -25,11 +25,11 @@ cxx_compiler_version: docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 fmt: -- '12.0' +- '12.1' github_actions_labels: - cirun-openstack-gpu-2xlarge is_rc: -- 'True' +- 'False' libabseil: - '20250512' libblas: diff --git a/.ci_support/linux_64_blas_implmklchannel_targetsconda-forge_pytorch_rccuda_compiler_version12.9is_rcTrue.yaml b/.ci_support/linux_64_blas_implmklchannel_targetsconda-forge_maincuda_compiler_version12.9is_rcFalse.yaml similarity index 95% rename from .ci_support/linux_64_blas_implmklchannel_targetsconda-forge_pytorch_rccuda_compiler_version12.9is_rcTrue.yaml rename to .ci_support/linux_64_blas_implmklchannel_targetsconda-forge_maincuda_compiler_version12.9is_rcFalse.yaml index 673574c66..e26700b68 100644 --- a/.ci_support/linux_64_blas_implmklchannel_targetsconda-forge_pytorch_rccuda_compiler_version12.9is_rcTrue.yaml +++ b/.ci_support/linux_64_blas_implmklchannel_targetsconda-forge_maincuda_compiler_version12.9is_rcFalse.yaml @@ -11,7 +11,7 @@ c_stdlib_version: channel_sources: - conda-forge channel_targets: -- conda-forge pytorch_rc +- conda-forge main cuda_compiler: - cuda-nvcc cuda_compiler_version: @@ -25,11 +25,11 @@ cxx_compiler_version: docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 fmt: -- '12.0' +- '12.1' github_actions_labels: - cirun-openstack-gpu-2xlarge is_rc: -- 'True' +- 'False' libabseil: - '20250512' libblas: diff --git a/.ci_support/linux_64_blas_implmklchannel_targetsconda-forge_pytorch_rccuda_compiler_versionNoneis_rcTrue.yaml b/.ci_support/linux_64_blas_implmklchannel_targetsconda-forge_maincuda_compiler_versionNoneis_rcFalse.yaml similarity index 95% rename from .ci_support/linux_64_blas_implmklchannel_targetsconda-forge_pytorch_rccuda_compiler_versionNoneis_rcTrue.yaml rename to .ci_support/linux_64_blas_implmklchannel_targetsconda-forge_maincuda_compiler_versionNoneis_rcFalse.yaml index e413beb1a..ba0126a43 100644 --- a/.ci_support/linux_64_blas_implmklchannel_targetsconda-forge_pytorch_rccuda_compiler_versionNoneis_rcTrue.yaml +++ b/.ci_support/linux_64_blas_implmklchannel_targetsconda-forge_maincuda_compiler_versionNoneis_rcFalse.yaml @@ -11,7 +11,7 @@ c_stdlib_version: channel_sources: - conda-forge channel_targets: -- conda-forge pytorch_rc +- conda-forge main cuda_compiler: - cuda-nvcc cuda_compiler_version: @@ -25,11 +25,11 @@ cxx_compiler_version: docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 fmt: -- '12.0' +- '12.1' github_actions_labels: - cirun-openstack-gpu-2xlarge is_rc: -- 'True' +- 'False' libabseil: - '20250512' libblas: diff --git a/.ci_support/linux_aarch64_channel_targetsconda-forge_pytorch_rccuda_compiler_version12.9is_rcTrue.yaml b/.ci_support/linux_aarch64_channel_targetsconda-forge_maincuda_compiler_version12.9is_rcFalse.yaml similarity index 95% rename from .ci_support/linux_aarch64_channel_targetsconda-forge_pytorch_rccuda_compiler_version12.9is_rcTrue.yaml rename to .ci_support/linux_aarch64_channel_targetsconda-forge_maincuda_compiler_version12.9is_rcFalse.yaml index 1c9769b94..f25102f27 100644 --- a/.ci_support/linux_aarch64_channel_targetsconda-forge_pytorch_rccuda_compiler_version12.9is_rcTrue.yaml +++ b/.ci_support/linux_aarch64_channel_targetsconda-forge_maincuda_compiler_version12.9is_rcFalse.yaml @@ -11,7 +11,7 @@ c_stdlib_version: channel_sources: - conda-forge channel_targets: -- conda-forge pytorch_rc +- conda-forge main cuda_compiler: - cuda-nvcc cuda_compiler_version: @@ -25,11 +25,11 @@ cxx_compiler_version: docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 fmt: -- '12.0' +- '12.1' github_actions_labels: - cirun-openstack-gpu-2xlarge is_rc: -- 'True' +- 'False' libabseil: - '20250512' libblas: diff --git a/.ci_support/linux_aarch64_channel_targetsconda-forge_pytorch_rccuda_compiler_versionNoneis_rcTrue.yaml b/.ci_support/linux_aarch64_channel_targetsconda-forge_maincuda_compiler_versionNoneis_rcFalse.yaml similarity index 95% rename from .ci_support/linux_aarch64_channel_targetsconda-forge_pytorch_rccuda_compiler_versionNoneis_rcTrue.yaml rename to .ci_support/linux_aarch64_channel_targetsconda-forge_maincuda_compiler_versionNoneis_rcFalse.yaml index 1c7ea27a5..2cd6684f4 100644 --- a/.ci_support/linux_aarch64_channel_targetsconda-forge_pytorch_rccuda_compiler_versionNoneis_rcTrue.yaml +++ b/.ci_support/linux_aarch64_channel_targetsconda-forge_maincuda_compiler_versionNoneis_rcFalse.yaml @@ -11,7 +11,7 @@ c_stdlib_version: channel_sources: - conda-forge channel_targets: -- conda-forge pytorch_rc +- conda-forge main cuda_compiler: - cuda-nvcc cuda_compiler_version: @@ -25,11 +25,11 @@ cxx_compiler_version: docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 fmt: -- '12.0' +- '12.1' github_actions_labels: - cirun-openstack-gpu-2xlarge is_rc: -- 'True' +- 'False' libabseil: - '20250512' libblas: diff --git a/.ci_support/migrations/fmt121_spdlog117.yaml b/.ci_support/migrations/fmt121_spdlog117.yaml new file mode 100644 index 000000000..f46fced4a --- /dev/null +++ b/.ci_support/migrations/fmt121_spdlog117.yaml @@ -0,0 +1,10 @@ +__migrator: + build_number: 1 + commit_message: Rebuild for fmt 12.1 and spdlog 1.17 + kind: version + migration_number: 1 +migrator_ts: 1767674179.1402016 +fmt: +- '12.1' +spdlog: +- '1.17' diff --git a/.ci_support/migrations/fmt12_spdlog116.yaml b/.ci_support/migrations/fmt12_spdlog116.yaml deleted file mode 100644 index 87c31a2ba..000000000 --- a/.ci_support/migrations/fmt12_spdlog116.yaml +++ /dev/null @@ -1,10 +0,0 @@ -__migrator: - build_number: 1 - commit_message: Rebuild for fmt 12.0 and spdlog 1.16 - kind: version - migration_number: 1 -migrator_ts: 1760196591.995821 -fmt: -- '12.0' -spdlog: -- '1.16' diff --git a/.ci_support/osx_64_blas_implgenericchannel_targetsconda-forge_pytorch_rcis_rcTrue.yaml b/.ci_support/osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalse.yaml similarity index 95% rename from .ci_support/osx_64_blas_implgenericchannel_targetsconda-forge_pytorch_rcis_rcTrue.yaml rename to .ci_support/osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalse.yaml index 0e3c6fc57..d7641c86c 100644 --- a/.ci_support/osx_64_blas_implgenericchannel_targetsconda-forge_pytorch_rcis_rcTrue.yaml +++ b/.ci_support/osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalse.yaml @@ -15,7 +15,7 @@ c_stdlib_version: channel_sources: - conda-forge channel_targets: -- conda-forge pytorch_rc +- conda-forge main cuda_compiler: - cuda-nvcc cuda_compiler_version: @@ -25,11 +25,11 @@ cxx_compiler: cxx_compiler_version: - '19' fmt: -- '12.0' +- '12.1' github_actions_labels: - cirun-macos-m4-large is_rc: -- 'True' +- 'False' libabseil: - '20250512' libblas: diff --git a/.ci_support/osx_64_blas_implmklchannel_targetsconda-forge_pytorch_rcis_rcTrue.yaml b/.ci_support/osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalse.yaml similarity index 95% rename from .ci_support/osx_64_blas_implmklchannel_targetsconda-forge_pytorch_rcis_rcTrue.yaml rename to .ci_support/osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalse.yaml index a79826c93..61cdf0aa6 100644 --- a/.ci_support/osx_64_blas_implmklchannel_targetsconda-forge_pytorch_rcis_rcTrue.yaml +++ b/.ci_support/osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalse.yaml @@ -15,7 +15,7 @@ c_stdlib_version: channel_sources: - conda-forge channel_targets: -- conda-forge pytorch_rc +- conda-forge main cuda_compiler: - cuda-nvcc cuda_compiler_version: @@ -25,11 +25,11 @@ cxx_compiler: cxx_compiler_version: - '19' fmt: -- '12.0' +- '12.1' github_actions_labels: - cirun-macos-m4-large is_rc: -- 'True' +- 'False' libabseil: - '20250512' libblas: diff --git a/.ci_support/osx_arm64_channel_targetsconda-forge_pytorch_rcis_rcTrue.yaml b/.ci_support/osx_arm64_channel_targetsconda-forge_mainis_rcFalse.yaml similarity index 95% rename from .ci_support/osx_arm64_channel_targetsconda-forge_pytorch_rcis_rcTrue.yaml rename to .ci_support/osx_arm64_channel_targetsconda-forge_mainis_rcFalse.yaml index 6c92bb710..c8188ea68 100644 --- a/.ci_support/osx_arm64_channel_targetsconda-forge_pytorch_rcis_rcTrue.yaml +++ b/.ci_support/osx_arm64_channel_targetsconda-forge_mainis_rcFalse.yaml @@ -15,7 +15,7 @@ c_stdlib_version: channel_sources: - conda-forge channel_targets: -- conda-forge pytorch_rc +- conda-forge main cuda_compiler: - cuda-nvcc cuda_compiler_version: @@ -25,11 +25,11 @@ cxx_compiler: cxx_compiler_version: - '19' fmt: -- '12.0' +- '12.1' github_actions_labels: - cirun-macos-m4-large is_rc: -- 'True' +- 'False' libabseil: - '20250512' libblas: diff --git a/.ci_support/win_64_channel_targetsconda-forge_pytorch_rccuda_compiler_version12.8is_rcTrue.yaml b/.ci_support/win_64_channel_targetsconda-forge_maincuda_compiler_version12.8is_rcFalse.yaml similarity index 94% rename from .ci_support/win_64_channel_targetsconda-forge_pytorch_rccuda_compiler_version12.8is_rcTrue.yaml rename to .ci_support/win_64_channel_targetsconda-forge_maincuda_compiler_version12.8is_rcFalse.yaml index e617d2fcb..9d3fe548e 100644 --- a/.ci_support/win_64_channel_targetsconda-forge_pytorch_rccuda_compiler_version12.8is_rcTrue.yaml +++ b/.ci_support/win_64_channel_targetsconda-forge_maincuda_compiler_version12.8is_rcFalse.yaml @@ -7,7 +7,7 @@ c_stdlib: channel_sources: - conda-forge channel_targets: -- conda-forge pytorch_rc +- conda-forge main cuda_compiler: - cuda-nvcc cuda_compiler_version: @@ -17,11 +17,11 @@ cudnn: cxx_compiler: - vs2022 fmt: -- '12.0' +- '12.1' github_actions_labels: - cirun-azure-windows-4xlarge is_rc: -- 'True' +- 'False' libabseil: - '20250512' libmagma_sparse: diff --git a/.ci_support/win_64_channel_targetsconda-forge_pytorch_rccuda_compiler_versionNoneis_rcTrue.yaml b/.ci_support/win_64_channel_targetsconda-forge_maincuda_compiler_versionNoneis_rcFalse.yaml similarity index 94% rename from .ci_support/win_64_channel_targetsconda-forge_pytorch_rccuda_compiler_versionNoneis_rcTrue.yaml rename to .ci_support/win_64_channel_targetsconda-forge_maincuda_compiler_versionNoneis_rcFalse.yaml index b3a0d13a9..f0dc0d666 100644 --- a/.ci_support/win_64_channel_targetsconda-forge_pytorch_rccuda_compiler_versionNoneis_rcTrue.yaml +++ b/.ci_support/win_64_channel_targetsconda-forge_maincuda_compiler_versionNoneis_rcFalse.yaml @@ -7,7 +7,7 @@ c_stdlib: channel_sources: - conda-forge channel_targets: -- conda-forge pytorch_rc +- conda-forge main cuda_compiler: - cuda-nvcc cuda_compiler_version: @@ -17,11 +17,11 @@ cudnn: cxx_compiler: - vs2022 fmt: -- '12.0' +- '12.1' github_actions_labels: - cirun-azure-windows-4xlarge is_rc: -- 'True' +- 'False' libabseil: - '20250512' libmagma_sparse: diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml index d3fce2674..ea4e0228b 100644 --- a/.github/workflows/conda-build.yml +++ b/.github/workflows/conda-build.yml @@ -16,78 +16,78 @@ jobs: build: name: ${{ matrix.CONFIG }} runs-on: ${{ matrix.runs_on }} - timeout-minutes: 1200 + timeout-minutes: 1440 strategy: fail-fast: false matrix: include: - - CONFIG: linux_64_blas_implgenericchannel_targetsconda-forge_pytorch_rccuda_compiler_version12.9is_rcTrue - SHORT_CONFIG: linux_64_blas_implgenericchannel_targets_hc637dd34 + - CONFIG: linux_64_blas_implgenericchannel_targetsconda-forge_maincuda_compiler_version12.9is_rcFalse + SHORT_CONFIG: linux_64_blas_implgenericchannel_targets_h71a96c7d UPLOAD_PACKAGES: True os: ubuntu - runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_64_blas_implgenericchannel_targets_hc637dd34', 'linux', 'x64', 'self-hosted'] + runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_64_blas_implgenericchannel_targets_h71a96c7d', 'linux', 'x64', 'self-hosted'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 CONDA_FORGE_DOCKER_RUN_ARGS: "--gpus all" - - CONFIG: linux_64_blas_implgenericchannel_targetsconda-forge_pytorch_rccuda_compiler_versionNoneis_rcTrue - SHORT_CONFIG: linux_64_blas_implgenericchannel_targets_h7548ab25 + - CONFIG: linux_64_blas_implgenericchannel_targetsconda-forge_maincuda_compiler_versionNoneis_rcFalse + SHORT_CONFIG: linux_64_blas_implgenericchannel_targets_h17c608a0 UPLOAD_PACKAGES: True os: ubuntu - runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_64_blas_implgenericchannel_targets_h7548ab25', 'linux', 'x64', 'self-hosted'] + runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_64_blas_implgenericchannel_targets_h17c608a0', 'linux', 'x64', 'self-hosted'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 CONDA_FORGE_DOCKER_RUN_ARGS: "--gpus all" - - CONFIG: linux_64_blas_implmklchannel_targetsconda-forge_pytorch_rccuda_compiler_version12.9is_rcTrue - SHORT_CONFIG: linux_64_blas_implmklchannel_targetscond_h2dde49c7 + - CONFIG: linux_64_blas_implmklchannel_targetsconda-forge_maincuda_compiler_version12.9is_rcFalse + SHORT_CONFIG: linux_64_blas_implmklchannel_targetscond_h5b18f8bc UPLOAD_PACKAGES: True os: ubuntu - runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_64_blas_implmklchannel_targetscond_h2dde49c7', 'linux', 'x64', 'self-hosted'] + runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_64_blas_implmklchannel_targetscond_h5b18f8bc', 'linux', 'x64', 'self-hosted'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 CONDA_FORGE_DOCKER_RUN_ARGS: "--gpus all" - - CONFIG: linux_64_blas_implmklchannel_targetsconda-forge_pytorch_rccuda_compiler_versionNoneis_rcTrue - SHORT_CONFIG: linux_64_blas_implmklchannel_targetscond_h0aaf175a + - CONFIG: linux_64_blas_implmklchannel_targetsconda-forge_maincuda_compiler_versionNoneis_rcFalse + SHORT_CONFIG: linux_64_blas_implmklchannel_targetscond_h38f93959 UPLOAD_PACKAGES: True os: ubuntu - runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_64_blas_implmklchannel_targetscond_h0aaf175a', 'linux', 'x64', 'self-hosted'] + runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_64_blas_implmklchannel_targetscond_h38f93959', 'linux', 'x64', 'self-hosted'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 CONDA_FORGE_DOCKER_RUN_ARGS: "--gpus all" - - CONFIG: linux_aarch64_channel_targetsconda-forge_pytorch_rccuda_compiler_version12.9is_rcTrue - SHORT_CONFIG: linux_aarch64_channel_targetsconda-forge_h562a5d25 + - CONFIG: linux_aarch64_channel_targetsconda-forge_maincuda_compiler_version12.9is_rcFalse + SHORT_CONFIG: linux_aarch64_channel_targetsconda-forge_heefc8d83 UPLOAD_PACKAGES: True os: ubuntu - runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_aarch64_channel_targetsconda-forge_h562a5d25', 'linux', 'x64', 'self-hosted'] + runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_aarch64_channel_targetsconda-forge_heefc8d83', 'linux', 'x64', 'self-hosted'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 CONDA_FORGE_DOCKER_RUN_ARGS: "--gpus all" - - CONFIG: linux_aarch64_channel_targetsconda-forge_pytorch_rccuda_compiler_versionNoneis_rcTrue - SHORT_CONFIG: linux_aarch64_channel_targetsconda-forge_he6bea9a8 + - CONFIG: linux_aarch64_channel_targetsconda-forge_maincuda_compiler_versionNoneis_rcFalse + SHORT_CONFIG: linux_aarch64_channel_targetsconda-forge_h56c2c839 UPLOAD_PACKAGES: True os: ubuntu - runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_aarch64_channel_targetsconda-forge_he6bea9a8', 'linux', 'x64', 'self-hosted'] + runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_aarch64_channel_targetsconda-forge_h56c2c839', 'linux', 'x64', 'self-hosted'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 CONDA_FORGE_DOCKER_RUN_ARGS: "--gpus all" - - CONFIG: osx_64_blas_implgenericchannel_targetsconda-forge_pytorch_rcis_rcTrue - SHORT_CONFIG: osx_64_blas_implgenericchannel_targetsco_h36e27ba7 + - CONFIG: osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalse + SHORT_CONFIG: osx_64_blas_implgenericchannel_targetsco_h709642d7 UPLOAD_PACKAGES: True os: macos - runs_on: ['cirun-macos-m4-large--${{ github.run_id }}-osx_64_blas_implgenericchannel_targetsco_h36e27ba7', 'macOS', 'arm64', 'self-hosted'] - - CONFIG: osx_64_blas_implmklchannel_targetsconda-forge_pytorch_rcis_rcTrue - SHORT_CONFIG: osx_64_blas_implmklchannel_targetsconda-_hae519702 + runs_on: ['cirun-macos-m4-large--${{ github.run_id }}-osx_64_blas_implgenericchannel_targetsco_h709642d7', 'macOS', 'arm64', 'self-hosted'] + - CONFIG: osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalse + SHORT_CONFIG: osx_64_blas_implmklchannel_targetsconda-_h747b3c68 UPLOAD_PACKAGES: True os: macos - runs_on: ['cirun-macos-m4-large--${{ github.run_id }}-osx_64_blas_implmklchannel_targetsconda-_hae519702', 'macOS', 'arm64', 'self-hosted'] - - CONFIG: osx_arm64_channel_targetsconda-forge_pytorch_rcis_rcTrue - SHORT_CONFIG: osx_arm64_channel_targetsconda-forge_pyt_h292c857d + runs_on: ['cirun-macos-m4-large--${{ github.run_id }}-osx_64_blas_implmklchannel_targetsconda-_h747b3c68', 'macOS', 'arm64', 'self-hosted'] + - CONFIG: osx_arm64_channel_targetsconda-forge_mainis_rcFalse + SHORT_CONFIG: osx_arm64_channel_targetsconda-forge_mai_h5f57e26b UPLOAD_PACKAGES: True os: macos - runs_on: ['cirun-macos-m4-large--${{ github.run_id }}-osx_arm64_channel_targetsconda-forge_pyt_h292c857d', 'macOS', 'arm64', 'self-hosted'] - - CONFIG: win_64_channel_targetsconda-forge_pytorch_rccuda_compiler_version12.8is_rcTrue - SHORT_CONFIG: win_64_channel_targetsconda-forge_pytorc_h650359c2 + runs_on: ['cirun-macos-m4-large--${{ github.run_id }}-osx_arm64_channel_targetsconda-forge_mai_h5f57e26b', 'macOS', 'arm64', 'self-hosted'] + - CONFIG: win_64_channel_targetsconda-forge_maincuda_compiler_version12.8is_rcFalse + SHORT_CONFIG: win_64_channel_targetsconda-forge_maincu_hca575dce UPLOAD_PACKAGES: True os: windows - runs_on: ['cirun-azure-windows-4xlarge--${{ github.run_id }}-win_64_channel_targetsconda-forge_pytorc_h650359c2', 'windows', 'x64', 'self-hosted'] - - CONFIG: win_64_channel_targetsconda-forge_pytorch_rccuda_compiler_versionNoneis_rcTrue - SHORT_CONFIG: win_64_channel_targetsconda-forge_pytorc_hffeaf219 + runs_on: ['cirun-azure-windows-4xlarge--${{ github.run_id }}-win_64_channel_targetsconda-forge_maincu_hca575dce', 'windows', 'x64', 'self-hosted'] + - CONFIG: win_64_channel_targetsconda-forge_maincuda_compiler_versionNoneis_rcFalse + SHORT_CONFIG: win_64_channel_targetsconda-forge_maincu_hc68ac914 UPLOAD_PACKAGES: True os: windows - runs_on: ['cirun-azure-windows-4xlarge--${{ github.run_id }}-win_64_channel_targetsconda-forge_pytorc_hffeaf219', 'windows', 'x64', 'self-hosted'] + runs_on: ['cirun-azure-windows-4xlarge--${{ github.run_id }}-win_64_channel_targetsconda-forge_maincu_hc68ac914', 'windows', 'x64', 'self-hosted'] steps: - name: Checkout code diff --git a/README.md b/README.md index 7095e810c..84e94ab74 100644 --- a/README.md +++ b/README.md @@ -40,14 +40,14 @@ Current release info Installing pytorch-cpu ====================== -Installing `pytorch-cpu` from the `conda-forge/label/pytorch_rc` channel can be achieved by adding `conda-forge/label/pytorch_rc` to your channels with: +Installing `pytorch-cpu` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with: ``` -conda config --add channels conda-forge/label/pytorch_rc +conda config --add channels conda-forge conda config --set channel_priority strict ``` -Once the `conda-forge/label/pytorch_rc` channel has been enabled, `libtorch, pytorch, pytorch-cpu, pytorch-gpu, pytorch-tests` can be installed with `conda`: +Once the `conda-forge` channel has been enabled, `libtorch, pytorch, pytorch-cpu, pytorch-gpu, pytorch-tests` can be installed with `conda`: ``` conda install libtorch pytorch pytorch-cpu pytorch-gpu pytorch-tests @@ -62,26 +62,26 @@ mamba install libtorch pytorch pytorch-cpu pytorch-gpu pytorch-tests It is possible to list all of the versions of `libtorch` available on your platform with `conda`: ``` -conda search libtorch --channel conda-forge/label/pytorch_rc +conda search libtorch --channel conda-forge ``` or with `mamba`: ``` -mamba search libtorch --channel conda-forge/label/pytorch_rc +mamba search libtorch --channel conda-forge ``` Alternatively, `mamba repoquery` may provide more information: ``` # Search all versions available on your platform: -mamba repoquery search libtorch --channel conda-forge/label/pytorch_rc +mamba repoquery search libtorch --channel conda-forge # List packages depending on `libtorch`: -mamba repoquery whoneeds libtorch --channel conda-forge/label/pytorch_rc +mamba repoquery whoneeds libtorch --channel conda-forge # List dependencies of `libtorch`: -mamba repoquery depends libtorch --channel conda-forge/label/pytorch_rc +mamba repoquery depends libtorch --channel conda-forge ``` diff --git a/conda-forge.yml b/conda-forge.yml index af7f948fd..698ddec0f 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -19,7 +19,7 @@ github_actions: resize_win_partitions: true self_hosted: true store_build_artifacts: true - timeout_minutes: 1200 + timeout_minutes: 1440 triggers: - push - pull_request diff --git a/recipe/activate.bat b/recipe/activate.bat new file mode 100644 index 000000000..d90905064 --- /dev/null +++ b/recipe/activate.bat @@ -0,0 +1,9 @@ +@echo off + +if not defined CF_TORCH_CUDA_ARCH_LIST ( + set "CF_TORCH_CUDA_ARCH_LIST=@cf_torch_cuda_arch_list@" + :: "NOT_SET" is used as the value because it is clearer (explicit) that the activation + :: script was run and found no previous value for "CF_TORCH_CUDA_ARCH_LIST". + set "CF_TORCH_CUDA_ARCH_LIST_BACKUP=NOT_SET" +) + diff --git a/recipe/activate.sh b/recipe/activate.sh new file mode 100644 index 000000000..ab2c78059 --- /dev/null +++ b/recipe/activate.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +if [[ ! -v CF_TORCH_CUDA_ARCH_LIST ]] +then + export CF_TORCH_CUDA_ARCH_LIST="@cf_torch_cuda_arch_list@" + # "NOT_SET" is used as the value because it is clearer (explicit) that the activation + # script was run and found no previous value for "CF_TORCH_CUDA_ARCH_LIST". + export CF_TORCH_CUDA_ARCH_LIST_BACKUP="NOT_SET" +fi diff --git a/recipe/bld.bat b/recipe/bld.bat index c4750dc48..5124f7a9f 100644 --- a/recipe/bld.bat +++ b/recipe/bld.bat @@ -108,6 +108,7 @@ if not "%cuda_compiler_version%" == "None" ( @REM MKLDNN is an Apache-2.0 licensed library for DNNs and is used @REM for CPU builds. Not to be confused with MKL. set "USE_MKLDNN=1" + set "TORCH_CUDA_ARCH_LIST=" @REM On windows, env vars are case-insensitive and setup.py @REM passes all env vars starting with CUDA_*, CMAKE_* to @@ -221,6 +222,21 @@ if "%PKG_NAME%" == "libtorch" ( @REM Keep the original backed up to sed later copy build\CMakeCache.txt build\CMakeCache.txt.orig if %ERRORLEVEL% neq 0 exit 1 + + if not "%cuda_compiler_version%" == "None" ( + sed -e "s/@cf_torch_cuda_arch_list@/%TORCH_CUDA_ARCH_LIST%/g" ^ + %RECIPE_DIR%\activate.bat > %RECIPE_DIR%\activate-replaced.bat + if %ERRORLEVEL% neq 0 exit 1 + + mkdir %PREFIX%\etc\conda\activate.d + copy %RECIPE_DIR%\activate-replaced.bat %PREFIX%\etc\conda\activate.d\libtorch_activate.bat + if %ERRORLEVEL% neq 0 exit 1 + + mkdir %PREFIX%\etc\conda\deactivate.d + copy %RECIPE_DIR%\deactivate.bat %PREFIX%\etc\conda\deactivate.d\libtorch_deactivate.bat + if %ERRORLEVEL% neq 0 exit 1 + ) + ) else if "%PKG_NAME%" == "pytorch" ( @REM Move libtorch_python and remove the other directories afterwards. robocopy /NP /NFL /NDL /NJH /E %SP_DIR%\torch\bin\ %LIBRARY_BIN%\ torch_python.dll diff --git a/recipe/build.sh b/recipe/build.sh index dd24fc2d9..fde7fe80a 100644 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -254,6 +254,7 @@ else # for CPU builds. Not to be confused with MKL. export USE_MKLDNN=1 export USE_CUDA=0 + export TORCH_CUDA_ARCH_LIST="" fi echo '${CXX}'=${CXX} @@ -279,6 +280,16 @@ case ${PKG_NAME} in # Keep the original backed up to sed later cp build/CMakeCache.txt build/CMakeCache.txt.orig + + if [[ "${cuda_compiler_version}" != "None" ]]; then + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + sed -e "s/@cf_torch_cuda_arch_list@/${TORCH_CUDA_ARCH_LIST}/g" \ + "${RECIPE_DIR}/${CHANGE}.sh" > "${PREFIX}/etc/conda/${CHANGE}.d/libtorch_${CHANGE}.sh" + done + fi + ;; pytorch) $PREFIX/bin/python -m pip install . --no-deps --no-build-isolation -v --no-clean --config-settings=--global-option=-q \ @@ -302,7 +313,11 @@ case ${PKG_NAME} in for f in bin/* lib/* share/* include/*; do if [[ -e "$PREFIX/$f" ]]; then rm -rf $f - ln -sf $PREFIX/$f $PWD/$f + # do not symlink include files back + # https://github.com/conda-forge/pytorch-cpu-feedstock/issues/447#issuecomment-3712968499 + if [[ ${f} != include/* ]]; then + ln -sf $PREFIX/$f $PWD/$f + fi fi done popd diff --git a/recipe/deactivate.bat b/recipe/deactivate.bat new file mode 100644 index 000000000..de789f075 --- /dev/null +++ b/recipe/deactivate.bat @@ -0,0 +1,6 @@ +@echo off + +if "%CF_TORCH_CUDA_ARCH_LIST_BACKUP%" == "NOT_SET" ( + set "CF_TORCH_CUDA_ARCH_LIST=" + set "CF_TORCH_CUDA_ARCH_LIST_BACKUP=" +) diff --git a/recipe/deactivate.sh b/recipe/deactivate.sh new file mode 100644 index 000000000..5723b3298 --- /dev/null +++ b/recipe/deactivate.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +if [[ "${CF_TORCH_CUDA_ARCH_LIST_BACKUP}" == "NOT_SET" ]] +then + unset CF_TORCH_CUDA_ARCH_LIST + unset CF_TORCH_CUDA_ARCH_LIST_BACKUP +fi diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 0767a1287..03be7b4ab 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,5 +1,5 @@ # if you wish to build release candidate number X, append the version string with ".rcX" -{% set version = "2.10.0-rc3" %} +{% set version = "2.10.0" %} {% set build = 0 %} # Use a higher build number for the CUDA variant, to ensure that it's @@ -25,11 +25,11 @@ package: source: {% if "rc" in version %} - url: https://download.pytorch.org/source_code/test/pytorch-v{{ version }}.tar.gz - sha256: 3200721908010568b3715332a989948ea731242681935220beef090ae608aef2 + sha256: f35b2d7839b284410e5be9ec2eeb7a3049e09c1b8f6a871d3f2cad495d93dcd6 {% else %} # The "pytorch-v" tarballs contain submodules; the "pytorch-" ones don't. - url: https://github.com/pytorch/pytorch/releases/download/v{{ version }}/pytorch-v{{ version }}.tar.gz - sha256: e17504700ebc4c87f9b57059df1c4d790b769458c04db144c7a92aea90f2c92b + sha256: fa8ccbe87f83f48735505371c1c313b4aa6db400b0ae4f8a02844d1e150c695f {% endif %} patches: - patches/0001-Force-usage-of-python-3-and-error-without-numpy.patch @@ -365,6 +365,8 @@ outputs: - cuda-nvrtc-dev # [cuda_compiler_version != "None"] - nvtx-c # [cuda_compiler_version != "None"] - pybind11 + # not required upstream, but useful + - pytest-timeout imports: - torch - torch._C @@ -439,6 +441,12 @@ outputs: {% set skips = skips ~ " or test_addbmm or test_baddbmm or test_bmm" %} # [aarch64] # doesn't crash, but gets different result on aarch + CUDA {% set skips = skips ~ " or illcondition_matrix_input_should_not_crash_cpu" %} # [aarch64 and cuda_compiler_version != "None"] + # may crash spuriously + {% set skips = skips ~ " or (TestAutograd and test_profiler_seq_nr)" %} # [not win] + {% set skips = skips ~ " or (TestAutograd and test_profiler_propagation)" %} # [not win] + # tests that fail due to resource clean-up issues (non-unique temporary libraries), see + # https://github.com/conda-forge/pytorch-cpu-feedstock/pull/318#issuecomment-2620080859 + {% set skips = skips ~ " or test_mutable_custom_op_fixed_layout" %} # [not win] # minor inaccuracy on aarch64 (emulation?) {% set skips = skips ~ " or (TestNN and test_upsampling_bfloat16)" %} # [aarch64] # may crash spuriously @@ -479,21 +487,11 @@ outputs: # non-MKL problems {% set skips = skips ~ " or test_gather_scatter_cpu or test_index_put2_cpu" %} # [linux and blas_impl != "mkl" and cuda_compiler_version != "None"] # these tests are failing with low -n values - {% set skips = skips ~ " or test_base_does_not_require_grad_mode_nothing" %} - {% set skips = skips ~ " or test_base_does_not_require_grad_mode_warn" %} - {% set skips = skips ~ " or test_composite_registered_to_cpu_mode_nothing" %} + {% set skips = skips ~ " or test_base_does_not_require_grad_mode_nothing" %} # [not win] + {% set skips = skips ~ " or test_base_does_not_require_grad_mode_warn" %} # [not win] + {% set skips = skips ~ " or test_composite_registered_to_cpu_mode_nothing" %} # [not win] # these tests are failing on windows {% set skips = skips ~ " or (TestMkldnnCPU and test_batch_norm_2d_cpu)" %} # [win] - {% set skips = skips ~ " or (TestNN and test_Conv1d_dilated)" %} # [win] - {% set skips = skips ~ " or (TestNN and test_Conv1d_pad_same_dilated)" %} # [win] - {% set skips = skips ~ " or (TestNN and test_Conv2d_pad_same_dilated)" %} # [win] - {% set skips = skips ~ " or (TestNN and test_Conv2d_padding)" %} # [win] - {% set skips = skips ~ " or (TestNN and test_Conv2d_strided)" %} # [win] - {% set skips = skips ~ " or (TestNN and test_Conv3d_dilated)" %} # [win] - {% set skips = skips ~ " or (TestNN and test_Conv3d_dilated_strided)" %} # [win] - {% set skips = skips ~ " or (TestNN and test_Conv3d_pad_same_dilated)" %} # [win] - {% set skips = skips ~ " or (TestNN and test_Conv3d_stride)" %} # [win] - {% set skips = skips ~ " or (TestNN and test_Conv3d_stride_padding)" %} # [win] # flaky test, fragile to GC behavior {% set skips = skips ~ " or (TestTorch and test_tensor_cycle_via_slots)" %} # unexpected success @@ -514,7 +512,7 @@ outputs: {% set jobs = "-n 1" %} # [linux64 and cuda_compiler_version != "None"] # test only one python version on aarch because emulation is super-slow; # disable hypothesis because it randomly yields health check errors - - pytest {{ jobs }} {{ tests }} -k "not ({{ skips }})" -m "not hypothesis" --durations=50 --disable-warnings # [not aarch64 or py==312] + - pytest {{ jobs }} {{ tests }} -k "not ({{ skips }})" -m "not hypothesis" --durations=50 --timeout=1200 --disable-warnings # [not aarch64 or py==312] # regression test for https://github.com/conda-forge/pytorch-cpu-feedstock/issues/329, where we picked up # duplicate `.pyc` files due to newest py-ver (3.13) in the build environment not matching the one in host; diff --git a/recipe/patches/0005-point-include-paths-to-Conda-prefix-include-dir.patch b/recipe/patches/0005-point-include-paths-to-Conda-prefix-include-dir.patch index 2d1e0957b..db9695e07 100644 --- a/recipe/patches/0005-point-include-paths-to-Conda-prefix-include-dir.patch +++ b/recipe/patches/0005-point-include-paths-to-Conda-prefix-include-dir.patch @@ -1,4 +1,4 @@ -From ed5cdb12101ce038ff6f4d07d26e8fd02b044925 Mon Sep 17 00:00:00 2001 +From 629eb9adf45220709c4ff090dfb3b44702bda889 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Thu, 23 Jan 2025 22:58:14 +1100 Subject: [PATCH 05/15] point include paths to Conda prefix include dir @@ -7,14 +7,14 @@ Updated to use `sysconfig.get_config_vars("prefix")` per https://github.com/conda-forge/pytorch-cpu-feedstock/issues/424 and https://github.com/conda-forge/pytorch-cpu-feedstock/issues/447. --- - torch/utils/cpp_extension.py | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) + torch/utils/cpp_extension.py | 22 +++++++--------------- + 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/torch/utils/cpp_extension.py b/torch/utils/cpp_extension.py -index f29c382f0e3..e9557d43ee1 100644 +index f29c382f0e3..45ab9af3f48 100644 --- a/torch/utils/cpp_extension.py +++ b/torch/utils/cpp_extension.py -@@ -1567,12 +1567,18 @@ def include_paths(device_type: str = "cpu", torch_include_dirs=True) -> list[str +@@ -1567,31 +1567,23 @@ def include_paths(device_type: str = "cpu", torch_include_dirs=True) -> list[str Returns: A list of include path strings. """ @@ -34,3 +34,22 @@ index f29c382f0e3..e9557d43ee1 100644 os.path.join(lib_include, 'torch', 'csrc', 'api', 'include'), ]) if device_type == "cuda" and IS_HIP_EXTENSION: + paths.append(os.path.join(lib_include, 'THH')) + paths.append(_join_rocm_home('include')) +- elif device_type == "cuda": +- cuda_home_include = _join_cuda_home('include') +- # if we have the Debian/Ubuntu packages for cuda, we get /usr as cuda home. +- # but gcc doesn't like having /usr/include passed explicitly +- if cuda_home_include != '/usr/include': +- paths.append(cuda_home_include) +- +- # Support CUDA_INC_PATH env variable supported by CMake files +- if (cuda_inc_path := os.environ.get("CUDA_INC_PATH", None)) and \ +- cuda_inc_path != '/usr/include': +- +- paths.append(cuda_inc_path) +- if CUDNN_HOME is not None: +- paths.append(os.path.join(CUDNN_HOME, 'include')) + elif device_type == "xpu": + paths.append(_join_sycl_home('include')) + paths.append(_join_sycl_home('include', 'sycl'))