diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index 195a0b2..473daf3 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -8,10 +8,10 @@ jobs: vmImage: windows-2022 strategy: matrix: - win_64_cuda_compilercuda-nvcccuda_compiler_version12.0: - CONFIG: win_64_cuda_compilercuda-nvcccuda_compiler_version12.0 + win_64_cuda_compilercuda-nvcccuda_compiler_version12.6: + CONFIG: win_64_cuda_compilercuda-nvcccuda_compiler_version12.6 UPLOAD_PACKAGES: 'True' - SHORT_CONFIG: win_64_cuda_compilercuda-nvcccuda_c_h42eb0bda18 + SHORT_CONFIG: win_64_cuda_compilercuda-nvcccuda_c_h6e2eb0d459 win_64_cuda_compilernvcccuda_compiler_version11.8: CONFIG: win_64_cuda_compilernvcccuda_compiler_version11.8 UPLOAD_PACKAGES: 'True' @@ -19,31 +19,17 @@ jobs: timeoutInMinutes: 360 variables: CONDA_BLD_PATH: D:\\bld\\ + MINIFORGE_HOME: D:\Miniforge UPLOAD_TEMP: D:\\tmp steps: - - task: PythonScript@0 - displayName: 'Download Miniforge' - inputs: - scriptSource: inline - script: | - import urllib.request - url = 'https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Windows-x86_64.exe' - path = r"$(Build.ArtifactStagingDirectory)/Miniforge.exe" - urllib.request.urlretrieve(url, path) - - - script: | - start /wait "" %BUILD_ARTIFACTSTAGINGDIRECTORY%\Miniforge.exe /InstallationType=JustMe /RegisterPython=0 /S /D=C:\Miniforge - displayName: Install Miniforge - - - powershell: Write-Host "##vso[task.prependpath]C:\Miniforge\Scripts" - displayName: Add conda to PATH - - script: | call ".scripts\run_win_build.bat" displayName: Run Windows build env: + MINIFORGE_HOME: $(MINIFORGE_HOME) + CONDA_BLD_PATH: $(CONDA_BLD_PATH) PYTHONUNBUFFERED: 1 CONFIG: $(CONFIG) CI: azure @@ -56,6 +42,7 @@ jobs: FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) - script: | + set MINIFORGE_HOME=$(MINIFORGE_HOME) set CI=azure set CI_RUN_ID=$(build.BuildNumber).$(system.JobAttempt) set FEEDSTOCK_NAME=$(build.Repository.Name) diff --git a/.ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml b/.ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml index 556ef89..f74530a 100644 --- a/.ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml +++ b/.ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml @@ -7,7 +7,7 @@ c_stdlib: c_stdlib_version: - '2.17' cdt_name: -- cos7 +- conda channel_sources: - conda-forge channel_targets: @@ -21,7 +21,7 @@ cxx_compiler: cxx_compiler_version: - '11' docker_image: -- quay.io/condaforge/linux-anvil-cuda:11.8 +- quay.io/condaforge/linux-anvil-x86_64-cuda11.8:ubi8 github_actions_labels: - cirun-openstack-gpu-large libblas: @@ -33,8 +33,6 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version - - c_stdlib_version - - cdt_name - cuda_compiler - cuda_compiler_version - docker_image diff --git a/.ci_support/linux_64_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version12.yaml b/.ci_support/linux_64_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version12.yaml similarity index 84% rename from .ci_support/linux_64_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version12.yaml rename to .ci_support/linux_64_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version12.yaml index 48ce88f..4699e3f 100644 --- a/.ci_support/linux_64_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version12.yaml +++ b/.ci_support/linux_64_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version12.yaml @@ -7,7 +7,7 @@ c_stdlib: c_stdlib_version: - '2.17' cdt_name: -- cos7 +- conda channel_sources: - conda-forge channel_targets: @@ -15,13 +15,13 @@ channel_targets: cuda_compiler: - cuda-nvcc cuda_compiler_version: -- '12.0' +- '12.6' cxx_compiler: - gxx cxx_compiler_version: - '12' docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 +- quay.io/condaforge/linux-anvil-x86_64:alma9 github_actions_labels: - cirun-openstack-gpu-large libblas: @@ -33,8 +33,6 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version - - c_stdlib_version - - cdt_name - cuda_compiler - cuda_compiler_version - docker_image diff --git a/.ci_support/linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml b/.ci_support/linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml index db4f4e3..ea71ea1 100644 --- a/.ci_support/linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml +++ b/.ci_support/linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml @@ -1,5 +1,3 @@ -BUILD: -- aarch64-conda_cos7-linux-gnu c_compiler: - gcc c_compiler_version: @@ -8,10 +6,8 @@ c_stdlib: - sysroot c_stdlib_version: - '2.17' -cdt_arch: -- aarch64 cdt_name: -- cos7 +- conda channel_sources: - conda-forge channel_targets: @@ -25,7 +21,7 @@ cxx_compiler: cxx_compiler_version: - '11' docker_image: -- quay.io/condaforge/linux-anvil-cuda:11.8 +- quay.io/condaforge/linux-anvil-x86_64-cuda11.8:ubi8 github_actions_labels: - cirun-openstack-gpu-large libblas: @@ -37,8 +33,6 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version - - c_stdlib_version - - cdt_name - cuda_compiler - cuda_compiler_version - docker_image diff --git a/.ci_support/linux_aarch64_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version12.yaml b/.ci_support/linux_aarch64_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version12.yaml similarity index 77% rename from .ci_support/linux_aarch64_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version12.yaml rename to .ci_support/linux_aarch64_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version12.yaml index 6add352..50e4323 100644 --- a/.ci_support/linux_aarch64_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version12.yaml +++ b/.ci_support/linux_aarch64_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version12.yaml @@ -1,5 +1,3 @@ -BUILD: -- aarch64-conda_cos7-linux-gnu c_compiler: - gcc c_compiler_version: @@ -8,10 +6,8 @@ c_stdlib: - sysroot c_stdlib_version: - '2.17' -cdt_arch: -- aarch64 cdt_name: -- cos7 +- conda channel_sources: - conda-forge channel_targets: @@ -19,13 +15,13 @@ channel_targets: cuda_compiler: - cuda-nvcc cuda_compiler_version: -- '12.0' +- '12.6' cxx_compiler: - gxx cxx_compiler_version: - '12' docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 +- quay.io/condaforge/linux-anvil-x86_64:alma9 github_actions_labels: - cirun-openstack-gpu-large libblas: @@ -37,8 +33,6 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version - - c_stdlib_version - - cdt_name - cuda_compiler - cuda_compiler_version - docker_image diff --git a/.ci_support/linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml b/.ci_support/linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml index 66b8703..df37805 100644 --- a/.ci_support/linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml +++ b/.ci_support/linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml @@ -7,7 +7,7 @@ c_stdlib: c_stdlib_version: - '2.17' cdt_name: -- cos7 +- conda channel_sources: - conda-forge channel_targets: @@ -21,7 +21,7 @@ cxx_compiler: cxx_compiler_version: - '11' docker_image: -- quay.io/condaforge/linux-anvil-cuda:11.8 +- quay.io/condaforge/linux-anvil-x86_64-cuda11.8:ubi8 github_actions_labels: - cirun-openstack-gpu-large libblas: @@ -33,8 +33,6 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version - - c_stdlib_version - - cdt_name - cuda_compiler - cuda_compiler_version - docker_image diff --git a/.ci_support/linux_ppc64le_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version12.yaml b/.ci_support/linux_ppc64le_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.4cxx_compiler_version12.yaml similarity index 84% rename from .ci_support/linux_ppc64le_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version12.yaml rename to .ci_support/linux_ppc64le_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.4cxx_compiler_version12.yaml index 224de8b..c75e385 100644 --- a/.ci_support/linux_ppc64le_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version12.yaml +++ b/.ci_support/linux_ppc64le_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.4cxx_compiler_version12.yaml @@ -7,7 +7,7 @@ c_stdlib: c_stdlib_version: - '2.17' cdt_name: -- cos7 +- conda channel_sources: - conda-forge channel_targets: @@ -15,13 +15,13 @@ channel_targets: cuda_compiler: - cuda-nvcc cuda_compiler_version: -- '12.0' +- '12.4' cxx_compiler: - gxx cxx_compiler_version: - '12' docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 +- quay.io/condaforge/linux-anvil-x86_64:alma9 github_actions_labels: - cirun-openstack-gpu-large libblas: @@ -33,8 +33,6 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version - - c_stdlib_version - - cdt_name - cuda_compiler - cuda_compiler_version - docker_image diff --git a/.ci_support/migrations/cuda120.yaml b/.ci_support/migrations/cuda120.yaml deleted file mode 100644 index abfb9cb..0000000 --- a/.ci_support/migrations/cuda120.yaml +++ /dev/null @@ -1,90 +0,0 @@ -migrator_ts: 1682985063 -__migrator: - kind: - version - migration_number: - 3 - build_number: - 1 - paused: false - override_cbc_keys: - - cuda_compiler_stub - operation: key_add - check_solvable: false - primary_key: cuda_compiler_version - ordering: - cxx_compiler_version: - - 9 - - 8 - - 7 - c_compiler_version: - - 9 - - 8 - - 7 - fortran_compiler_version: - - 9 - - 8 - - 7 - docker_image: - - quay.io/condaforge/linux-anvil-comp7 # [os.environ.get("BUILD_PLATFORM") == "linux-64"] - - quay.io/condaforge/linux-anvil-aarch64 # [os.environ.get("BUILD_PLATFORM") == "linux-aarch64"] - - quay.io/condaforge/linux-anvil-ppc64le # [os.environ.get("BUILD_PLATFORM") == "linux-ppc64le"] - - quay.io/condaforge/linux-anvil-armv7l # [os.environ.get("BUILD_PLATFORM") == "linux-armv7l"] - - quay.io/condaforge/linux-anvil-cuda:9.2 # [linux64 and os.environ.get("BUILD_PLATFORM") == "linux-64"] - - quay.io/condaforge/linux-anvil-cuda:10.0 # [linux64 and os.environ.get("BUILD_PLATFORM") == "linux-64"] - - quay.io/condaforge/linux-anvil-cuda:10.1 # [linux64 and os.environ.get("BUILD_PLATFORM") == "linux-64"] - - quay.io/condaforge/linux-anvil-cuda:10.2 # [linux64 and os.environ.get("BUILD_PLATFORM") == "linux-64"] - - quay.io/condaforge/linux-anvil-cuda:11.0 # [linux64 and os.environ.get("BUILD_PLATFORM") == "linux-64"] - - quay.io/condaforge/linux-anvil-cuda:11.1 # [linux64 and os.environ.get("BUILD_PLATFORM") == "linux-64"] - - quay.io/condaforge/linux-anvil-cuda:11.2 # [linux64 and os.environ.get("BUILD_PLATFORM") == "linux-64"] - # case: native compilation (build == target) - - quay.io/condaforge/linux-anvil-ppc64le-cuda:11.2 # [ppc64le and os.environ.get("BUILD_PLATFORM") == "linux-ppc64le"] - - quay.io/condaforge/linux-anvil-aarch64-cuda:11.2 # [aarch64 and os.environ.get("BUILD_PLATFORM") == "linux-aarch64"] - # case: cross-compilation (build != target) - - quay.io/condaforge/linux-anvil-cuda:11.2 # [ppc64le and os.environ.get("BUILD_PLATFORM") == "linux-64"] - - quay.io/condaforge/linux-anvil-cuda:11.2 # [aarch64 and os.environ.get("BUILD_PLATFORM") == "linux-64"] - # case: non-CUDA builds - - quay.io/condaforge/linux-anvil-cos7-x86_64 # [linux64 and os.environ.get("BUILD_PLATFORM") == "linux-64"] - cuda_compiler_version: - - None - - 10.2 # [(linux64 or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 11.0 # [(linux64 or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 11.1 # [(linux64 or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 11.2 # [(linux or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 12.0 # [(linux or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - commit_message: | - Rebuild for CUDA 12 w/arch + Windows support - - The transition to CUDA 12 SDK includes new packages for all CUDA libraries and - build tools. Notably, the cudatoolkit package no longer exists, and packages - should depend directly on the specific CUDA libraries (libcublas, libcusolver, - etc) as needed. For an in-depth overview of the changes and to report problems - [see this issue]( https://github.com/conda-forge/conda-forge.github.io/issues/1963 ). - Please feel free to raise any issues encountered there. Thank you! :pray: - -cuda_compiler: # [(linux or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - cuda-nvcc # [(linux or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - -cuda_compiler_version: # [(linux or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 12.0 # [(linux or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - -c_compiler_version: # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 12 # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - -cxx_compiler_version: # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 12 # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - -fortran_compiler_version: # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 12 # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - -cdt_name: # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - cos7 # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - -docker_image: # [os.environ.get("BUILD_PLATFORM", "").startswith("linux-") and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - quay.io/condaforge/linux-anvil-cos7-x86_64 # [linux64 and os.environ.get("BUILD_PLATFORM") == "linux-64" and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - # case: native compilation (build == target) - - quay.io/condaforge/linux-anvil-ppc64le # [ppc64le and os.environ.get("BUILD_PLATFORM") == "linux-ppc64le"] - - quay.io/condaforge/linux-anvil-aarch64 # [aarch64 and os.environ.get("BUILD_PLATFORM") == "linux-aarch64"] - # case: cross-compilation (build != target) - - quay.io/condaforge/linux-anvil-cos7-x86_64 # [ppc64le and os.environ.get("BUILD_PLATFORM") == "linux-64"] - - quay.io/condaforge/linux-anvil-cos7-x86_64 # [aarch64 and os.environ.get("BUILD_PLATFORM") == "linux-64"] diff --git a/.ci_support/win_64_cuda_compilercuda-nvcccuda_compiler_version12.0.yaml b/.ci_support/win_64_cuda_compilercuda-nvcccuda_compiler_version12.6.yaml similarity index 97% rename from .ci_support/win_64_cuda_compilercuda-nvcccuda_compiler_version12.0.yaml rename to .ci_support/win_64_cuda_compilercuda-nvcccuda_compiler_version12.6.yaml index 4abdb09..5ce59a3 100644 --- a/.ci_support/win_64_cuda_compilercuda-nvcccuda_compiler_version12.0.yaml +++ b/.ci_support/win_64_cuda_compilercuda-nvcccuda_compiler_version12.6.yaml @@ -9,7 +9,7 @@ channel_targets: cuda_compiler: - cuda-nvcc cuda_compiler_version: -- '12.0' +- '12.6' cxx_compiler: - vs2019 github_actions_labels: diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml index a54d19b..055ea86 100644 --- a/.github/workflows/conda-build.yml +++ b/.github/workflows/conda-build.yml @@ -25,37 +25,37 @@ jobs: UPLOAD_PACKAGES: True os: ubuntu runs_on: ['cirun-openstack-gpu-large--${{ github.run_id }}-linux_64_c_compiler_version11cuda_c_h79df638478', 'linux', 'x64', 'self-hosted'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:11.8 + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64-cuda11.8:ubi8 CONDA_FORGE_DOCKER_RUN_ARGS: "--gpus all" - - CONFIG: linux_64_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version12 + - CONFIG: linux_64_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version12 UPLOAD_PACKAGES: True os: ubuntu - runs_on: ['cirun-openstack-gpu-large--${{ github.run_id }}-linux_64_c_compiler_version12cuda_c_h0d07a5e0ab', 'linux', 'x64', 'self-hosted'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + runs_on: ['cirun-openstack-gpu-large--${{ github.run_id }}-linux_64_c_compiler_version12cuda_c_h04d9ceec90', 'linux', 'x64', 'self-hosted'] + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 CONDA_FORGE_DOCKER_RUN_ARGS: "--gpus all" - CONFIG: linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11 UPLOAD_PACKAGES: True os: ubuntu runs_on: ['cirun-openstack-gpu-large--${{ github.run_id }}-linux_aarch64_c_compiler_version11c_h16465f209e', 'linux', 'x64', 'self-hosted'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:11.8 + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64-cuda11.8:ubi8 CONDA_FORGE_DOCKER_RUN_ARGS: "--gpus all" - - CONFIG: linux_aarch64_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version12 + - CONFIG: linux_aarch64_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version12 UPLOAD_PACKAGES: True os: ubuntu - runs_on: ['cirun-openstack-gpu-large--${{ github.run_id }}-linux_aarch64_c_compiler_version12c_h235c88ac5f', 'linux', 'x64', 'self-hosted'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + runs_on: ['cirun-openstack-gpu-large--${{ github.run_id }}-linux_aarch64_c_compiler_version12c_hf2672871f3', 'linux', 'x64', 'self-hosted'] + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 CONDA_FORGE_DOCKER_RUN_ARGS: "--gpus all" - CONFIG: linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11 UPLOAD_PACKAGES: True os: ubuntu runs_on: ['cirun-openstack-gpu-large--${{ github.run_id }}-linux_ppc64le_c_compiler_version11c_h079a9aa1e9', 'linux', 'x64', 'self-hosted'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:11.8 + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64-cuda11.8:ubi8 CONDA_FORGE_DOCKER_RUN_ARGS: "--gpus all" - - CONFIG: linux_ppc64le_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version12 + - CONFIG: linux_ppc64le_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.4cxx_compiler_version12 UPLOAD_PACKAGES: True os: ubuntu - runs_on: ['cirun-openstack-gpu-large--${{ github.run_id }}-linux_ppc64le_c_compiler_version12c_hcc019ba9b3', 'linux', 'x64', 'self-hosted'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + runs_on: ['cirun-openstack-gpu-large--${{ github.run_id }}-linux_ppc64le_c_compiler_version12c_h613ff65923', 'linux', 'x64', 'self-hosted'] + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 CONDA_FORGE_DOCKER_RUN_ARGS: "--gpus all" steps: @@ -113,13 +113,6 @@ jobs: fi ./.scripts/run_osx_build.sh - - name: Install Miniconda for windows - uses: conda-incubator/setup-miniconda@a4260408e20b96e80095f42ff7f1a15b27dd94ca # v3.0.4 - with: - miniforge-version: latest - miniforge-variant: Mambaforge - if: matrix.os == 'windows' - - name: Build on windows shell: cmd run: | @@ -128,6 +121,7 @@ jobs: set "sha=%GITHUB_SHA%" call ".scripts\run_win_build.bat" env: + MINIFORGE_HOME: D:\Miniforge PYTHONUNBUFFERED: 1 CONFIG: ${{ matrix.CONFIG }} CI: github_actions diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index 6c805a9..f8051ab 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -31,18 +31,20 @@ pkgs_dirs: solver: libmamba CONDARC +mv /opt/conda/conda-meta/history /opt/conda/conda-meta/history.$(date +%Y-%m-%d-%H-%M-%S) +echo > /opt/conda/conda-meta/history +micromamba install --root-prefix ~/.conda --prefix /opt/conda \ + --yes --override-channels --channel conda-forge --strict-channel-priority \ + pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 -mamba install --update-specs --yes --quiet --channel conda-forge --strict-channel-priority \ - pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1" -mamba update --update-specs --yes --quiet --channel conda-forge --strict-channel-priority \ - pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1" - # set up the condarc setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" source run_conda_forge_build_setup + + # make the build number clobber make_build_number "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" @@ -71,8 +73,8 @@ else --extra-meta flow_run_id="${flow_run_id:-}" remote_url="${remote_url:-}" sha="${sha:-}" ( startgroup "Inspecting artifacts" ) 2> /dev/null - # inspect_artifacts was only added in conda-forge-ci-setup 4.6.0 - command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts || echo "inspect_artifacts needs conda-forge-ci-setup >=4.6.0" + # inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 + command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts --recipe-dir "${RECIPE_ROOT}" -m "${CONFIG_FILE}" || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" ( endgroup "Inspecting artifacts" ) 2> /dev/null ( startgroup "Validating outputs" ) 2> /dev/null diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index 24ef201..2e7dd39 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -3,30 +3,51 @@ :: changes to this script, consider a proposal to conda-smithy so that other feedstocks can also :: benefit from the improvement. -:: Note: we assume a Miniforge installation is available - :: INPUTS (required environment variables) :: CONFIG: name of the .ci_support/*.yaml file for this job :: CI: azure, github_actions, or unset +:: MINIFORGE_HOME: where to install the base conda environment :: UPLOAD_PACKAGES: true or false :: UPLOAD_ON_BRANCH: true or false setlocal enableextensions enabledelayedexpansion +FOR %%A IN ("%~dp0.") DO SET "REPO_ROOT=%%~dpA" +if "%MINIFORGE_HOME%"=="" set "MINIFORGE_HOME=%USERPROFILE%\Miniforge3" +:: Remove trailing backslash, if present +if "%MINIFORGE_HOME:~-1%"=="\" set "MINIFORGE_HOME=%MINIFORGE_HOME:~0,-1%" +call :start_group "Provisioning base env with micromamba" +set "MAMBA_ROOT_PREFIX=%MINIFORGE_HOME%-micromamba-%RANDOM%" +set "MICROMAMBA_VERSION=1.5.10-0" +set "MICROMAMBA_URL=https://github.com/mamba-org/micromamba-releases/releases/download/%MICROMAMBA_VERSION%/micromamba-win-64" +set "MICROMAMBA_TMPDIR=%TMP%\micromamba-%RANDOM%" +set "MICROMAMBA_EXE=%MICROMAMBA_TMPDIR%\micromamba.exe" + +echo Downloading micromamba %MICROMAMBA_VERSION% +if not exist "%MICROMAMBA_TMPDIR%" mkdir "%MICROMAMBA_TMPDIR%" +certutil -urlcache -split -f "%MICROMAMBA_URL%" "%MICROMAMBA_EXE%" +if !errorlevel! neq 0 exit /b !errorlevel! + +echo Creating environment +call "%MICROMAMBA_EXE%" create --yes --root-prefix "%MAMBA_ROOT_PREFIX%" --prefix "%MINIFORGE_HOME%" ^ + --channel conda-forge ^ + pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" +if !errorlevel! neq 0 exit /b !errorlevel! +echo Removing %MAMBA_ROOT_PREFIX% +del /S /Q "%MAMBA_ROOT_PREFIX%" >nul +del /S /Q "%MICROMAMBA_TMPDIR%" >nul +call :end_group + call :start_group "Configuring conda" :: Activate the base conda environment -call activate base +echo Activating environment +call "%MINIFORGE_HOME%\Scripts\activate.bat" :: Configure the solver set "CONDA_SOLVER=libmamba" if !errorlevel! neq 0 exit /b !errorlevel! set "CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1" -:: Provision the necessary dependencies to build the recipe later -echo Installing dependencies -mamba.exe install "python=3.10" pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1" -c conda-forge --strict-channel-priority --yes -if !errorlevel! neq 0 exit /b !errorlevel! - :: Set basic configuration echo Setting up configuration setup_conda_rc .\ ".\recipe" .\.ci_support\%CONFIG%.yaml @@ -43,7 +64,7 @@ if EXIST LICENSE.txt ( ) if NOT [%flow_run_id%] == [] ( - set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --extra-meta flow_run_id=%flow_run_id% remote_url=%remote_url% sha=%sha%" + set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --extra-meta flow_run_id=%flow_run_id% remote_url=%remote_url% sha=%sha%" ) call :end_group @@ -54,8 +75,8 @@ conda-build.exe "recipe" -m .ci_support\%CONFIG%.yaml --suppress-variables %EXTR if !errorlevel! neq 0 exit /b !errorlevel! call :start_group "Inspecting artifacts" -:: inspect_artifacts was only added in conda-forge-ci-setup 4.6.0 -WHERE inspect_artifacts >nul 2>nul && inspect_artifacts || echo "inspect_artifacts needs conda-forge-ci-setup >=4.6.0" +:: inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 +WHERE inspect_artifacts >nul 2>nul && inspect_artifacts --recipe-dir ".\recipe" -m .ci_support\%CONFIG%.yaml || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" call :end_group :: Prepare some environment variables for the upload step diff --git a/README.md b/README.md index 868069e..06068a7 100644 --- a/README.md +++ b/README.md @@ -36,10 +36,10 @@ Current build status - linux_64_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version12 + linux_64_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version12 - variant + variant @@ -50,10 +50,10 @@ Current build status - linux_aarch64_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version12 + linux_aarch64_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version12 - variant + variant @@ -64,17 +64,17 @@ Current build status - linux_ppc64le_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version12 + linux_ppc64le_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.4cxx_compiler_version12 - variant + variant - win_64_cuda_compilercuda-nvcccuda_compiler_version12.0 + win_64_cuda_compilercuda-nvcccuda_compiler_version12.6 - variant + variant @@ -214,5 +214,5 @@ Feedstock Maintainers ===================== * [@carterbox](https://github.com/carterbox/) -* [@conda-forge/pytorch-cpu](https://github.com/conda-forge/pytorch-cpu/) +* [@conda-forge/pytorch-cpu](https://github.com/orgs/conda-forge/teams/pytorch-cpu/) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 93cf692..879c4a9 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -2,5 +2,30 @@ # update the conda-forge.yml and/or the recipe/meta.yaml. # -*- mode: yaml -*- -jobs: - - template: ./.azure-pipelines/azure-pipelines-win.yml \ No newline at end of file +stages: +- stage: Check + jobs: + - job: Skip + pool: + vmImage: 'ubuntu-22.04' + variables: + DECODE_PERCENTS: 'false' + RET: 'true' + steps: + - checkout: self + fetchDepth: '2' + - bash: | + git_log=`git log --max-count=1 --skip=1 --pretty=format:"%B" | tr "\n" " "` + echo "##vso[task.setvariable variable=log]$git_log" + displayName: Obtain commit message + - bash: echo "##vso[task.setvariable variable=RET]false" + condition: and(eq(variables['Build.Reason'], 'PullRequest'), or(contains(variables.log, '[skip azp]'), contains(variables.log, '[azp skip]'), contains(variables.log, '[skip ci]'), contains(variables.log, '[ci skip]'))) + displayName: Skip build? + - bash: echo "##vso[task.setvariable variable=start_main;isOutput=true]$RET" + name: result + displayName: Export result +- stage: Build + condition: and(succeeded(), eq(dependencies.Check.outputs['Skip.result.start_main'], 'true')) + dependsOn: Check + jobs: + - template: ./.azure-pipelines/azure-pipelines-win.yml \ No newline at end of file diff --git a/build-locally.py b/build-locally.py index e0d408d..c4a56c6 100755 --- a/build-locally.py +++ b/build-locally.py @@ -1,13 +1,16 @@ -#!/usr/bin/env python3 +#!/bin/sh +"""exec" "python3" "$0" "$@" #""" # fmt: off # fmt: on # # This file has been generated by conda-smithy in order to build the recipe # locally. # -import os +# The line above this comment is a bash / sh / zsh guard +# to stop people from running it with the wrong interpreter import glob +import os +import platform import subprocess from argparse import ArgumentParser -import platform def setup_environment(ns): @@ -23,6 +26,13 @@ def setup_environment(ns): os.path.dirname(__file__), "miniforge3" ) + # The default cache location might not be writable using docker on macOS. + if ns.config.startswith("linux") and platform.system() == "Darwin": + os.environ["CONDA_FORGE_DOCKER_RUN_ARGS"] = ( + os.environ.get("CONDA_FORGE_DOCKER_RUN_ARGS", "") + + " -e RATTLER_CACHE_DIR=/tmp/rattler_cache" + ) + def run_docker_build(ns): script = ".scripts/run_docker_build.sh" diff --git a/recipe/optional-install.patch b/recipe/001-optional-install.patch similarity index 100% rename from recipe/optional-install.patch rename to recipe/001-optional-install.patch diff --git a/recipe/002-quick-fix-12.6.patch b/recipe/002-quick-fix-12.6.patch new file mode 100644 index 0000000..8d404c4 --- /dev/null +++ b/recipe/002-quick-fix-12.6.patch @@ -0,0 +1,76 @@ +From a384f3e98d2f0bfef4019c7e0f5c91764b172eca Mon Sep 17 00:00:00 2001 +From: Ahmad Abdelfattah +Date: Wed, 21 Aug 2024 09:03:55 -0400 +Subject: [PATCH] a quick fix to build issues against cuda 12.6 + +isuruf: also re-generate other *gbtf2_kernels.cu +--- + magmablas/cgbtf2_kernels.cu | 4 ++++ + magmablas/dgbtf2_kernels.cu | 4 ++++ + magmablas/sgbtf2_kernels.cu | 4 ++++ + magmablas/zgbtf2_kernels.cu | 4 ++++ + 4 files changed, 16 insertions(+) + +diff --git a/magmablas/cgbtf2_kernels.cu b/magmablas/cgbtf2_kernels.cu +index 1b44273..e769534 100644 +--- a/magmablas/cgbtf2_kernels.cu ++++ b/magmablas/cgbtf2_kernels.cu +@@ -12,6 +12,10 @@ + + #include "magma_internal.h" + #if defined(MAGMA_HAVE_CUDA) ++#if CUDA_VERSION >= 12060 ++#undef max ++#undef min ++#endif + #include + namespace cg = cooperative_groups; + #elif defined(MAGMA_HAVE_HIP) +diff --git a/magmablas/dgbtf2_kernels.cu b/magmablas/dgbtf2_kernels.cu +index c2af4f4..c2e0b4d 100644 +--- a/magmablas/dgbtf2_kernels.cu ++++ b/magmablas/dgbtf2_kernels.cu +@@ -12,6 +12,10 @@ + + #include "magma_internal.h" + #if defined(MAGMA_HAVE_CUDA) ++#if CUDA_VERSION >= 12060 ++#undef max ++#undef min ++#endif + #include + namespace cg = cooperative_groups; + #elif defined(MAGMA_HAVE_HIP) +diff --git a/magmablas/sgbtf2_kernels.cu b/magmablas/sgbtf2_kernels.cu +index bbc691a..752c5f7 100644 +--- a/magmablas/sgbtf2_kernels.cu ++++ b/magmablas/sgbtf2_kernels.cu +@@ -12,6 +12,10 @@ + + #include "magma_internal.h" + #if defined(MAGMA_HAVE_CUDA) ++#if CUDA_VERSION >= 12060 ++#undef max ++#undef min ++#endif + #include + namespace cg = cooperative_groups; + #elif defined(MAGMA_HAVE_HIP) +diff --git a/magmablas/zgbtf2_kernels.cu b/magmablas/zgbtf2_kernels.cu +index c1afa3b..3ea8136 100644 +--- a/magmablas/zgbtf2_kernels.cu ++++ b/magmablas/zgbtf2_kernels.cu +@@ -12,6 +12,10 @@ + + #include "magma_internal.h" + #if defined(MAGMA_HAVE_CUDA) ++#if CUDA_VERSION >= 12060 ++#undef max ++#undef min ++#endif + #include + namespace cg = cooperative_groups; + #elif defined(MAGMA_HAVE_HIP) +-- +2.43.0 + diff --git a/recipe/bld.bat b/recipe/bld.bat index c4956e8..3bd12f8 100644 --- a/recipe/bld.bat +++ b/recipe/bld.bat @@ -41,7 +41,7 @@ cmake %SRC_DIR% ^ -DGPU_TARGET="%CUDA_ARCH_LIST%" ^ -DMAGMA_ENABLE_CUDA:BOOL=ON ^ -DUSE_FORTRAN:BOOL=OFF ^ - -DCMAKE_CUDA_FLAGS="--use-local-env" ^ + -DCMAKE_CUDA_FLAGS="--use-local-env -Xfatbin -compress-all" ^ -DCMAKE_CUDA_SEPARABLE_COMPILATION:BOOL=OFF if errorlevel 1 exit /b 1 diff --git a/recipe/build.sh b/recipe/build.sh index f447328..f77919b 100644 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -38,6 +38,9 @@ export CXXFLAGS="${CXXFLAGS//-std=c++17/-std=c++11}" # Redirect it so that the flags are added to nvcc calls export CUDAFLAGS="${CUDAFLAGS} ${CUDA_CFLAGS}" +# Compress SASS and PTX in the binary to reduce disk usage +export CUDAFLAGS="${CUDAFLAGS} -Xfatbin -compress-all" + mkdir build cd build @@ -63,3 +66,5 @@ cmake --install . --strip rm -rf $PREFIX/include/* rm $PREFIX/lib/pkgconfig/magma.pc + +ls -alh $PREFIX/lib/ diff --git a/recipe/meta.yaml b/recipe/meta.yaml index d673191..f5bb682 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -94,11 +94,13 @@ source: - url: https://icl.utk.edu/projectsfiles/magma/downloads/magma-{{ version }}.tar.gz sha256: f4e5e75350743fe57f49b615247da2cc875e5193cc90c11b43554a7c82cc4348 patches: - - optional-install.patch + - 001-optional-install.patch + # https://github.com/icl-utk-edu/magma/pull/8 + - 002-quick-fix-12.6.patch - path: make.inc build: - number: 0 + number: 1 skip: true # [cuda_compiler_version == "None"] skip: true # [cuda_compiler_version == "11.2"] run_exports: