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 |
-
-
-
-
- |
-
+
Azure |
@@ -34,24 +27,31 @@ Current build status
Variant | Status |
- linux_64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10 |
+ linux_64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10 |
+
+
+
+
+ |
+
+ linux_64_c_compiler_version12cuda_compilercuda-nvcccuda_compiler_version12.0cxx_compiler_version12 |
-
+
|
- linux_aarch64_c_compiler_version10cuda_compiler_version11.2cxx_compiler_version10 |
+ linux_aarch64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10 |
-
+
|
- win_64_cuda_compiler_version11.2 |
+ win_64_cuda_compilernvcccuda_compiler_version11.2 |
-
+
|
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