diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index 94d7e01..601f916 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -20,13 +20,49 @@ jobs: CONFIG: linux_aarch64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10 UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-aarch64-cuda:11.2 + linux_aarch64_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version12: + CONFIG: linux_aarch64_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version12 + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-aarch64 linux_ppc64le_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10: CONFIG: linux_ppc64le_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10 UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-ppc64le-cuda:11.2 + linux_ppc64le_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version12: + CONFIG: linux_ppc64le_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version12 + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-ppc64le timeoutInMinutes: 360 steps: + - script: | + sudo mkdir -p /opt/empty_dir || true + for d in \ + /opt/ghc \ + /opt/hostedtoolcache \ + /usr/lib/jvm \ + /usr/local/.ghcup \ + /usr/local/lib/android \ + /usr/local/share/powershell \ + /usr/share/dotnet \ + /usr/share/swift \ + ; do + sudo rsync --stats -a --delete /opt/empty_dir/ $d || true + done + sudo apt-get purge -y -f firefox \ + google-chrome-stable \ + microsoft-edge-stable + sudo apt-get autoremove -y >& /dev/null + sudo apt-get autoclean -y >& /dev/null + sudo docker image prune --all --force + df -h + displayName: Manage disk space + - script: | + sudo fallocate -l 10GiB /swapfile || true + sudo chmod 600 /swapfile || true + sudo mkswap /swapfile || true + sudo swapon /swapfile || true + displayName: Create swap file # configure qemu binfmt-misc running. This allows us to run docker containers # embedded qemu-static - script: | 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.0cxx_compiler_version12.yaml new file mode 100644 index 0000000..cb009f3 --- /dev/null +++ b/.ci_support/linux_aarch64_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version12.yaml @@ -0,0 +1,37 @@ +BUILD: +- aarch64-conda_cos7-linux-gnu +c_compiler: +- gcc +c_compiler_version: +- '12' +cdt_arch: +- aarch64 +cdt_name: +- cos7 +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- cuda-nvcc +cuda_compiler_version: +- '12.0' +cxx_compiler: +- gxx +cxx_compiler_version: +- '12' +docker_image: +- quay.io/condaforge/linux-anvil-aarch64 +fmt: +- '9' +spdlog: +- '1.11' +target_platform: +- linux-aarch64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version + - cuda_compiler + - cuda_compiler_version + - cdt_name + - 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.0cxx_compiler_version12.yaml new file mode 100644 index 0000000..bec4d82 --- /dev/null +++ b/.ci_support/linux_ppc64le_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version12.yaml @@ -0,0 +1,33 @@ +c_compiler: +- gcc +c_compiler_version: +- '12' +cdt_name: +- cos7 +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- cuda-nvcc +cuda_compiler_version: +- '12.0' +cxx_compiler: +- gxx +cxx_compiler_version: +- '12' +docker_image: +- quay.io/condaforge/linux-anvil-ppc64le +fmt: +- '9' +spdlog: +- '1.11' +target_platform: +- linux-ppc64le +zip_keys: +- - c_compiler_version + - cxx_compiler_version + - cuda_compiler + - cuda_compiler_version + - cdt_name + - docker_image diff --git a/.ci_support/migrations/cuda120.yaml b/.ci_support/migrations/cuda120.yaml index 17bd59c..49da33d 100644 --- a/.ci_support/migrations/cuda120.yaml +++ b/.ci_support/migrations/cuda120.yaml @@ -3,7 +3,7 @@ __migrator: kind: version migration_number: - 1 + 2 build_number: 1 paused: false @@ -37,44 +37,54 @@ __migrator: - 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 win) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - 11.0 # [(linux64 or win) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - 11.1 # [(linux64 or win) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 11.2 # [(linux64 or win) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 12.0 # [(linux64 or win) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + - 11.2 # [(linux or win) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + - 12.0 # [(linux or win) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] commit_message: | - Rebuild for CUDA 12 + Rebuild for CUDA 12 w/arch 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 (libblas, libcusolver, + 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: # [linux64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - cuda-nvcc # [linux64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - -cuda_compiler_version: # [linux64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 12.0 # [linux64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] +cuda_compiler: # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + - cuda-nvcc # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] -c_compiler_version: # [linux64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 12 # [linux64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] +cuda_compiler_version: # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + - 12.0 # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] -cxx_compiler_version: # [linux64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 12 # [linux64 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"] -fortran_compiler_version: # [linux64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 12 # [linux64 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"] -cudnn: # [linux64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 8 # [linux64 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: # [linux64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - cos7 # [linux64 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/README.md b/README.md index 5f96ad5..81a50a4 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,13 @@ Current build status variant + + linux_aarch64_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version12 + + + variant + + linux_ppc64le_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10 @@ -54,6 +61,13 @@ Current build status variant + + linux_ppc64le_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version12 + + + variant + + diff --git a/conda-forge.yml b/conda-forge.yml index e2aad3f..e31dfe0 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -1,3 +1,9 @@ +azure: + free_disk_space: true + settings_linux: + swapfile_size: 10GiB +conda_build: + pkg_format: '2' conda_forge_output_validation: true github: branch_name: main @@ -9,5 +15,3 @@ os_version: provider: linux_aarch64: azure linux_ppc64le: azure -conda_build: - pkg_format: '2' diff --git a/recipe/build.sh b/recipe/build.sh index 76235db..eaee559 100644 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -11,7 +11,12 @@ export LIBRMM_BUILD_DIR=${LIBRMM_BUILD_DIR:=${RMM_SRC_DIR}/build} export INSTALL_PREFIX=${PREFIX:=${CONDA_PREFIX}} export CUDA_STATIC_RUNTIME=OFF export PER_THREAD_DEFAULT_STREAM=OFF -export BUILD_TESTS=ON + +export BUILD_TESTS=OFF +if [[ "$build_platform" == "linux-64" ]]; then + export BUILD_TESTS=ON +fi + export BUILD_BENCHMARKS=OFF export BUILD_TYPE=Release export VERBOSE_FLAG="-v" diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 309eb98..d41c200 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -11,7 +11,7 @@ source: folder: rmm build: - number: 1 + number: 2 skip: true # [(not linux) or (cuda_compiler_version == "None")] run_exports: - {{ pin_subpackage(name, max_pin="x.x") }}