diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index 7b2e2f8..ad77f3a 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -8,11 +8,21 @@ jobs: vmImage: ubuntu-latest strategy: matrix: - linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10: - CONFIG: linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10 + linux_64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10: + CONFIG: linux_64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10 UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:11.2 - SHORT_CONFIG: linux_64_c_compiler_version10cuda_c_h409a79459c + SHORT_CONFIG: linux_64_c_compiler_version10cuda_c_h6c3dbf9b3c + linux_64_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version12: + CONFIG: linux_64_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version12 + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + SHORT_CONFIG: linux_64_c_compiler_version12cuda_c_h0d07a5e0ab + linux_aarch64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10: + CONFIG: linux_aarch64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10 + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:11.2 + SHORT_CONFIG: linux_aarch64_c_compiler_version10c_hb0ea797ce5 timeoutInMinutes: 360 steps: diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index 844c015..e0dfc75 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_compiler_version11.2: - CONFIG: win_64_cuda_compiler_version11.2 + win_64_cuda_compilernvcccuda_compiler_version11.2: + CONFIG: win_64_cuda_compilernvcccuda_compiler_version11.2 UPLOAD_PACKAGES: 'True' - SHORT_CONFIG: win_64_cuda_compiler_version11.2 + SHORT_CONFIG: win_64_cuda_compilernvcccuda_compil_h6dd062e242 timeoutInMinutes: 360 variables: CONDA_BLD_PATH: D:\\bld\\ diff --git a/.ci_support/linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10.yaml b/.ci_support/linux_64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10.yaml similarity index 96% rename from .ci_support/linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10.yaml rename to .ci_support/linux_64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10.yaml index c5b590b..f0675a0 100644 --- a/.ci_support/linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10.yaml +++ b/.ci_support/linux_64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10.yaml @@ -27,6 +27,7 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version + - cuda_compiler - cuda_compiler_version - cdt_name - 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.0cxx_compiler_version12.yaml new file mode 100644 index 0000000..334e0eb --- /dev/null +++ b/.ci_support/linux_64_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-cos7-x86_64 +libblas: +- 3.9 *netlib +liblapack: +- 3.9 *netlib +target_platform: +- linux-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version + - cuda_compiler + - cuda_compiler_version + - cdt_name + - docker_image diff --git a/.ci_support/linux_aarch64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10.yaml b/.ci_support/linux_aarch64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10.yaml similarity index 89% rename from .ci_support/linux_aarch64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10.yaml rename to .ci_support/linux_aarch64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10.yaml index 0e53a3b..26e57e5 100644 --- a/.ci_support/linux_aarch64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10.yaml +++ b/.ci_support/linux_aarch64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10.yaml @@ -21,7 +21,7 @@ cxx_compiler: cxx_compiler_version: - '10' docker_image: -- quay.io/condaforge/linux-anvil-aarch64-cuda:11.2 +- quay.io/condaforge/linux-anvil-cuda:11.2 libblas: - 3.9 *netlib liblapack: @@ -31,6 +31,7 @@ target_platform: 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 new file mode 100644 index 0000000..a999a3c --- /dev/null +++ b/.ci_support/migrations/cuda120.yaml @@ -0,0 +1,72 @@ +migrator_ts: 1682985063 +__migrator: + kind: + version + migration_number: + 1 + 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"] + - 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"] + commit_message: "Rebuild for CUDA 12" + +cuda_compiler: # [(linux64 or win) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + - cuda-nvcc # [(linux64 or win) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + +cuda_compiler_version: # [(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"] + +c_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: # [linux64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + - 12 # [linux64 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"] + +cudnn: # [(linux64 or win) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] + - 8 # [(linux64 or win) 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"] + +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"] diff --git a/.ci_support/win_64_cuda_compiler_version11.2.yaml b/.ci_support/win_64_cuda_compilernvcccuda_compiler_version11.2.yaml similarity index 81% rename from .ci_support/win_64_cuda_compiler_version11.2.yaml rename to .ci_support/win_64_cuda_compilernvcccuda_compiler_version11.2.yaml index e53e034..8821482 100644 --- a/.ci_support/win_64_cuda_compiler_version11.2.yaml +++ b/.ci_support/win_64_cuda_compilernvcccuda_compiler_version11.2.yaml @@ -16,3 +16,6 @@ liblapack: - 3.9 *netlib target_platform: - win-64 +zip_keys: +- - cuda_compiler + - cuda_compiler_version diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 7bfd646..0000000 --- a/.travis.yml +++ /dev/null @@ -1,22 +0,0 @@ -# This file was generated automatically from conda-smithy. To update this configuration, -# update the conda-forge.yml and/or the recipe/meta.yaml. - -language: generic - - - -matrix: - include: - - env: CONFIG=linux_aarch64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10 UPLOAD_PACKAGES=True PLATFORM=linux-aarch64 DOCKER_IMAGE=quay.io/condaforge/linux-anvil-aarch64-cuda:11.2 - os: linux - arch: arm64 - dist: focal - -script: - - export CI=travis - - export GIT_BRANCH="$TRAVIS_BRANCH" - - export FEEDSTOCK_NAME=$(basename ${TRAVIS_REPO_SLUG}) - - if [[ "${TRAVIS_PULL_REQUEST:-}" == "false" ]]; then export IS_PR_BUILD="False"; else export IS_PR_BUILD="True"; fi - - - - if [[ ${PLATFORM} =~ .*linux.* ]]; then CONDA_FORGE_DOCKER_RUN_ARGS="--network=host --security-opt=seccomp=unconfined" ./.scripts/run_docker_build.sh; fi \ No newline at end of file diff --git a/README.md b/README.md index 144b066..ee5cebd 100644 --- a/README.md +++ b/README.md @@ -13,14 +13,7 @@ Current build status ==================== - - - - +
Travis - - linux - -
@@ -34,24 +27,31 @@ Current build status
Azure
- + + + + - + - + diff --git a/conda-forge.yml b/conda-forge.yml index 7bf88fc..0f75b7c 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -10,3 +10,6 @@ provider: azure: # Enable artifact storage to test with GPUs locally store_build_artifacts: true +build_platform: + linux_ppc64le: linux_64 + linux_aarch64: linux_64 diff --git a/recipe/bld.bat b/recipe/bld.bat index 950db18..ed053b6 100644 --- a/recipe/bld.bat +++ b/recipe/bld.bat @@ -5,8 +5,8 @@ make generate --jobs %CPU_COUNT% if errorlevel 1 exit /b 1 :: Duplicate lists because of https://bitbucket.org/icl/magma/pull-requests/32 -set "CUDA_ARCH_LIST=sm_35,sm_60,sm_70,sm_80" -set "CUDAARCHS=35-virtual;60-virtual;70-virtual;80-virtual" +set "CUDA_ARCH_LIST=sm_35,sm_50,sm_60,sm_70,sm_75,sm_80" +set "CUDAARCHS=35-virtual;50-virtual;60-virtual;70-virtual;75-virtual;80-virtual" md build cd build diff --git a/recipe/build.sh b/recipe/build.sh index 03f2cbb..1aa1506 100644 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -3,19 +3,35 @@ set -exv # This step is required when building from raw source archive make generate --jobs ${CPU_COUNT} +# Only about 7 virtual archs can be built 6 hours for CUDA 11 + # Duplicate lists because of https://bitbucket.org/icl/magma/pull-requests/32 -export CUDA_ARCH_LIST="sm_35,sm_50,sm_60,sm_70,sm_80" -export CUDAARCHS="35-virtual;50-virtual;60-virtual;70-virtual;80-virtual" +export CUDA_ARCH_LIST="sm_35,sm_50,sm_60,sm_61,sm_70,sm_75,sm_80" +export CUDAARCHS="35-virtual;50-virtual;60-virtual;61-virtual;70-virtual;75-virtual;80-virtual" + +if [[ "$cuda_compiler_version" == "12.0" ]]; then + export CUDA_ARCH_LIST="sm_50,sm_60,sm_61,sm_70,sm_75,sm_80,sm_86,sm_89,sm_90" + export CUDAARCHS="50-virtual;60-virtual;61-virtual;70-virtual;75-virtual;80-virtual;86-virtual;89-virtual;90-virtual" +fi -# Only build the lowest non-deprecated arch to minimize build time -if [[ "$target_platform" == "linux-ppc64le" || "$target_platform" == "linux-aarch64" ]]; then - export CUDA_ARCH_LIST="sm_60" - export CUDAARCHS="60-virtual" +if [[ "$target_platform" == "linux-ppc64le" ]]; then + export CUDA_ARCH_LIST="sm_50,sm_60,sm_61,sm_70,sm_75,sm_80,sm_86" + export CUDAARCHS="50-virtual;60-virtual;61-virtual;70-virtual;75-virtual;80-virtual;86-virtual" +fi + +# Jetsons are more common for ARM devices, so target those minor versions +if [[ "$target_platform" == "linux-aarch64" ]]; then + export CUDA_ARCH_LIST="sm_50,sm_53,sm_60,sm_62,sm_70,sm_72,sm_80," + export CUDAARCHS="50-virtual;53-virtual;60-virtual;62-virtual;70-virtual;72-virtual;80-virtual" fi # Remove CXX standard flags added by conda-forge. std=c++11 is required to # compile some .cu files -CXXFLAGS="${CXXFLAGS//-std=c++17/-std=c++11}" +export CXXFLAGS="${CXXFLAGS//-std=c++17/-std=c++11}" + +# Conda-forge nvcc compiler flags environment variable doesn't match CMake environment variable +# Redirect it so that the flags are added to nvcc calls +export CUDAFLAGS="${CUDAFLAGS} ${CUDA_CFLAGS}" mkdir build cd build diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 5dc7adb..6b4ac1b 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -84,6 +84,8 @@ 'z_v1_map' ] %} +{% set cuda_major = environ.get("cuda_compiler_version", "11.2").split(".")[0]|int %} + package: name: libmagma version: {{ version }} @@ -96,12 +98,11 @@ source: - optional-install.patch build: - number: 1 - skip: true # [cuda_compiler_version=="None"] + number: 2 + skip: true # [cuda_compiler_version == "None"] skip: true # [cuda_compiler_version == "10.2"] skip: true # [cuda_compiler_version == "11.0"] skip: true # [cuda_compiler_version == "11.1"] - # Build times are too long for powerpc skip: true # [ppc64le] run_exports: - {{ pin_subpackage('libmagma', max_pin='x.x.x') }} @@ -121,6 +122,11 @@ requirements: - ninja - python host: +{% if cuda_major == 12 %} + - cuda-cudart-dev + - libcublas-dev + - libcusparse-dev +{% endif %} - liblapack - libblas
VariantStatus
linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10linux_64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10 + + variant + +
linux_64_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version12 - variant + variant
linux_aarch64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10linux_aarch64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10 - variant + variant
win_64_cuda_compiler_version11.2win_64_cuda_compilernvcccuda_compiler_version11.2 - variant + variant