diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml
new file mode 100755
index 000000000..d55741553
--- /dev/null
+++ b/.azure-pipelines/azure-pipelines-linux.yml
@@ -0,0 +1,72 @@
+# This file was generated automatically from conda-smithy. To update this configuration,
+# update the conda-forge.yml and/or the recipe/meta.yaml.
+# -*- mode: yaml -*-
+
+jobs:
+- job: linux
+ pool:
+ vmImage: ubuntu-latest
+ strategy:
+ matrix:
+ linux_aarch64_c_compiler_version11cuda_compiler_version12.8cxx_compiler_version11python3.10.____cpython:
+ CONFIG: linux_aarch64_c_compiler_version11cuda_compiler_version12.8cxx_compiler_version11python3.10.____cpython
+ UPLOAD_PACKAGES: 'True'
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-aarch64:alma9
+ linux_aarch64_c_compiler_version11cuda_compiler_version12.8cxx_compiler_version11python3.11.____cpython:
+ CONFIG: linux_aarch64_c_compiler_version11cuda_compiler_version12.8cxx_compiler_version11python3.11.____cpython
+ UPLOAD_PACKAGES: 'True'
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-aarch64:alma9
+ linux_aarch64_c_compiler_version11cuda_compiler_version12.8cxx_compiler_version11python3.12.____cpython:
+ CONFIG: linux_aarch64_c_compiler_version11cuda_compiler_version12.8cxx_compiler_version11python3.12.____cpython
+ UPLOAD_PACKAGES: 'True'
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-aarch64:alma9
+ linux_aarch64_c_compiler_version11cuda_compiler_version12.8cxx_compiler_version11python3.9.____cpython:
+ CONFIG: linux_aarch64_c_compiler_version11cuda_compiler_version12.8cxx_compiler_version11python3.9.____cpython
+ UPLOAD_PACKAGES: 'True'
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-aarch64:alma9
+ linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13python3.10.____cpython:
+ CONFIG: linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13python3.10.____cpython
+ UPLOAD_PACKAGES: 'True'
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-aarch64:alma9
+ linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13python3.11.____cpython:
+ CONFIG: linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13python3.11.____cpython
+ UPLOAD_PACKAGES: 'True'
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-aarch64:alma9
+ linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13python3.12.____cpython:
+ CONFIG: linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13python3.12.____cpython
+ UPLOAD_PACKAGES: 'True'
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-aarch64:alma9
+ linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13python3.9.____cpython:
+ CONFIG: linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13python3.9.____cpython
+ UPLOAD_PACKAGES: 'True'
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-aarch64:alma9
+ timeoutInMinutes: 360
+ variables: {}
+
+ steps:
+ # configure qemu binfmt-misc running. This allows us to run docker containers
+ # embedded qemu-static
+ - script: |
+ docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes
+ ls /proc/sys/fs/binfmt_misc/
+ condition: not(startsWith(variables['CONFIG'], 'linux_64'))
+ displayName: Configure binfmt_misc
+
+ - script: |
+ export CI=azure
+ export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt)
+ export remote_url=$(Build.Repository.Uri)
+ export sha=$(Build.SourceVersion)
+ export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME
+ export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME})
+ if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then
+ export IS_PR_BUILD="True"
+ else
+ export IS_PR_BUILD="False"
+ fi
+ .scripts/run_docker_build.sh
+ displayName: Run docker build
+ env:
+ BINSTAR_TOKEN: $(BINSTAR_TOKEN)
+ FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN)
+ STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN)
\ No newline at end of file
diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml
index 8868805c6..6c6bd902f 100755
--- a/.azure-pipelines/azure-pipelines-osx.yml
+++ b/.azure-pipelines/azure-pipelines-osx.yml
@@ -20,19 +20,7 @@ jobs:
osx_64_python3.9.____cpython:
CONFIG: osx_64_python3.9.____cpython
UPLOAD_PACKAGES: 'True'
- osx_arm64_python3.10.____cpython:
- CONFIG: osx_arm64_python3.10.____cpython
- UPLOAD_PACKAGES: 'True'
- osx_arm64_python3.11.____cpython:
- CONFIG: osx_arm64_python3.11.____cpython
- UPLOAD_PACKAGES: 'True'
- osx_arm64_python3.12.____cpython:
- CONFIG: osx_arm64_python3.12.____cpython
- UPLOAD_PACKAGES: 'True'
- osx_arm64_python3.9.____cpython:
- CONFIG: osx_arm64_python3.9.____cpython
- UPLOAD_PACKAGES: 'True'
- timeoutInMinutes: 1
+ timeoutInMinutes: 360
variables: {}
steps:
diff --git a/.ci_support/linux_64_c_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13python3.10.____cpython.yaml b/.ci_support/linux_64_cuda_compiler_version12.6python3.10.____cpython.yaml
similarity index 93%
rename from .ci_support/linux_64_c_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13python3.10.____cpython.yaml
rename to .ci_support/linux_64_cuda_compiler_version12.6python3.10.____cpython.yaml
index c008a7a22..b6e487514 100644
--- a/.ci_support/linux_64_c_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13python3.10.____cpython.yaml
+++ b/.ci_support/linux_64_cuda_compiler_version12.6python3.10.____cpython.yaml
@@ -47,7 +47,7 @@ libprotobuf:
nccl:
- '2'
numpy:
-- '2.0'
+- '2'
openssl:
- '3'
perl:
@@ -69,10 +69,6 @@ tensorflow:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
- - cuda_compiler
- cuda_compiler_version
- - docker_image
-- - python
- - numpy
zlib:
- '1'
diff --git a/.ci_support/linux_64_c_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13python3.11.____cpython.yaml b/.ci_support/linux_64_cuda_compiler_version12.6python3.11.____cpython.yaml
similarity index 93%
rename from .ci_support/linux_64_c_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13python3.11.____cpython.yaml
rename to .ci_support/linux_64_cuda_compiler_version12.6python3.11.____cpython.yaml
index 13854d416..c52ac73f3 100644
--- a/.ci_support/linux_64_c_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13python3.11.____cpython.yaml
+++ b/.ci_support/linux_64_cuda_compiler_version12.6python3.11.____cpython.yaml
@@ -47,7 +47,7 @@ libprotobuf:
nccl:
- '2'
numpy:
-- '2.0'
+- '2'
openssl:
- '3'
perl:
@@ -69,10 +69,6 @@ tensorflow:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
- - cuda_compiler
- cuda_compiler_version
- - docker_image
-- - python
- - numpy
zlib:
- '1'
diff --git a/.ci_support/linux_64_c_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13python3.12.____cpython.yaml b/.ci_support/linux_64_cuda_compiler_version12.6python3.12.____cpython.yaml
similarity index 93%
rename from .ci_support/linux_64_c_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13python3.12.____cpython.yaml
rename to .ci_support/linux_64_cuda_compiler_version12.6python3.12.____cpython.yaml
index 2ed17df65..47fb81213 100644
--- a/.ci_support/linux_64_c_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13python3.12.____cpython.yaml
+++ b/.ci_support/linux_64_cuda_compiler_version12.6python3.12.____cpython.yaml
@@ -47,7 +47,7 @@ libprotobuf:
nccl:
- '2'
numpy:
-- '2.0'
+- '2'
openssl:
- '3'
perl:
@@ -69,10 +69,6 @@ tensorflow:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
- - cuda_compiler
- cuda_compiler_version
- - docker_image
-- - python
- - numpy
zlib:
- '1'
diff --git a/.ci_support/linux_64_c_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13python3.9.____cpython.yaml b/.ci_support/linux_64_cuda_compiler_version12.6python3.9.____cpython.yaml
similarity index 93%
rename from .ci_support/linux_64_c_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13python3.9.____cpython.yaml
rename to .ci_support/linux_64_cuda_compiler_version12.6python3.9.____cpython.yaml
index b9d3f1cce..3b2c0a886 100644
--- a/.ci_support/linux_64_c_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13python3.9.____cpython.yaml
+++ b/.ci_support/linux_64_cuda_compiler_version12.6python3.9.____cpython.yaml
@@ -47,7 +47,7 @@ libprotobuf:
nccl:
- '2'
numpy:
-- '2.0'
+- '2'
openssl:
- '3'
perl:
@@ -69,10 +69,6 @@ tensorflow:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
- - cuda_compiler
- cuda_compiler_version
- - docker_image
-- - python
- - numpy
zlib:
- '1'
diff --git a/.ci_support/linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13python3.10.____cpython.yaml b/.ci_support/linux_64_cuda_compiler_versionNonepython3.10.____cpython.yaml
similarity index 92%
rename from .ci_support/linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13python3.10.____cpython.yaml
rename to .ci_support/linux_64_cuda_compiler_versionNonepython3.10.____cpython.yaml
index aba9594b3..255045d7b 100644
--- a/.ci_support/linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13python3.10.____cpython.yaml
+++ b/.ci_support/linux_64_cuda_compiler_versionNonepython3.10.____cpython.yaml
@@ -13,7 +13,7 @@ channel_sources:
channel_targets:
- conda-forge main
cuda_compiler:
-- None
+- cuda-nvcc
cuda_compiler_version:
- None
cudnn:
@@ -47,7 +47,7 @@ libprotobuf:
nccl:
- '2'
numpy:
-- '2.0'
+- '2'
openssl:
- '3'
perl:
@@ -69,10 +69,6 @@ tensorflow:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
- - cuda_compiler
- cuda_compiler_version
- - docker_image
-- - python
- - numpy
zlib:
- '1'
diff --git a/.ci_support/linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13python3.11.____cpython.yaml b/.ci_support/linux_64_cuda_compiler_versionNonepython3.11.____cpython.yaml
similarity index 92%
rename from .ci_support/linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13python3.11.____cpython.yaml
rename to .ci_support/linux_64_cuda_compiler_versionNonepython3.11.____cpython.yaml
index ff9250874..f9ee18af9 100644
--- a/.ci_support/linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13python3.11.____cpython.yaml
+++ b/.ci_support/linux_64_cuda_compiler_versionNonepython3.11.____cpython.yaml
@@ -13,7 +13,7 @@ channel_sources:
channel_targets:
- conda-forge main
cuda_compiler:
-- None
+- cuda-nvcc
cuda_compiler_version:
- None
cudnn:
@@ -47,7 +47,7 @@ libprotobuf:
nccl:
- '2'
numpy:
-- '2.0'
+- '2'
openssl:
- '3'
perl:
@@ -69,10 +69,6 @@ tensorflow:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
- - cuda_compiler
- cuda_compiler_version
- - docker_image
-- - python
- - numpy
zlib:
- '1'
diff --git a/.ci_support/linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13python3.12.____cpython.yaml b/.ci_support/linux_64_cuda_compiler_versionNonepython3.12.____cpython.yaml
similarity index 92%
rename from .ci_support/linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13python3.12.____cpython.yaml
rename to .ci_support/linux_64_cuda_compiler_versionNonepython3.12.____cpython.yaml
index 55d773bfa..87b2e4e25 100644
--- a/.ci_support/linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13python3.12.____cpython.yaml
+++ b/.ci_support/linux_64_cuda_compiler_versionNonepython3.12.____cpython.yaml
@@ -13,7 +13,7 @@ channel_sources:
channel_targets:
- conda-forge main
cuda_compiler:
-- None
+- cuda-nvcc
cuda_compiler_version:
- None
cudnn:
@@ -47,7 +47,7 @@ libprotobuf:
nccl:
- '2'
numpy:
-- '2.0'
+- '2'
openssl:
- '3'
perl:
@@ -69,10 +69,6 @@ tensorflow:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
- - cuda_compiler
- cuda_compiler_version
- - docker_image
-- - python
- - numpy
zlib:
- '1'
diff --git a/.ci_support/linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13python3.9.____cpython.yaml b/.ci_support/linux_64_cuda_compiler_versionNonepython3.9.____cpython.yaml
similarity index 92%
rename from .ci_support/linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13python3.9.____cpython.yaml
rename to .ci_support/linux_64_cuda_compiler_versionNonepython3.9.____cpython.yaml
index 62b9671fc..6edde8ad5 100644
--- a/.ci_support/linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13python3.9.____cpython.yaml
+++ b/.ci_support/linux_64_cuda_compiler_versionNonepython3.9.____cpython.yaml
@@ -13,7 +13,7 @@ channel_sources:
channel_targets:
- conda-forge main
cuda_compiler:
-- None
+- cuda-nvcc
cuda_compiler_version:
- None
cudnn:
@@ -47,7 +47,7 @@ libprotobuf:
nccl:
- '2'
numpy:
-- '2.0'
+- '2'
openssl:
- '3'
perl:
@@ -69,10 +69,6 @@ tensorflow:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
- - cuda_compiler
- cuda_compiler_version
- - docker_image
-- - python
- - numpy
zlib:
- '1'
diff --git a/.ci_support/linux_aarch64_c_compiler_version11cuda_compiler_version12.8cxx_compiler_version11python3.10.____cpython.yaml b/.ci_support/linux_aarch64_c_compiler_version11cuda_compiler_version12.8cxx_compiler_version11python3.10.____cpython.yaml
new file mode 100644
index 000000000..c5d54e9e0
--- /dev/null
+++ b/.ci_support/linux_aarch64_c_compiler_version11cuda_compiler_version12.8cxx_compiler_version11python3.10.____cpython.yaml
@@ -0,0 +1,74 @@
+c_compiler:
+- gcc
+c_compiler_version:
+- '11'
+c_stdlib:
+- sysroot
+c_stdlib_version:
+- '2.17'
+cdt_name:
+- conda
+channel_sources:
+- conda-forge
+channel_targets:
+- conda-forge main
+cuda_compiler:
+- cuda-nvcc
+cuda_compiler_version:
+- '12.8'
+cudnn:
+- '9'
+cxx_compiler:
+- gxx
+cxx_compiler_version:
+- '11'
+docker_image:
+- quay.io/condaforge/linux-anvil-aarch64:alma9
+flatbuffers:
+- 24.12.23
+giflib:
+- '5.2'
+github_actions_labels:
+- cirun-openstack-cpu-2xlarge
+icu:
+- '75'
+libabseil:
+- '20240722'
+libcurl:
+- '8'
+libgrpc:
+- '1.67'
+libjpeg_turbo:
+- '3'
+libpng:
+- '1.6'
+libprotobuf:
+- 5.28.3
+nccl:
+- '2'
+numpy:
+- '2'
+openssl:
+- '3'
+perl:
+- 5.32.1
+pin_run_as_build:
+ python:
+ min_pin: x.x
+ max_pin: x.x
+python:
+- 3.10.* *_cpython
+snappy:
+- '1.2'
+sqlite:
+- '3'
+target_platform:
+- linux-aarch64
+tensorflow:
+- '2.16'
+zip_keys:
+- - c_compiler_version
+ - cxx_compiler_version
+ - cuda_compiler_version
+zlib:
+- '1'
diff --git a/.ci_support/linux_aarch64_c_compiler_version11cuda_compiler_version12.8cxx_compiler_version11python3.11.____cpython.yaml b/.ci_support/linux_aarch64_c_compiler_version11cuda_compiler_version12.8cxx_compiler_version11python3.11.____cpython.yaml
new file mode 100644
index 000000000..d6a5c98f3
--- /dev/null
+++ b/.ci_support/linux_aarch64_c_compiler_version11cuda_compiler_version12.8cxx_compiler_version11python3.11.____cpython.yaml
@@ -0,0 +1,74 @@
+c_compiler:
+- gcc
+c_compiler_version:
+- '11'
+c_stdlib:
+- sysroot
+c_stdlib_version:
+- '2.17'
+cdt_name:
+- conda
+channel_sources:
+- conda-forge
+channel_targets:
+- conda-forge main
+cuda_compiler:
+- cuda-nvcc
+cuda_compiler_version:
+- '12.8'
+cudnn:
+- '9'
+cxx_compiler:
+- gxx
+cxx_compiler_version:
+- '11'
+docker_image:
+- quay.io/condaforge/linux-anvil-aarch64:alma9
+flatbuffers:
+- 24.12.23
+giflib:
+- '5.2'
+github_actions_labels:
+- cirun-openstack-cpu-2xlarge
+icu:
+- '75'
+libabseil:
+- '20240722'
+libcurl:
+- '8'
+libgrpc:
+- '1.67'
+libjpeg_turbo:
+- '3'
+libpng:
+- '1.6'
+libprotobuf:
+- 5.28.3
+nccl:
+- '2'
+numpy:
+- '2'
+openssl:
+- '3'
+perl:
+- 5.32.1
+pin_run_as_build:
+ python:
+ min_pin: x.x
+ max_pin: x.x
+python:
+- 3.11.* *_cpython
+snappy:
+- '1.2'
+sqlite:
+- '3'
+target_platform:
+- linux-aarch64
+tensorflow:
+- '2.16'
+zip_keys:
+- - c_compiler_version
+ - cxx_compiler_version
+ - cuda_compiler_version
+zlib:
+- '1'
diff --git a/.ci_support/linux_aarch64_c_compiler_version11cuda_compiler_version12.8cxx_compiler_version11python3.12.____cpython.yaml b/.ci_support/linux_aarch64_c_compiler_version11cuda_compiler_version12.8cxx_compiler_version11python3.12.____cpython.yaml
new file mode 100644
index 000000000..f962096d0
--- /dev/null
+++ b/.ci_support/linux_aarch64_c_compiler_version11cuda_compiler_version12.8cxx_compiler_version11python3.12.____cpython.yaml
@@ -0,0 +1,74 @@
+c_compiler:
+- gcc
+c_compiler_version:
+- '11'
+c_stdlib:
+- sysroot
+c_stdlib_version:
+- '2.17'
+cdt_name:
+- conda
+channel_sources:
+- conda-forge
+channel_targets:
+- conda-forge main
+cuda_compiler:
+- cuda-nvcc
+cuda_compiler_version:
+- '12.8'
+cudnn:
+- '9'
+cxx_compiler:
+- gxx
+cxx_compiler_version:
+- '11'
+docker_image:
+- quay.io/condaforge/linux-anvil-aarch64:alma9
+flatbuffers:
+- 24.12.23
+giflib:
+- '5.2'
+github_actions_labels:
+- cirun-openstack-cpu-2xlarge
+icu:
+- '75'
+libabseil:
+- '20240722'
+libcurl:
+- '8'
+libgrpc:
+- '1.67'
+libjpeg_turbo:
+- '3'
+libpng:
+- '1.6'
+libprotobuf:
+- 5.28.3
+nccl:
+- '2'
+numpy:
+- '2'
+openssl:
+- '3'
+perl:
+- 5.32.1
+pin_run_as_build:
+ python:
+ min_pin: x.x
+ max_pin: x.x
+python:
+- 3.12.* *_cpython
+snappy:
+- '1.2'
+sqlite:
+- '3'
+target_platform:
+- linux-aarch64
+tensorflow:
+- '2.16'
+zip_keys:
+- - c_compiler_version
+ - cxx_compiler_version
+ - cuda_compiler_version
+zlib:
+- '1'
diff --git a/.ci_support/linux_aarch64_c_compiler_version11cuda_compiler_version12.8cxx_compiler_version11python3.9.____cpython.yaml b/.ci_support/linux_aarch64_c_compiler_version11cuda_compiler_version12.8cxx_compiler_version11python3.9.____cpython.yaml
new file mode 100644
index 000000000..59064a818
--- /dev/null
+++ b/.ci_support/linux_aarch64_c_compiler_version11cuda_compiler_version12.8cxx_compiler_version11python3.9.____cpython.yaml
@@ -0,0 +1,74 @@
+c_compiler:
+- gcc
+c_compiler_version:
+- '11'
+c_stdlib:
+- sysroot
+c_stdlib_version:
+- '2.17'
+cdt_name:
+- conda
+channel_sources:
+- conda-forge
+channel_targets:
+- conda-forge main
+cuda_compiler:
+- cuda-nvcc
+cuda_compiler_version:
+- '12.8'
+cudnn:
+- '9'
+cxx_compiler:
+- gxx
+cxx_compiler_version:
+- '11'
+docker_image:
+- quay.io/condaforge/linux-anvil-aarch64:alma9
+flatbuffers:
+- 24.12.23
+giflib:
+- '5.2'
+github_actions_labels:
+- cirun-openstack-cpu-2xlarge
+icu:
+- '75'
+libabseil:
+- '20240722'
+libcurl:
+- '8'
+libgrpc:
+- '1.67'
+libjpeg_turbo:
+- '3'
+libpng:
+- '1.6'
+libprotobuf:
+- 5.28.3
+nccl:
+- '2'
+numpy:
+- '2'
+openssl:
+- '3'
+perl:
+- 5.32.1
+pin_run_as_build:
+ python:
+ min_pin: x.x
+ max_pin: x.x
+python:
+- 3.9.* *_cpython
+snappy:
+- '1.2'
+sqlite:
+- '3'
+target_platform:
+- linux-aarch64
+tensorflow:
+- '2.16'
+zip_keys:
+- - c_compiler_version
+ - cxx_compiler_version
+ - cuda_compiler_version
+zlib:
+- '1'
diff --git a/.ci_support/linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13python3.10.____cpython.yaml b/.ci_support/linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13python3.10.____cpython.yaml
new file mode 100644
index 000000000..8bd0d1167
--- /dev/null
+++ b/.ci_support/linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13python3.10.____cpython.yaml
@@ -0,0 +1,74 @@
+c_compiler:
+- gcc
+c_compiler_version:
+- '13'
+c_stdlib:
+- sysroot
+c_stdlib_version:
+- '2.17'
+cdt_name:
+- conda
+channel_sources:
+- conda-forge
+channel_targets:
+- conda-forge main
+cuda_compiler:
+- cuda-nvcc
+cuda_compiler_version:
+- None
+cudnn:
+- '9'
+cxx_compiler:
+- gxx
+cxx_compiler_version:
+- '13'
+docker_image:
+- quay.io/condaforge/linux-anvil-aarch64:alma9
+flatbuffers:
+- 24.12.23
+giflib:
+- '5.2'
+github_actions_labels:
+- cirun-openstack-cpu-2xlarge
+icu:
+- '75'
+libabseil:
+- '20240722'
+libcurl:
+- '8'
+libgrpc:
+- '1.67'
+libjpeg_turbo:
+- '3'
+libpng:
+- '1.6'
+libprotobuf:
+- 5.28.3
+nccl:
+- '2'
+numpy:
+- '2'
+openssl:
+- '3'
+perl:
+- 5.32.1
+pin_run_as_build:
+ python:
+ min_pin: x.x
+ max_pin: x.x
+python:
+- 3.10.* *_cpython
+snappy:
+- '1.2'
+sqlite:
+- '3'
+target_platform:
+- linux-aarch64
+tensorflow:
+- '2.16'
+zip_keys:
+- - c_compiler_version
+ - cxx_compiler_version
+ - cuda_compiler_version
+zlib:
+- '1'
diff --git a/.ci_support/linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13python3.11.____cpython.yaml b/.ci_support/linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13python3.11.____cpython.yaml
new file mode 100644
index 000000000..5d43bf2e6
--- /dev/null
+++ b/.ci_support/linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13python3.11.____cpython.yaml
@@ -0,0 +1,74 @@
+c_compiler:
+- gcc
+c_compiler_version:
+- '13'
+c_stdlib:
+- sysroot
+c_stdlib_version:
+- '2.17'
+cdt_name:
+- conda
+channel_sources:
+- conda-forge
+channel_targets:
+- conda-forge main
+cuda_compiler:
+- cuda-nvcc
+cuda_compiler_version:
+- None
+cudnn:
+- '9'
+cxx_compiler:
+- gxx
+cxx_compiler_version:
+- '13'
+docker_image:
+- quay.io/condaforge/linux-anvil-aarch64:alma9
+flatbuffers:
+- 24.12.23
+giflib:
+- '5.2'
+github_actions_labels:
+- cirun-openstack-cpu-2xlarge
+icu:
+- '75'
+libabseil:
+- '20240722'
+libcurl:
+- '8'
+libgrpc:
+- '1.67'
+libjpeg_turbo:
+- '3'
+libpng:
+- '1.6'
+libprotobuf:
+- 5.28.3
+nccl:
+- '2'
+numpy:
+- '2'
+openssl:
+- '3'
+perl:
+- 5.32.1
+pin_run_as_build:
+ python:
+ min_pin: x.x
+ max_pin: x.x
+python:
+- 3.11.* *_cpython
+snappy:
+- '1.2'
+sqlite:
+- '3'
+target_platform:
+- linux-aarch64
+tensorflow:
+- '2.16'
+zip_keys:
+- - c_compiler_version
+ - cxx_compiler_version
+ - cuda_compiler_version
+zlib:
+- '1'
diff --git a/.ci_support/linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13python3.12.____cpython.yaml b/.ci_support/linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13python3.12.____cpython.yaml
new file mode 100644
index 000000000..ab23372e5
--- /dev/null
+++ b/.ci_support/linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13python3.12.____cpython.yaml
@@ -0,0 +1,74 @@
+c_compiler:
+- gcc
+c_compiler_version:
+- '13'
+c_stdlib:
+- sysroot
+c_stdlib_version:
+- '2.17'
+cdt_name:
+- conda
+channel_sources:
+- conda-forge
+channel_targets:
+- conda-forge main
+cuda_compiler:
+- cuda-nvcc
+cuda_compiler_version:
+- None
+cudnn:
+- '9'
+cxx_compiler:
+- gxx
+cxx_compiler_version:
+- '13'
+docker_image:
+- quay.io/condaforge/linux-anvil-aarch64:alma9
+flatbuffers:
+- 24.12.23
+giflib:
+- '5.2'
+github_actions_labels:
+- cirun-openstack-cpu-2xlarge
+icu:
+- '75'
+libabseil:
+- '20240722'
+libcurl:
+- '8'
+libgrpc:
+- '1.67'
+libjpeg_turbo:
+- '3'
+libpng:
+- '1.6'
+libprotobuf:
+- 5.28.3
+nccl:
+- '2'
+numpy:
+- '2'
+openssl:
+- '3'
+perl:
+- 5.32.1
+pin_run_as_build:
+ python:
+ min_pin: x.x
+ max_pin: x.x
+python:
+- 3.12.* *_cpython
+snappy:
+- '1.2'
+sqlite:
+- '3'
+target_platform:
+- linux-aarch64
+tensorflow:
+- '2.16'
+zip_keys:
+- - c_compiler_version
+ - cxx_compiler_version
+ - cuda_compiler_version
+zlib:
+- '1'
diff --git a/.ci_support/linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13python3.9.____cpython.yaml b/.ci_support/linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13python3.9.____cpython.yaml
new file mode 100644
index 000000000..53e7266a0
--- /dev/null
+++ b/.ci_support/linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13python3.9.____cpython.yaml
@@ -0,0 +1,74 @@
+c_compiler:
+- gcc
+c_compiler_version:
+- '13'
+c_stdlib:
+- sysroot
+c_stdlib_version:
+- '2.17'
+cdt_name:
+- conda
+channel_sources:
+- conda-forge
+channel_targets:
+- conda-forge main
+cuda_compiler:
+- cuda-nvcc
+cuda_compiler_version:
+- None
+cudnn:
+- '9'
+cxx_compiler:
+- gxx
+cxx_compiler_version:
+- '13'
+docker_image:
+- quay.io/condaforge/linux-anvil-aarch64:alma9
+flatbuffers:
+- 24.12.23
+giflib:
+- '5.2'
+github_actions_labels:
+- cirun-openstack-cpu-2xlarge
+icu:
+- '75'
+libabseil:
+- '20240722'
+libcurl:
+- '8'
+libgrpc:
+- '1.67'
+libjpeg_turbo:
+- '3'
+libpng:
+- '1.6'
+libprotobuf:
+- 5.28.3
+nccl:
+- '2'
+numpy:
+- '2'
+openssl:
+- '3'
+perl:
+- 5.32.1
+pin_run_as_build:
+ python:
+ min_pin: x.x
+ max_pin: x.x
+python:
+- 3.9.* *_cpython
+snappy:
+- '1.2'
+sqlite:
+- '3'
+target_platform:
+- linux-aarch64
+tensorflow:
+- '2.16'
+zip_keys:
+- - c_compiler_version
+ - cxx_compiler_version
+ - cuda_compiler_version
+zlib:
+- '1'
diff --git a/.ci_support/migrations/cuda128.yaml b/.ci_support/migrations/cuda128.yaml
new file mode 100644
index 000000000..a46fec6c0
--- /dev/null
+++ b/.ci_support/migrations/cuda128.yaml
@@ -0,0 +1,65 @@
+migrator_ts: 1738229377
+__migrator:
+ kind:
+ version
+ use_local: true
+ 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:
+ cuda_compiler:
+ - None
+ - nvcc
+ - cuda-nvcc
+ cuda_compiler_version:
+ - None
+ - 11.8
+ - 12.4
+ - 12.6
+ - 12.8
+ commit_message: |
+ Upgrade to CUDA 12.8
+
+ With CUDA 12.8, the following new architectures are added `sm_100`, `sm_101` and `sm_120`.
+ To build for these architectures, maintainers will need to add these to list of architectures
+ that their package builds for.
+
+ ref: https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#new-features
+
+cuda_compiler: # [((linux and (x86_64 or aarch64)) or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+ - cuda-nvcc # [((linux and (x86_64 or aarch64)) or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+
+cuda_compiler_version: # [((linux and (x86_64 or aarch64)) or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+ - 12.8 # [((linux and (x86_64 or aarch64)) or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+
+c_compiler_version: # [((linux and (x86_64 or aarch64)) or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+ - 13 # [((linux and x86_64) or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+ - 11 # [linux and aarch64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+
+cxx_compiler_version: # [((linux and (x86_64 or aarch64)) or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+ - 13 # [((linux and x86_64) or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+ - 11 # [linux and aarch64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+
+fortran_compiler_version: # [((linux and (x86_64 or aarch64)) or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+ - 13 # [((linux and x86_64) or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+ - 11 # [linux and aarch64 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"]
+ # CUDA 12 builds on CentOS 7
+ - quay.io/condaforge/linux-anvil-x86_64:cos7 # [os.environ.get("CF_CUDA_ENABLED", "False") == "True" and os.environ.get("BUILD_PLATFORM") == "linux-64" and os.environ.get("DEFAULT_LINUX_VERSION", "alma9") == "cos7"]
+ - quay.io/condaforge/linux-anvil-aarch64:cos7 # [os.environ.get("CF_CUDA_ENABLED", "False") == "True" and os.environ.get("BUILD_PLATFORM") == "linux-aarch64" and os.environ.get("DEFAULT_LINUX_VERSION", "alma9") == "cos7"]
+
+ # CUDA 12 builds on AlmaLinux 8
+ - quay.io/condaforge/linux-anvil-x86_64:alma8 # [os.environ.get("CF_CUDA_ENABLED", "False") == "True" and os.environ.get("BUILD_PLATFORM") == "linux-64" and os.environ.get("DEFAULT_LINUX_VERSION", "alma9") in ("alma8", "ubi8")]
+ - quay.io/condaforge/linux-anvil-aarch64:alma8 # [os.environ.get("CF_CUDA_ENABLED", "False") == "True" and os.environ.get("BUILD_PLATFORM") == "linux-aarch64" and os.environ.get("DEFAULT_LINUX_VERSION", "alma9") in ("alma8", "ubi8")]
+
+ # CUDA 12 builds on AlmaLinux 9
+ - quay.io/condaforge/linux-anvil-x86_64:alma9 # [os.environ.get("CF_CUDA_ENABLED", "False") == "True" and os.environ.get("BUILD_PLATFORM") == "linux-64" and os.environ.get("DEFAULT_LINUX_VERSION", "alma9") == "alma9"]
+ - quay.io/condaforge/linux-anvil-aarch64:alma9 # [os.environ.get("CF_CUDA_ENABLED", "False") == "True" and os.environ.get("BUILD_PLATFORM") == "linux-aarch64" and os.environ.get("DEFAULT_LINUX_VERSION", "alma9") == "alma9"]
diff --git a/.ci_support/migrations/flatbuffers241223.yaml b/.ci_support/migrations/flatbuffers241223.yaml
deleted file mode 100644
index 90d5d5cf6..000000000
--- a/.ci_support/migrations/flatbuffers241223.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-__migrator:
- build_number: 1
- commit_message: Rebuild for flatbuffers 24.12.23
- kind: version
- migration_number: 1
-flatbuffers:
-- 24.12.23
-migrator_ts: 1736590646.156009
diff --git a/.ci_support/migrations/numpy2.yaml b/.ci_support/migrations/numpy2.yaml
deleted file mode 100644
index fd981b850..000000000
--- a/.ci_support/migrations/numpy2.yaml
+++ /dev/null
@@ -1,52 +0,0 @@
-__migrator:
- build_number: 1
- kind: version
- commit_message: |
- Rebuild for numpy 2.0
-
- TL;DR: The way we build against numpy has changed as of numpy 2.0. This bot
- PR has updated the recipe to account for the changes (see below for details).
-
- The biggest change is that we no longer need to use the oldest available numpy
- version at build time in order to support old numpy version at runtime - numpy
- will by default use a compatible ABI for the oldest still-supported numpy versions.
-
- Additionally, we no longer need to use `{{ pin_compatible("numpy") }}` as a
- run requirement - this has been handled for more than two years now by a
- run-export on the numpy package itself. The migrator will therefore remove
- any occurrences of this.
-
- However, you will still need to add the lower bound for the numpy version,
- in line with what the upstream package requires. The default lower bound from
- the run-export is `>=1.19`; if your package needs a newer version than that,
- please add `numpy >=x.y` under `run:`.
-
- Finally, by default, building against numpy 2.0 will assume that the package
- is compatible with numpy 2.0, which is not necessarily the case. You should
- check that the upstream package explicitly supports numpy 2.0, otherwise you
- need to add a `- numpy <2.0dev0` run requirement until that happens (check numpy
- issue 26191 for an overview of the most important packages).
-
- ### To-Dos:
- * [ ] Match run-requirements for numpy (i.e. check upstream `pyproject.toml` or however the project specifies numpy compatibility)
- * If upstream is not yet compatible with numpy 2.0, add `numpy <2.0dev0` upper bound under `run:`.
- * If upstream is already compatible with numpy 2.0, double-check their supported numpy versions.
- * If upstream requires a minimum numpy version newer than 1.19, you need to add `numpy >=x.y` under `run:`.
- * [ ] Remove any remaining occurrences of `{{ pin_compatible("numpy") }}` that the bot may have missed.
-
- PS. If the build does not compile anymore, this is almost certainly a sign that
- the upstream project is not yet ready for numpy 2.0; do not close this PR until
- a version compatible with numpy 2.0 has been released upstream and on this
- feedstock (in the meantime, you can keep the bot from reopening this PR in
- case of git conflicts by marking it as a draft).
-
- migration_number: 1
-
-# needs to match length of zip {python, python_impl, numpy}
-# as it is in global CBC in order to override it
-numpy:
- - 2.0
- - 2.0
- - 2.0
- - 2.0
-migrator_ts: 1713572489.295986
diff --git a/.ci_support/osx_64_python3.10.____cpython.yaml b/.ci_support/osx_64_python3.10.____cpython.yaml
index 719bdd1d2..30dd901f2 100644
--- a/.ci_support/osx_64_python3.10.____cpython.yaml
+++ b/.ci_support/osx_64_python3.10.____cpython.yaml
@@ -15,7 +15,7 @@ channel_sources:
channel_targets:
- conda-forge main
cuda_compiler:
-- None
+- cuda-nvcc
cuda_compiler_version:
- None
cxx_compiler:
@@ -43,7 +43,7 @@ libprotobuf:
macos_machine:
- x86_64-apple-darwin13.4.0
numpy:
-- '2.0'
+- '2'
openssl:
- '3'
pin_run_as_build:
@@ -63,7 +63,5 @@ tensorflow:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
-- - python
- - numpy
zlib:
- '1'
diff --git a/.ci_support/osx_64_python3.11.____cpython.yaml b/.ci_support/osx_64_python3.11.____cpython.yaml
index c9ccfe0d5..2fe552bca 100644
--- a/.ci_support/osx_64_python3.11.____cpython.yaml
+++ b/.ci_support/osx_64_python3.11.____cpython.yaml
@@ -15,7 +15,7 @@ channel_sources:
channel_targets:
- conda-forge main
cuda_compiler:
-- None
+- cuda-nvcc
cuda_compiler_version:
- None
cxx_compiler:
@@ -43,7 +43,7 @@ libprotobuf:
macos_machine:
- x86_64-apple-darwin13.4.0
numpy:
-- '2.0'
+- '2'
openssl:
- '3'
pin_run_as_build:
@@ -63,7 +63,5 @@ tensorflow:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
-- - python
- - numpy
zlib:
- '1'
diff --git a/.ci_support/osx_64_python3.12.____cpython.yaml b/.ci_support/osx_64_python3.12.____cpython.yaml
index 65049e696..e443567df 100644
--- a/.ci_support/osx_64_python3.12.____cpython.yaml
+++ b/.ci_support/osx_64_python3.12.____cpython.yaml
@@ -15,7 +15,7 @@ channel_sources:
channel_targets:
- conda-forge main
cuda_compiler:
-- None
+- cuda-nvcc
cuda_compiler_version:
- None
cxx_compiler:
@@ -43,7 +43,7 @@ libprotobuf:
macos_machine:
- x86_64-apple-darwin13.4.0
numpy:
-- '2.0'
+- '2'
openssl:
- '3'
pin_run_as_build:
@@ -63,7 +63,5 @@ tensorflow:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
-- - python
- - numpy
zlib:
- '1'
diff --git a/.ci_support/osx_64_python3.9.____cpython.yaml b/.ci_support/osx_64_python3.9.____cpython.yaml
index ecb387103..59e20c5bf 100644
--- a/.ci_support/osx_64_python3.9.____cpython.yaml
+++ b/.ci_support/osx_64_python3.9.____cpython.yaml
@@ -15,7 +15,7 @@ channel_sources:
channel_targets:
- conda-forge main
cuda_compiler:
-- None
+- cuda-nvcc
cuda_compiler_version:
- None
cxx_compiler:
@@ -43,7 +43,7 @@ libprotobuf:
macos_machine:
- x86_64-apple-darwin13.4.0
numpy:
-- '2.0'
+- '2'
openssl:
- '3'
pin_run_as_build:
@@ -63,7 +63,5 @@ tensorflow:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
-- - python
- - numpy
zlib:
- '1'
diff --git a/.ci_support/osx_arm64_python3.10.____cpython.yaml b/.ci_support/osx_arm64_python3.10.____cpython.yaml
deleted file mode 100644
index c5998c68e..000000000
--- a/.ci_support/osx_arm64_python3.10.____cpython.yaml
+++ /dev/null
@@ -1,69 +0,0 @@
-MACOSX_DEPLOYMENT_TARGET:
-- '11.0'
-MACOSX_SDK_VERSION:
-- '11.0'
-c_compiler:
-- clang
-c_compiler_version:
-- '18'
-c_stdlib:
-- macosx_deployment_target
-c_stdlib_version:
-- '11.0'
-channel_sources:
-- conda-forge
-channel_targets:
-- conda-forge main
-cuda_compiler:
-- None
-cuda_compiler_version:
-- None
-cxx_compiler:
-- clangxx
-cxx_compiler_version:
-- '18'
-flatbuffers:
-- 24.12.23
-giflib:
-- '5.2'
-icu:
-- '75'
-libabseil:
-- '20240722'
-libcurl:
-- '8'
-libgrpc:
-- '1.67'
-libjpeg_turbo:
-- '3'
-libpng:
-- '1.6'
-libprotobuf:
-- 5.28.3
-macos_machine:
-- arm64-apple-darwin20.0.0
-numpy:
-- '2.0'
-openssl:
-- '3'
-pin_run_as_build:
- python:
- min_pin: x.x
- max_pin: x.x
-python:
-- 3.10.* *_cpython
-snappy:
-- '1.2'
-sqlite:
-- '3'
-target_platform:
-- osx-arm64
-tensorflow:
-- '2.16'
-zip_keys:
-- - c_compiler_version
- - cxx_compiler_version
-- - python
- - numpy
-zlib:
-- '1'
diff --git a/.ci_support/osx_arm64_python3.11.____cpython.yaml b/.ci_support/osx_arm64_python3.11.____cpython.yaml
deleted file mode 100644
index a9a99aee3..000000000
--- a/.ci_support/osx_arm64_python3.11.____cpython.yaml
+++ /dev/null
@@ -1,69 +0,0 @@
-MACOSX_DEPLOYMENT_TARGET:
-- '11.0'
-MACOSX_SDK_VERSION:
-- '11.0'
-c_compiler:
-- clang
-c_compiler_version:
-- '18'
-c_stdlib:
-- macosx_deployment_target
-c_stdlib_version:
-- '11.0'
-channel_sources:
-- conda-forge
-channel_targets:
-- conda-forge main
-cuda_compiler:
-- None
-cuda_compiler_version:
-- None
-cxx_compiler:
-- clangxx
-cxx_compiler_version:
-- '18'
-flatbuffers:
-- 24.12.23
-giflib:
-- '5.2'
-icu:
-- '75'
-libabseil:
-- '20240722'
-libcurl:
-- '8'
-libgrpc:
-- '1.67'
-libjpeg_turbo:
-- '3'
-libpng:
-- '1.6'
-libprotobuf:
-- 5.28.3
-macos_machine:
-- arm64-apple-darwin20.0.0
-numpy:
-- '2.0'
-openssl:
-- '3'
-pin_run_as_build:
- python:
- min_pin: x.x
- max_pin: x.x
-python:
-- 3.11.* *_cpython
-snappy:
-- '1.2'
-sqlite:
-- '3'
-target_platform:
-- osx-arm64
-tensorflow:
-- '2.16'
-zip_keys:
-- - c_compiler_version
- - cxx_compiler_version
-- - python
- - numpy
-zlib:
-- '1'
diff --git a/.ci_support/osx_arm64_python3.12.____cpython.yaml b/.ci_support/osx_arm64_python3.12.____cpython.yaml
deleted file mode 100644
index 9d3932304..000000000
--- a/.ci_support/osx_arm64_python3.12.____cpython.yaml
+++ /dev/null
@@ -1,69 +0,0 @@
-MACOSX_DEPLOYMENT_TARGET:
-- '11.0'
-MACOSX_SDK_VERSION:
-- '11.0'
-c_compiler:
-- clang
-c_compiler_version:
-- '18'
-c_stdlib:
-- macosx_deployment_target
-c_stdlib_version:
-- '11.0'
-channel_sources:
-- conda-forge
-channel_targets:
-- conda-forge main
-cuda_compiler:
-- None
-cuda_compiler_version:
-- None
-cxx_compiler:
-- clangxx
-cxx_compiler_version:
-- '18'
-flatbuffers:
-- 24.12.23
-giflib:
-- '5.2'
-icu:
-- '75'
-libabseil:
-- '20240722'
-libcurl:
-- '8'
-libgrpc:
-- '1.67'
-libjpeg_turbo:
-- '3'
-libpng:
-- '1.6'
-libprotobuf:
-- 5.28.3
-macos_machine:
-- arm64-apple-darwin20.0.0
-numpy:
-- '2.0'
-openssl:
-- '3'
-pin_run_as_build:
- python:
- min_pin: x.x
- max_pin: x.x
-python:
-- 3.12.* *_cpython
-snappy:
-- '1.2'
-sqlite:
-- '3'
-target_platform:
-- osx-arm64
-tensorflow:
-- '2.16'
-zip_keys:
-- - c_compiler_version
- - cxx_compiler_version
-- - python
- - numpy
-zlib:
-- '1'
diff --git a/.ci_support/osx_arm64_python3.9.____cpython.yaml b/.ci_support/osx_arm64_python3.9.____cpython.yaml
deleted file mode 100644
index 0a853b95a..000000000
--- a/.ci_support/osx_arm64_python3.9.____cpython.yaml
+++ /dev/null
@@ -1,69 +0,0 @@
-MACOSX_DEPLOYMENT_TARGET:
-- '11.0'
-MACOSX_SDK_VERSION:
-- '11.0'
-c_compiler:
-- clang
-c_compiler_version:
-- '18'
-c_stdlib:
-- macosx_deployment_target
-c_stdlib_version:
-- '11.0'
-channel_sources:
-- conda-forge
-channel_targets:
-- conda-forge main
-cuda_compiler:
-- None
-cuda_compiler_version:
-- None
-cxx_compiler:
-- clangxx
-cxx_compiler_version:
-- '18'
-flatbuffers:
-- 24.12.23
-giflib:
-- '5.2'
-icu:
-- '75'
-libabseil:
-- '20240722'
-libcurl:
-- '8'
-libgrpc:
-- '1.67'
-libjpeg_turbo:
-- '3'
-libpng:
-- '1.6'
-libprotobuf:
-- 5.28.3
-macos_machine:
-- arm64-apple-darwin20.0.0
-numpy:
-- '2.0'
-openssl:
-- '3'
-pin_run_as_build:
- python:
- min_pin: x.x
- max_pin: x.x
-python:
-- 3.9.* *_cpython
-snappy:
-- '1.2'
-sqlite:
-- '3'
-target_platform:
-- osx-arm64
-tensorflow:
-- '2.16'
-zip_keys:
-- - c_compiler_version
- - cxx_compiler_version
-- - python
- - numpy
-zlib:
-- '1'
diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml
index 3fe57caf7..b13bcb6ba 100644
--- a/.github/workflows/conda-build.yml
+++ b/.github/workflows/conda-build.yml
@@ -21,45 +21,45 @@ jobs:
fail-fast: false
matrix:
include:
- - CONFIG: linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13python3.10.____cpython
+ - CONFIG: linux_64_cuda_compiler_version12.6python3.10.____cpython
UPLOAD_PACKAGES: True
os: ubuntu
- runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_c_compiler_version13cuda_c_h1a635e5433', 'linux', 'x64', 'self-hosted']
+ runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_cuda_compiler_version12.6python_hcc941c96', 'linux', 'x64', 'self-hosted']
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- - CONFIG: linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13python3.11.____cpython
+ - CONFIG: linux_64_cuda_compiler_version12.6python3.11.____cpython
UPLOAD_PACKAGES: True
os: ubuntu
- runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_c_compiler_version13cuda_c_h70857f1454', 'linux', 'x64', 'self-hosted']
+ runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_cuda_compiler_version12.6python_hdc5b00bd', 'linux', 'x64', 'self-hosted']
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- - CONFIG: linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13python3.12.____cpython
+ - CONFIG: linux_64_cuda_compiler_version12.6python3.12.____cpython
UPLOAD_PACKAGES: True
os: ubuntu
- runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_c_compiler_version13cuda_c_h2dff17f9f4', 'linux', 'x64', 'self-hosted']
+ runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_cuda_compiler_version12.6python_h82ccd7e7', 'linux', 'x64', 'self-hosted']
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- - CONFIG: linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13python3.9.____cpython
+ - CONFIG: linux_64_cuda_compiler_version12.6python3.9.____cpython
UPLOAD_PACKAGES: True
os: ubuntu
- runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_c_compiler_version13cuda_c_hbe4b9baad6', 'linux', 'x64', 'self-hosted']
+ runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_cuda_compiler_version12.6python_h0449a975', 'linux', 'x64', 'self-hosted']
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- - CONFIG: linux_64_c_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13python3.10.____cpython
+ - CONFIG: linux_64_cuda_compiler_versionNonepython3.10.____cpython
UPLOAD_PACKAGES: True
os: ubuntu
- runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_c_compiler_version13cuda_c_ha604d791d6', 'linux', 'x64', 'self-hosted']
+ runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_cuda_compiler_versionNonepython_hb6a3b480', 'linux', 'x64', 'self-hosted']
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- - CONFIG: linux_64_c_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13python3.11.____cpython
+ - CONFIG: linux_64_cuda_compiler_versionNonepython3.11.____cpython
UPLOAD_PACKAGES: True
os: ubuntu
- runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_c_compiler_version13cuda_c_h4845835b7d', 'linux', 'x64', 'self-hosted']
+ runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_cuda_compiler_versionNonepython_h3c1a96fc', 'linux', 'x64', 'self-hosted']
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- - CONFIG: linux_64_c_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13python3.12.____cpython
+ - CONFIG: linux_64_cuda_compiler_versionNonepython3.12.____cpython
UPLOAD_PACKAGES: True
os: ubuntu
- runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_c_compiler_version13cuda_c_h2546c6389c', 'linux', 'x64', 'self-hosted']
+ runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_cuda_compiler_versionNonepython_h7883cd14', 'linux', 'x64', 'self-hosted']
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- - CONFIG: linux_64_c_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13python3.9.____cpython
+ - CONFIG: linux_64_cuda_compiler_versionNonepython3.9.____cpython
UPLOAD_PACKAGES: True
os: ubuntu
- runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_c_compiler_version13cuda_c_hd64767d203', 'linux', 'x64', 'self-hosted']
+ runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_cuda_compiler_versionNonepython_hcf2538a7', 'linux', 'x64', 'self-hosted']
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
steps:
@@ -79,8 +79,10 @@ jobs:
STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }}
shell: bash
run: |
- echo "::group::Configure binfmt_misc"
- docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes
+ if [[ "$(uname -m)" == "x86_64" ]]; then
+ echo "::group::Configure binfmt_misc"
+ docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes
+ fi
export flow_run_id="github_$GITHUB_RUN_ID"
export remote_url="https://github.com/$GITHUB_REPOSITORY"
export sha="$GITHUB_SHA"
diff --git a/.gitignore b/.gitignore
index bb3853666..47b5408a8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,3 +25,5 @@
# Rattler-build's artifacts are in `output` when not specifying anything.
/output
+# Pixi's configuration
+.pixi
diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh
index 00f377a80..6ee04aa12 100755
--- a/.scripts/run_docker_build.sh
+++ b/.scripts/run_docker_build.sh
@@ -12,7 +12,7 @@ source .scripts/logging_utils.sh
set -xeo pipefail
THISDIR="$( cd "$( dirname "$0" )" >/dev/null && pwd )"
-PROVIDER_DIR="$(basename $THISDIR)"
+PROVIDER_DIR="$(basename "$THISDIR")"
FEEDSTOCK_ROOT="$( cd "$( dirname "$0" )/.." >/dev/null && pwd )"
RECIPE_ROOT="${FEEDSTOCK_ROOT}/recipe"
diff --git a/README.md b/README.md
index f5685be07..c41b72432 100644
--- a/README.md
+++ b/README.md
@@ -37,115 +37,143 @@ Current build status
| Variant | Status |
- | linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13python3.10.____cpython |
+ linux_64_cuda_compiler_version12.6python3.10.____cpython |
-
+
|
- | linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13python3.11.____cpython |
+ linux_64_cuda_compiler_version12.6python3.11.____cpython |
-
+
|
- | linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13python3.12.____cpython |
+ linux_64_cuda_compiler_version12.6python3.12.____cpython |
-
+
|
- | linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13python3.9.____cpython |
+ linux_64_cuda_compiler_version12.6python3.9.____cpython |
-
+
|
- | linux_64_c_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13python3.10.____cpython |
+ linux_64_cuda_compiler_versionNonepython3.10.____cpython |
-
+
|
- | linux_64_c_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13python3.11.____cpython |
+ linux_64_cuda_compiler_versionNonepython3.11.____cpython |
-
+
|
- | linux_64_c_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13python3.12.____cpython |
+ linux_64_cuda_compiler_versionNonepython3.12.____cpython |
-
+
|
- | linux_64_c_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13python3.9.____cpython |
+ linux_64_cuda_compiler_versionNonepython3.9.____cpython |
-
+
|
- | osx_64_python3.10.____cpython |
+ linux_aarch64_c_compiler_version11cuda_compiler_version12.8cxx_compiler_version11python3.10.____cpython |
-
+
|
- | osx_64_python3.11.____cpython |
+ linux_aarch64_c_compiler_version11cuda_compiler_version12.8cxx_compiler_version11python3.11.____cpython |
-
+
|
- | osx_64_python3.12.____cpython |
+ linux_aarch64_c_compiler_version11cuda_compiler_version12.8cxx_compiler_version11python3.12.____cpython |
-
+
|
- | osx_64_python3.9.____cpython |
+ linux_aarch64_c_compiler_version11cuda_compiler_version12.8cxx_compiler_version11python3.9.____cpython |
-
+
+
+ |
+
+ | linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13python3.10.____cpython |
+
+
+
+
+ |
+
+ | linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13python3.11.____cpython |
+
+
+
|
- | osx_arm64_python3.10.____cpython |
+ linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13python3.12.____cpython |
-
+
|
- | osx_arm64_python3.11.____cpython |
+ linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13python3.9.____cpython |
-
+
|
- | osx_arm64_python3.12.____cpython |
+ osx_64_python3.10.____cpython |
+
+
+
+
+ |
+
+ | osx_64_python3.11.____cpython |
+
+
+
+
+ |
+
+ | osx_64_python3.12.____cpython |
-
+
|
- | osx_arm64_python3.9.____cpython |
+ osx_64_python3.9.____cpython |
-
+
|
@@ -162,7 +190,7 @@ Current release info
| Name | Downloads | Version | Platforms |
| --- | --- | --- | --- |
| [](https://anaconda.org/conda-forge/libtensorflow) | [](https://anaconda.org/conda-forge/libtensorflow) | [](https://anaconda.org/conda-forge/libtensorflow) | [](https://anaconda.org/conda-forge/libtensorflow) |
-| [](https://anaconda.org/conda-forge/libtensorflow_cc) | [](https://anaconda.org/conda-forge/libtensorflow_cc) | [](https://anaconda.org/conda-forge/libtensorflow_cc) | [](https://anaconda.org/conda-forge/libtensorflow_cc) |
+| [](https://anaconda.org/conda-forge/libtensorflow_cc) | [](https://anaconda.org/conda-forge/libtensorflow_cc) | [](https://anaconda.org/conda-forge/libtensorflow_cc) | [](https://anaconda.org/conda-forge/libtensorflow_cc) |
| [](https://anaconda.org/conda-forge/tensorflow) | [](https://anaconda.org/conda-forge/tensorflow) | [](https://anaconda.org/conda-forge/tensorflow) | [](https://anaconda.org/conda-forge/tensorflow) |
| [](https://anaconda.org/conda-forge/tensorflow-base) | [](https://anaconda.org/conda-forge/tensorflow-base) | [](https://anaconda.org/conda-forge/tensorflow-base) | [](https://anaconda.org/conda-forge/tensorflow-base) |
| [](https://anaconda.org/conda-forge/tensorflow-cpu) | [](https://anaconda.org/conda-forge/tensorflow-cpu) | [](https://anaconda.org/conda-forge/tensorflow-cpu) | [](https://anaconda.org/conda-forge/tensorflow-cpu) |
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index a13f0ae28..013bdc11a 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -28,4 +28,5 @@ stages:
condition: and(succeeded(), eq(dependencies.Check.outputs['Skip.result.start_main'], 'true'))
dependsOn: Check
jobs:
+ - template: ./.azure-pipelines/azure-pipelines-linux.yml
- template: ./.azure-pipelines/azure-pipelines-osx.yml
\ No newline at end of file
diff --git a/build-locally.py b/build-locally.py
index c4a56c667..9dfe44039 100755
--- a/build-locally.py
+++ b/build-locally.py
@@ -10,6 +10,7 @@
import os
import platform
import subprocess
+import sys
from argparse import ArgumentParser
@@ -44,10 +45,19 @@ def run_osx_build(ns):
subprocess.check_call([script])
+def run_win_build(ns):
+ script = ".scripts/run_win_build.bat"
+ subprocess.check_call(["cmd", "/D", "/Q", "/C", f"CALL {script}"])
+
+
def verify_config(ns):
+ choices_filter = ns.filter or "*"
valid_configs = {
- os.path.basename(f)[:-5] for f in glob.glob(".ci_support/*.yaml")
+ os.path.basename(f)[:-5]
+ for f in glob.glob(f".ci_support/{choices_filter}.yaml")
}
+ if choices_filter != "*":
+ print(f"filtering for '{choices_filter}.yaml' configs")
print(f"valid configs are {valid_configs}")
if ns.config in valid_configs:
print("Using " + ns.config + " configuration")
@@ -60,38 +70,43 @@ def verify_config(ns):
selections = list(enumerate(sorted(valid_configs), 1))
for i, c in selections:
print(f"{i}. {c}")
- s = input("\n> ")
+ try:
+ s = input("\n> ")
+ except KeyboardInterrupt:
+ print("\nno option selected, bye!", file=sys.stderr)
+ sys.exit(1)
idx = int(s) - 1
ns.config = selections[idx][1]
print(f"selected {ns.config}")
else:
raise ValueError("config " + ns.config + " is not valid")
- # Remove the following, as implemented
- if ns.config.startswith("win"):
- raise ValueError(
- f"only Linux/macOS configs currently supported, got {ns.config}"
+ if (
+ ns.config.startswith("osx")
+ and platform.system() == "Darwin"
+ and not os.environ.get("OSX_SDK_DIR")
+ ):
+ raise RuntimeError(
+ "Need OSX_SDK_DIR env variable set. Run 'export OSX_SDK_DIR=$PWD/SDKs' "
+ "to download the SDK automatically to '$PWD/SDKs/MacOSX.sdk'. "
+ "Note: OSX_SDK_DIR must be set to an absolute path. "
+ "Setting this variable implies agreement to the licensing terms of the SDK by Apple."
)
- elif ns.config.startswith("osx"):
- if "OSX_SDK_DIR" not in os.environ:
- raise RuntimeError(
- "Need OSX_SDK_DIR env variable set. Run 'export OSX_SDK_DIR=$PWD/SDKs' "
- "to download the SDK automatically to '$PWD/SDKs/MacOSX.sdk'. "
- "Note: OSX_SDK_DIR must be set to an absolute path. "
- "Setting this variable implies agreement to the licensing terms of the SDK by Apple."
- )
def main(args=None):
p = ArgumentParser("build-locally")
p.add_argument("config", default=None, nargs="?")
+ p.add_argument(
+ "--filter",
+ default=None,
+ help="Glob string to filter which build choices are presented in interactive mode.",
+ )
p.add_argument(
"--debug",
action="store_true",
help="Setup debug environment using `conda debug`",
)
- p.add_argument(
- "--output-id", help="If running debug, specify the output to setup."
- )
+ p.add_argument("--output-id", help="If running debug, specify the output to setup.")
ns = p.parse_args(args=args)
verify_config(ns)
@@ -104,10 +119,10 @@ def main(args=None):
run_docker_build(ns)
elif ns.config.startswith("osx"):
run_osx_build(ns)
+ elif ns.config.startswith("win"):
+ run_win_build(ns)
finally:
- recipe_license_file = os.path.join(
- "recipe", "recipe-scripts-license.txt"
- )
+ recipe_license_file = os.path.join("recipe", "recipe-scripts-license.txt")
if os.path.exists(recipe_license_file):
os.remove(recipe_license_file)
diff --git a/conda-forge.yml b/conda-forge.yml
index 1518f6828..4793b83fd 100644
--- a/conda-forge.yml
+++ b/conda-forge.yml
@@ -1,10 +1,3 @@
-azure:
- settings_linux:
- timeoutInMinutes: 1
- settings_osx:
- timeoutInMinutes: 1
-build_platform:
- osx_arm64: osx_64
conda_build:
pkg_format: '2'
conda_build_tool: conda-build+conda-libmamba-solver
@@ -20,4 +13,5 @@ github_actions:
- pull_request
provider:
linux_64: github_actions
+ linux_aarch64: default
test: native_and_emulated
diff --git a/recipe/build.sh b/recipe/build.sh
index 3f1ef4369..b1cab566d 100644
--- a/recipe/build.sh
+++ b/recipe/build.sh
@@ -2,6 +2,13 @@
set -ex
+if [[ "${target_platform}" == "linux-aarch64" && "${CI}" == "azure" ]];
+then
+ echo "ERROR: don't use Azure (2025/05/07) as it will be emulated and waste CI time"
+ echo "When native aarch64 Azure builders are available, this check can be removed"
+ exit 1
+fi
+
if [[ "$CI" == "github_actions" ]]; then
export CPU_COUNT=4
fi
@@ -89,6 +96,13 @@ else
fi
if [[ ${cuda_compiler_version} != "None" ]]; then
+ if [ ${target_platform} == "linux-aarch64" ]; then
+ NVARCH=sbsa
+ elif [ ${target_platform} == "linux-64" ]; then
+ NVARCH=x86_64
+ else
+ NVARCH=${ARCH}
+ fi
export LDFLAGS="${LDFLAGS} -lcusparse"
export GCC_HOST_COMPILER_PATH="${GCC}"
export GCC_HOST_COMPILER_PREFIX="$(dirname ${GCC})"
@@ -101,7 +115,10 @@ if [[ ${cuda_compiler_version} != "None" ]]; then
export TF_NCCL_VERSION=$(pkg-config nccl --modversion | grep -Po '\d+\.\d+')
export LDFLAGS="${LDFLAGS//-Wl,-z,now/-Wl,-z,lazy}"
- export CC_OPT_FLAGS="-march=nocona -mtune=haswell"
+
+ if [ ${target_platform} == "linux-64" ]; then
+ export CC_OPT_FLAGS="-march=nocona -mtune=haswell"
+ fi
if [[ ${cuda_compiler_version} == 11.8 ]]; then
export HERMETIC_CUDA_COMPUTE_CAPABILITIES=sm_35,sm_50,sm_60,sm_62,sm_70,sm_72,sm_75,sm_80,sm_86,sm_87,sm_89,sm_90,compute_90
@@ -110,28 +127,29 @@ if [[ ${cuda_compiler_version} != "None" ]]; then
export HERMETIC_CUDA_COMPUTE_CAPABILITIES=sm_60,sm_70,sm_75,sm_80,sm_86,sm_89,sm_90,compute_90
export CUDNN_INSTALL_PATH=$PREFIX
export NCCL_INSTALL_PATH=$PREFIX
- export CUDA_HOME="${BUILD_PREFIX}/targets/x86_64-linux"
- export TF_CUDA_PATHS="${BUILD_PREFIX}/targets/x86_64-linux,${PREFIX}/targets/x86_64-linux"
+ export CUDA_HOME="${BUILD_PREFIX}/targets/${NVARCH}-linux"
+ export TF_CUDA_PATHS="${BUILD_PREFIX}/targets/${NVARCH}-linux,${PREFIX}/targets/${ARCH}-linux"
# XLA can only cope with a single cuda header include directory, merge both
- rsync -a ${PREFIX}/targets/x86_64-linux/include/ ${BUILD_PREFIX}/targets/x86_64-linux/include/
+ rsync -a ${PREFIX}/targets/${NVARCH}-linux/include/ ${BUILD_PREFIX}/targets/${NVARCH}-linux/include/
# Although XLA supports a non-hermetic build, it still tries to find headers in the hermetic locations.
# We do this in the BUILD_PREFIX to not have any impact on the resulting jaxlib package.
# Otherwise, these copied files would be included in the package.
- rm -rf ${BUILD_PREFIX}/targets/x86_64-linux/include/third_party
- mkdir -p ${BUILD_PREFIX}/targets/x86_64-linux/include/third_party/gpus/cuda/extras/CUPTI
- cp -r ${PREFIX}/targets/x86_64-linux/include ${BUILD_PREFIX}/targets/x86_64-linux/include/third_party/gpus/cuda/
- cp -r ${PREFIX}/targets/x86_64-linux/include ${BUILD_PREFIX}/targets/x86_64-linux/include/third_party/gpus/cuda/extras/CUPTI/
- mkdir -p ${BUILD_PREFIX}/targets/x86_64-linux/include/third_party/gpus/cudnn
- cp ${PREFIX}/include/cudnn*.h ${BUILD_PREFIX}/targets/x86_64-linux/include/third_party/gpus/cudnn/
- mkdir -p ${BUILD_PREFIX}/targets/x86_64-linux/include/third_party/nccl
- cp ${PREFIX}/include/nccl.h ${BUILD_PREFIX}/targets/x86_64-linux/include/third_party/nccl/
- rsync -a ${PREFIX}/targets/x86_64-linux/lib/ ${BUILD_PREFIX}/targets/x86_64-linux/lib/
- ln -s ${BUILD_PREFIX}/bin/fatbinary ${BUILD_PREFIX}/targets/x86_64-linux/bin/fatbinary
- ln -s ${BUILD_PREFIX}/bin/nvlink ${BUILD_PREFIX}/targets/x86_64-linux/bin/nvlink
- ln -s ${BUILD_PREFIX}/bin/ptxas ${BUILD_PREFIX}/targets/x86_64-linux/bin/ptxas
-
- export LOCAL_CUDA_PATH="${BUILD_PREFIX}/targets/x86_64-linux"
+ rm -rf ${BUILD_PREFIX}/targets/${NVARCH}-linux/include/third_party
+ mkdir -p ${BUILD_PREFIX}/targets/${NVARCH}-linux/include/third_party/gpus/cuda/extras/CUPTI
+ cp -r ${PREFIX}/targets/${NVARCH}-linux/include ${BUILD_PREFIX}/targets/${NVARCH}-linux/include/third_party/gpus/cuda/
+ cp -r ${PREFIX}/targets/${NVARCH}-linux/include ${BUILD_PREFIX}/targets/${NVARCH}-linux/include/third_party/gpus/cuda/extras/CUPTI/
+ mkdir -p ${BUILD_PREFIX}/targets/${NVARCH}-linux/include/third_party/gpus/cudnn
+ cp ${PREFIX}/include/cudnn*.h ${BUILD_PREFIX}/targets/${NVARCH}-linux/include/third_party/gpus/cudnn/
+ mkdir -p ${BUILD_PREFIX}/targets/${NVARCH}-linux/include/third_party/nccl
+ cp ${PREFIX}/include/nccl.h ${BUILD_PREFIX}/targets/${NVARCH}-linux/include/third_party/nccl/
+ rsync -a ${PREFIX}/targets/${NVARCH}-linux/lib/ ${BUILD_PREFIX}/targets/${NVARCH}-linux/lib/
+ mkdir -p ${BUILD_PREFIX}/targets/${NVARCH}-linux/bin
+ ln -s ${BUILD_PREFIX}/bin/fatbinary ${BUILD_PREFIX}/targets/${NVARCH}-linux/bin/fatbinary
+ ln -s ${BUILD_PREFIX}/bin/nvlink ${BUILD_PREFIX}/targets/${NVARCH}-linux/bin/nvlink
+ ln -s ${BUILD_PREFIX}/bin/ptxas ${BUILD_PREFIX}/targets/${NVARCH}-linux/bin/ptxas
+
+ export LOCAL_CUDA_PATH="${BUILD_PREFIX}/targets/${NVARCH}-linux"
export LOCAL_CUDNN_PATH="${PREFIX}"
export LOCAL_NCCL_PATH="${PREFIX}"
@@ -153,13 +171,17 @@ else
export TF_NEED_CUDA=0
fi
-source ${RECIPE_DIR}/gen-bazel-toolchain.sh
+gen-bazel-toolchain
if [[ "${target_platform}" == "osx-64" ]]; then
# Tensorflow doesn't cope yet with an explicit architecture (darwin_x86_64) on osx-64 yet.
TARGET_CPU=darwin
# See https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk
export CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY"
+elif [[ "${target_platform}" == "linux-aarch64" ]]; then
+ TARGET_CPU=aarch64
+elif [[ "${target_platform}" == "linux-x86_64" ]]; then
+ TARGET_CPU=x86_64
fi
# Get rid of unwanted defaults
@@ -212,7 +234,7 @@ if [[ "${build_platform}" == linux-* ]]; then
fi
cat >> .bazelrc < return $libname if defined, or undefined otherwise. This is to make
- # this set -e friendly
- if [[ -n "${libname-}" ]]; then
- libpath=$(get_library_path ${lib})
- if [ -n "${libpath}" ]; then
- ${INSTALL_NAME_TOOL} -change $(get_otool_path "${libpath}") \
- "@loader_path/${rpath}/${libname}" "${OUTPUT}"
- fi
- fi
- done
-done
-
-if [[ "${target_platform}" == "osx-arm64" ]]; then
- /usr/bin/codesign -s - -f ${OUTPUT}
-fi
diff --git a/recipe/custom_toolchain/crosstool_wrapper_driver_is_not_gcc b/recipe/custom_toolchain/crosstool_wrapper_driver_is_not_gcc
deleted file mode 100755
index 0dfc5db26..000000000
--- a/recipe/custom_toolchain/crosstool_wrapper_driver_is_not_gcc
+++ /dev/null
@@ -1,319 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2015 The TensorFlow Authors. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ==============================================================================
-"""Crosstool wrapper for compiling CUDA programs.
-
-SYNOPSIS:
- crosstool_wrapper_is_not_gcc [options passed in by cc_library()
- or cc_binary() rule]
-
-DESCRIPTION:
- This script is expected to be called by the cc_library() or cc_binary() bazel
- rules. When the option "-x cuda" is present in the list of arguments passed
- to this script, it invokes the nvcc CUDA compiler. Most arguments are passed
- as is as a string to --compiler-options of nvcc. When "-x cuda" is not
- present, this wrapper invokes hybrid_driver_is_not_gcc with the input
- arguments as is.
-
-NOTES:
- Changes to the contents of this file must be propagated from
- //third_party/gpus/crosstool/crosstool_wrapper_is_not_gcc to
- //third_party/gpus/crosstool/v*/*/clang/bin/crosstool_wrapper_is_not_gcc
-"""
-
-# NOTE wolfv this file can be found here: https://raw.githubusercontent.com/tensorflow/tensorflow/master/third_party/gpus/crosstool/clang/bin/crosstool_wrapper_driver_is_not_gcc.tpl
-# NOTE updated: ngam: https://github.com/tensorflow/tensorflow/blob/v2.10.0-rc0/third_party/gpus/crosstool/clang/bin/crosstool_wrapper_driver_is_not_gcc.tpl
-
-from __future__ import print_function
-
-__author__ = 'keveman@google.com (Manjunath Kudlur)'
-
-from argparse import ArgumentParser
-import os
-import subprocess
-import re
-import sys
-import pipes
-
-# Template values set by cuda_autoconf.
-CPU_COMPILER = "${GCC_COMPILER_PATH}"
-GCC_HOST_COMPILER_PATH = "${GCC_COMPILER_PATH}"
-
-NVCC_VERSION = '${CUDA_VERSION}'
-NVCC_PATH = '${CUDA_HOME}/bin/nvcc'
-PREFIX_DIR = os.path.dirname(GCC_HOST_COMPILER_PATH)
-
-
-def Log(s):
- print('gpus/crosstool: {0}'.format(s))
-
-
-def GetOptionValue(argv, option):
- """Extract the list of values for option from the argv list.
-
- Args:
- argv: A list of strings, possibly the argv passed to main().
- option: The option whose value to extract, with the leading '-'.
-
- Returns:
- A list of values, either directly following the option,
- (eg., -opt val1 val2) or values collected from multiple occurrences of
- the option (eg., -opt val1 -opt val2).
- """
-
- parser = ArgumentParser()
- parser.add_argument(option, nargs='*', action='append')
- option = option.lstrip('-').replace('-', '_')
- args, _ = parser.parse_known_args(argv)
- if not args or not vars(args)[option]:
- return []
- else:
- return sum(vars(args)[option], [])
-
-
-def GetHostCompilerOptions(argv):
- """Collect the -isystem, -iquote, and --sysroot option values from argv.
-
- Args:
- argv: A list of strings, possibly the argv passed to main().
-
- Returns:
- The string that can be used as the --compiler-options to nvcc.
- """
-
- parser = ArgumentParser()
- parser.add_argument('-isystem', nargs='*', action='append')
- parser.add_argument('-iquote', nargs='*', action='append')
- parser.add_argument('--sysroot', nargs=1)
- parser.add_argument('-g', nargs='*', action='append')
- parser.add_argument('-fno-canonical-system-headers', action='store_true')
- parser.add_argument('-no-canonical-prefixes', action='store_true')
-
- args, _ = parser.parse_known_args(argv)
-
- opts = ''
-
- if args.isystem:
- opts += ' -isystem ' + ' -isystem '.join(sum(args.isystem, []))
- if args.iquote:
- opts += ' -iquote ' + ' -iquote '.join(sum(args.iquote, []))
- if args.g:
- opts += ' -g' + ' -g'.join(sum(args.g, []))
- if args.fno_canonical_system_headers:
- opts += ' -fno-canonical-system-headers'
- if args.no_canonical_prefixes:
- opts += ' -no-canonical-prefixes'
- if args.sysroot:
- opts += ' --sysroot ' + args.sysroot[0]
-
- return opts
-
-
-def _update_options(nvcc_options):
- if NVCC_VERSION in ("7.0",):
- return nvcc_options
-
- update_options = {"relaxed-constexpr": "expt-relaxed-constexpr"}
- return [update_options[opt] if opt in update_options else opt
- for opt in nvcc_options]
-
-
-def GetNvccOptions(argv):
- """Collect the -nvcc_options values from argv.
-
- Args:
- argv: A list of strings, possibly the argv passed to main().
-
- Returns:
- The string that can be passed directly to nvcc.
- """
-
- parser = ArgumentParser()
- parser.add_argument('-nvcc_options', nargs='*', action='append')
-
- args, _ = parser.parse_known_args(argv)
-
- if args.nvcc_options:
- options = _update_options(sum(args.nvcc_options, []))
- return ' '.join(['--'+a for a in options])
- return ''
-
-
-def system(cmd):
- """Invokes cmd with os.system().
-
- Args:
- cmd: The command.
-
- Returns:
- The exit code if the process exited with exit() or -signal
- if the process was terminated by a signal.
- """
- retv = os.system(cmd)
- if os.WIFEXITED(retv):
- return os.WEXITSTATUS(retv)
- else:
- return -os.WTERMSIG(retv)
-
-
-def InvokeNvcc(argv, log=False):
- """Call nvcc with arguments assembled from argv.
-
- Args:
- argv: A list of strings, possibly the argv passed to main().
- log: True if logging is requested.
-
- Returns:
- The return value of calling system('nvcc ' + args)
- """
-
- host_compiler_options = GetHostCompilerOptions(argv)
- nvcc_compiler_options = GetNvccOptions(argv)
- opt_option = GetOptionValue(argv, '-O')
- m_options = GetOptionValue(argv, '-m')
- m_options = ''.join([' -m' + m for m in m_options if m in ['32', '64']])
- include_options = GetOptionValue(argv, '-I')
- out_file = GetOptionValue(argv, '-o')
- depfiles = GetOptionValue(argv, '-MF')
- defines = GetOptionValue(argv, '-D')
- defines = ''.join([' -D' + define for define in defines])
- undefines = GetOptionValue(argv, '-U')
- undefines = ''.join([' -U' + define for define in undefines])
- std_options = GetOptionValue(argv, '-std')
- # Supported -std flags as of CUDA 9.0. Only keep last to mimic gcc/clang.
- nvcc_allowed_std_options = ["c++03", "c++11", "c++14"]
- nvcc_std_map = {}
- if int(NVCC_VERSION.split('.')[0]) >= 11:
- nvcc_std_map["c++1z"] = "c++17"
- nvcc_allowed_std_options += ["c++17", "c++1z"]
- std_options = ''.join([' -std=' +
- (nvcc_std_map[define]
- if define in nvcc_std_map else define)
- for define in std_options if define in nvcc_allowed_std_options][-1:])
- fatbin_options = ''.join([' --fatbin-options=' + option
- for option in GetOptionValue(argv, '-Xcuda-fatbinary')])
-
- # The list of source files get passed after the -c option. I don't know of
- # any other reliable way to just get the list of source files to be compiled.
- src_files = GetOptionValue(argv, '-c')
-
- # Pass -w through from host to nvcc, but don't do anything fancier with
- # warnings-related flags, since they're not necessarily the same across
- # compilers.
- warning_options = ' -w' if '-w' in argv else ''
-
- if len(src_files) == 0:
- return 1
- if len(out_file) != 1:
- return 1
-
- opt = (' -O2' if (len(opt_option) > 0 and int(opt_option[0]) > 0)
- else ' -g')
-
- includes = (' -I ' + ' -I '.join(include_options)
- if len(include_options) > 0
- else '')
-
- # Unfortunately, there are other options that have -c prefix too.
- # So allowing only those look like C/C++ files.
- src_files = [f for f in src_files if
- re.search('\.cpp$|\.cc$|\.c$|\.cxx$|\.C$', f)]
- srcs = ' '.join(src_files)
- out = ' -o ' + out_file[0]
-
- nvccopts = '-D_FORCE_INLINES '
- capabilities_sm = set(GetOptionValue(argv, "--cuda-gpu-arch"))
- capabilities_compute = set(GetOptionValue(argv, '--cuda-include-ptx'))
- # When both "code=sm_xy" and "code=compute_xy" are requested for a single
- # arch, they can be combined using "code=xy,compute_xy" which avoids a
- # redundant PTX generation during compilation.
- capabilities_both = capabilities_sm.intersection(capabilities_compute)
- for capability in capabilities_both:
- capability = capability[len('sm_'):]
- nvccopts += r'-gencode=arch=compute_%s,code=\"sm_%s,compute_%s\" ' % (
- capability, capability, capability)
- for capability in capabilities_sm - capabilities_both:
- capability = capability[len('sm_'):]
- nvccopts += r'-gencode=arch=compute_%s,\"code=sm_%s\" ' % (capability,
- capability)
- for capability in capabilities_compute - capabilities_both:
- capability = capability[len('sm_'):]
- nvccopts += r'-gencode=arch=compute_%s,\"code=compute_%s\" ' % (capability,
- capability)
- nvccopts += nvcc_compiler_options
- nvccopts += undefines
- nvccopts += defines
- nvccopts += std_options
- nvccopts += m_options
- nvccopts += warning_options
- # Force C++17 dialect (note, everything in just one string!)
- nvccopts += ' --std c++17 '
- nvccopts += fatbin_options
-
- if depfiles:
- # Generate the dependency file
- depfile = depfiles[0]
- cmd = (NVCC_PATH + ' ' + nvccopts +
- ' --compiler-options "' + host_compiler_options + '"' +
- ' --compiler-bindir=' + GCC_HOST_COMPILER_PATH +
- ' -I .' +
- ' -x cu ' + opt + includes + ' ' + srcs + ' -M -o ' + depfile)
- if log:
- Log(cmd)
- exit_status = system(cmd)
- if exit_status != 0:
- return exit_status
-
- cmd = (NVCC_PATH + ' ' + nvccopts +
- ' --compiler-options "' + host_compiler_options + ' -fPIC"' +
- ' --compiler-bindir=' + GCC_HOST_COMPILER_PATH +
- ' -I .' +
- ' -x cu ' + opt + includes + ' -c ' + srcs + out)
-
- # TODO(zhengxq): for some reason, 'gcc' needs this help to find 'as'.
- # Need to investigate and fix.
- cmd = 'PATH=' + PREFIX_DIR + ':$PATH ' + cmd
- if log:
- Log(cmd)
- return system(cmd)
-
-
-def main():
- parser = ArgumentParser()
- parser.add_argument('-x', nargs=1)
- parser.add_argument('--cuda_log', action='store_true')
- args, leftover = parser.parse_known_args(sys.argv[1:])
-
- if args.x and args.x[0] == 'cuda':
- if args.cuda_log:
- Log('-x cuda')
- leftover = [pipes.quote(s) for s in leftover]
- if args.cuda_log:
- Log('using nvcc')
- return InvokeNvcc(leftover, log=args.cuda_log)
-
- # Strip our flags before passing through to the CPU compiler for files which
- # are not -x cuda. We can't just pass 'leftover' because it also strips -x.
- # We not only want to pass -x to the CPU compiler, but also keep it in its
- # relative location in the argv list (the compiler is actually sensitive to
- # this).
- cpu_compiler_flags = [flag for flag in sys.argv[1:]
- if not flag.startswith(('--cuda_log'))]
-
- return subprocess.call([CPU_COMPILER] + cpu_compiler_flags)
-
-
-if __name__ == '__main__':
- sys.exit(main())
diff --git a/recipe/gen-bazel-toolchain.sh b/recipe/gen-bazel-toolchain.sh
deleted file mode 100755
index 73208eae2..000000000
--- a/recipe/gen-bazel-toolchain.sh
+++ /dev/null
@@ -1,155 +0,0 @@
-#!/bin/bash
-
-set -euxo pipefail
-
-function apply_cc_template() {
- # Strip trailing/duplicate whitespace
- CFLAGS=$(echo $CFLAGS | xargs echo -n)
- CPPFLAGS=$(echo $CPPFLAGS | xargs echo -n)
- CXXFLAGS=$(echo $CXXFLAGS | xargs echo -n)
- LDFLAGS=$(echo $LDFLAGS | xargs echo -n)
-
- sed -ie "s:TARGET_CPU:${TARGET_CPU}:" $1
- sed -ie "s:TARGET_LIBC:${TARGET_LIBC}:" $1
- sed -ie "s:TARGET_SYSTEM:${TARGET_SYSTEM}:" $1
- sed -ie "s:TARGET_PLATFORM:${target_platform}:" $1
- sed -ie "s:\${CONDA_BUILD_SYSROOT}:${CONDA_BUILD_SYSROOT}:" $1
- sed -ie "s:\${COMPILER_VERSION}:${BAZEL_TOOLCHAIN_COMPILER_VERSION:-}:" $1
- sed -ie "s:\${SHORT_COMPILER_VERSION}:${SHORT_BAZEL_TOOLCHAIN_COMPILER_VERSION:-}:" $1
- sed -ie "s:\${GCC_COMPILER_PATH}:${GCC:-}:" $1
- sed -ie "s:\${BAZEL_TOOLCHAIN_GCC}:${BAZEL_TOOLCHAIN_GCC}:" $1
- sed -ie "s:\${CUDA_VERSION}:${cuda_compiler_version:-}:" $1
- sed -ie "s:\${CUDA_HOME}:${CUDA_HOME:-}:" $1
- sed -ie "s:\${PREFIX}:${PREFIX}:" $1
- sed -ie "s:\${BUILD_PREFIX}:${BUILD_PREFIX}:" $1
- sed -ie "s:\${HOST_PREFIX}:${HOST_PREFIX}:" $1
- sed -ie "s:\${LD}:${LD}:" $1
- sed -ie "s:\${CFLAGS}:${CFLAGS}:" $1
- sed -ie "s:\${CPPFLAGS}:${CPPFLAGS}:" $1
- sed -ie "s:\${CXXFLAGS}:${CXXFLAGS}:" $1
- sed -ie "s:\${LDFLAGS}:${LDFLAGS}:" $1
- sed -ie "s:\${NM}:${NM}:" $1
- sed -ie "s:\${STRIP}:${STRIP}:" $1
- sed -ie "s:\${AR}:${BAZEL_TOOLCHAIN_AR}:" $1
- sed -ie "s:\${HOST}:${HOST}:" $1
- sed -ie "s:\${LIBCXX}:${BAZEL_TOOLCHAIN_LIBCXX}:" $1
-}
-
-export BAZEL_USE_CPP_ONLY_TOOLCHAIN=1
-
-# set up bazel config file for conda provided clang toolchain
-cp -r ${RECIPE_DIR}/custom_toolchain .
-pushd custom_toolchain
- if [[ "${target_platform}" == osx-* ]]; then
- export BAZEL_TOOLCHAIN_COMPILER_VERSION=$($CC -v 2>&1 | head -n1 | cut -d' ' -f3)
- export SHORT_BAZEL_TOOLCHAIN_COMPILER_VERSION=$(echo ${BAZEL_TOOLCHAIN_COMPILER_VERSION} | cut -d. -f1)
- sed -e "s:\${CLANG}:${CLANG}:" \
- -e "s:\${target_platform}:${target_platform}:" \
- -e "s:\${INSTALL_NAME_TOOL}:${INSTALL_NAME_TOOL}:" \
- -e "s:\${CONDA_BUILD_SYSROOT}:${CONDA_BUILD_SYSROOT}:" \
- -e "s:\${MACOSX_SDK_VERSION}:${MACOSX_SDK_VERSION:-}:" \
- -e "s:\${MACOSX_DEPLOYMENT_TARGET}:${MACOSX_DEPLOYMENT_TARGET:-}:" \
- cc_wrapper.sh.template > cc_wrapper.sh
- chmod +x cc_wrapper.sh
- sed -e "s:\${CLANG}:${CC_FOR_BUILD}:" \
- -e "s:\${target_platform}:${target_platform}:" \
- -e "s:\${INSTALL_NAME_TOOL}:${INSTALL_NAME_TOOL//${HOST}/${BUILD}}:" \
- -e "s:\${CONDA_BUILD_SYSROOT}:${CONDA_BUILD_SYSROOT}:" \
- -e "s:\${MACOSX_SDK_VERSION}:${MACOSX_SDK_VERSION:-}:" \
- -e "s:\${MACOSX_DEPLOYMENT_TARGET}:${MACOSX_DEPLOYMENT_TARGET:-}:" \
- cc_wrapper.sh.template > cc_wrapper_build.sh
- chmod +x cc_wrapper.sh
- chmod +x cc_wrapper_build.sh
- export BAZEL_TOOLCHAIN_GCC="cc_wrapper.sh"
- export BAZEL_TOOLCHAIN_LIBCXX="c++"
- export BAZEL_TOOLCHAIN_AR=${LIBTOOL}
- else
- export BAZEL_TOOLCHAIN_COMPILER_VERSION=$(${CC} -v 2>&1|tail -n1|cut -d' ' -f3)
- export SHORT_BAZEL_TOOLCHAIN_COMPILER_VERSION=${BAZEL_TOOLCHAIN_COMPILER_VERSION}
- export BAZEL_TOOLCHAIN_AR=$(basename ${AR})
- touch cc_wrapper.sh
-
- export BAZEL_TOOLCHAIN_LIBCXX="stdc++"
- export BAZEL_TOOLCHAIN_GCC="${GCC}"
-
- # for NVCC we need to use a crosstool wrapper
- if [[ ${cuda_compiler_version} != "None" ]]; then
- export BAZEL_TOOLCHAIN_GCC=crosstool_wrapper_driver_is_not_gcc
- fi
- fi
-
- export TARGET_SYSTEM="${HOST}"
- if [[ "${target_platform}" == "osx-64" ]]; then
- export TARGET_LIBC="macosx"
- export TARGET_CPU="darwin_x86_64"
- export TARGET_SYSTEM="x86_64-apple-macosx"
- elif [[ "${target_platform}" == "osx-arm64" ]]; then
- export TARGET_LIBC="macosx"
- export TARGET_CPU="darwin_arm64"
- export TARGET_SYSTEM="arm64-apple-macosx"
- elif [[ "${target_platform}" == "linux-64" ]]; then
- export TARGET_LIBC="unknown"
- export TARGET_CPU="k8"
- elif [[ "${target_platform}" == "linux-aarch64" ]]; then
- export TARGET_LIBC="unknown"
- export TARGET_CPU="aarch64"
- elif [[ "${target_platform}" == "linux-ppc64le" ]]; then
- export TARGET_LIBC="unknown"
- export TARGET_CPU="ppc"
- fi
- export BUILD_SYSTEM=${BUILD}
- if [[ "${build_platform}" == "osx-64" ]]; then
- export BUILD_CPU="darwin"
- export BUILD_SYSTEM="x86_64-apple-macosx"
- elif [[ "${build_platform}" == "osx-arm64" ]]; then
- export BUILD_CPU="darwin"
- export BUILD_SYSTEM="arm64-apple-macosx"
- elif [[ "${build_platform}" == "linux-64" ]]; then
- export BUILD_CPU="k8"
- elif [[ "${build_platform}" == "linux-aarch64" ]]; then
- export BUILD_CPU="aarch64"
- elif [[ "${build_platform}" == "linux-ppc64le" ]]; then
- export BUILD_CPU="ppc"
- fi
- # The current Bazel release cannot distinguish between osx-arm64 and osx-64.
- # This will change with later releases and then we should get rid of this section again.
- #if [[ "${target_platform}" == osx-* ]]; then
- # if [[ "${build_platform}" == "${target_platform}" ]]; then
- # export TARGET_CPU="darwin"
- # export BUILD_CPU="darwin"
- # fi
- #fi
-
- sed -ie "s:TARGET_CPU:${TARGET_CPU}:" BUILD
- sed -ie "s:BUILD_CPU:${BUILD_CPU}:" BUILD
-
- # save HOST_PREFIX before setting PREFIX to be BUILD_PREFIX (in cross-compilation).
- HOST_PREFIX=${PREFIX}
-
- cp cc_toolchain_config.bzl cc_toolchain_build_config.bzl
- apply_cc_template cc_toolchain_config.bzl
- apply_cc_template crosstool_wrapper_driver_is_not_gcc
- (
- if [[ "${build_platform}" != "${target_platform}" ]]; then
- if [[ "${target_platform}" == osx-* ]]; then
- BAZEL_TOOLCHAIN_GCC=cc_wrapper_build.sh
- else
- BAZEL_TOOLCHAIN_GCC=${BAZEL_TOOLCHAIN_GCC//${HOST}/${BUILD}}
- fi
- TARGET_CPU=${BUILD_CPU}
- TARGET_SYSTEM=${BUILD_SYSTEM}
- target_platform=${build_platform}
- PREFIX=${BUILD_PREFIX}
- LD=${LD//${HOST}/${BUILD}}
- CFLAGS=${CFLAGS//${HOST_PREFIX}/${BUILD_PREFIX}}
- CPPFLAGS=${CPPFLAGS//${HOST_PREFIX}/${BUILD_PREFIX}}
- CXXFLAGS=${CXXFLAGS//${HOST_PREFIX}/${BUILD_PREFIX}}
- LDFLAGS=${LDFLAGS//${HOST_PREFIX}/${BUILD_PREFIX}}
- NM=${NM//${HOST}/${BUILD}}
- STRIP=${STRIP//${HOST}/${BUILD}}
- BAZEL_TOOLCHAIN_AR=${BAZEL_TOOLCHAIN_AR//${HOST}/${BUILD}}
- HOST=${BUILD}
- fi
- apply_cc_template cc_toolchain_build_config.bzl
- )
-popd
diff --git a/recipe/meta.yaml b/recipe/meta.yaml
index ab52192d5..faf723153 100644
--- a/recipe/meta.yaml
+++ b/recipe/meta.yaml
@@ -50,6 +50,10 @@ source:
# https://github.com/tensorflow/tensorflow/pull/86413
- patches/0029-Avoid-linking-with-internal-nvrtc.patch
- patches/0030-remove-dependencies-to-libcuda.patch
+ - patches/0031-bump-h5py-req.patch # [aarch64]
+ # backport https://github.com/tensorflow/tensorflow/pull/90563 (applies to cuda-12.8, any platform)
+ - patches/0032-gpu_prim-error.patch
+ - patches/0034-build-dirty.patch # [linux_aarch64 and target_platform != build_platform]
- url: https://github.com/tensorflow/estimator/archive/refs/tags/v{{ estimator_version.replace(".rc", "-rc") }}.tar.gz
sha256: 2d7e100b1878084da34b5e23b49a0cbb5ee8a7add74b7dd189a82ada1cf85530
folder: tensorflow-estimator
@@ -59,6 +63,10 @@ build:
skip: true # [win]
# The following skip can be removed when the absl::StrFormat build issues are fixed.
skip: true # [cuda_compiler_version == "11.8"]
+ # aarch64 support added only for CUDA 12.8+
+ skip: true # [cuda_compiler_version == "12.6" and target_platform == "linux-aarch64"]
+ # only enable CUDA 12.8 for aarch64 at this time.
+ skip: true # [cuda_compiler_version == "12.8" and target_platform != "linux-aarch64"]
requirements:
build:
@@ -77,11 +85,15 @@ requirements:
- onednn-cpu-threadpool # [build_platform != target_platform]
- pybind11 # [build_platform != target_platform]
- numpy # [build_platform != target_platform]
+ - libcurl # [build_platform != target_platform]
+ - zlib # [build_platform != target_platform]
+ - pkg-config
- {{ compiler('c') }}
- {{ stdlib("c") }}
- {{ compiler('cxx') }}
- {{ compiler('cuda') }} # [cuda_compiler_version != "None"]
- bazel 6.*
+ - bazel-toolchain
- libgrpc
- libprotobuf
- nasm
@@ -334,6 +346,7 @@ outputs:
# https://github.com/conda-forge/tensorflow-feedstock/issues/162
- {{ compiler('cuda') }} # [cuda_compiler_version != "None"]
- bazel 6.*
+ - bazel-toolchain
- python # [build_platform != target_platform]
- cross-python_{{ target_platform }} # [build_platform != target_platform]
- libabseil # [build_platform != target_platform]
@@ -461,7 +474,7 @@ outputs:
# 2021/08/01, hmaarrfk
# While this seems like a roundabout way of defining the package name
# It helps the linter avoid errors on a package not having tests.
- {% set tensorflow_cpu_gpu = "tensorflow-cpu" %} # [cuda_compiler_version == "None" or cuda_compiler_version is undefined]
+ {% set tensorflow_cpu_gpu = "tensorflow-cpu" %} # [cuda_compiler_version == "None"]
{% set tensorflow_cpu_gpu = "tensorflow-gpu" %} # [cuda_compiler_version != "None"]
- name: {{ tensorflow_cpu_gpu }}
build:
diff --git a/recipe/patches/0031-bump-h5py-req.patch b/recipe/patches/0031-bump-h5py-req.patch
new file mode 100644
index 000000000..5447ebe99
--- /dev/null
+++ b/recipe/patches/0031-bump-h5py-req.patch
@@ -0,0 +1,282 @@
+diff --git a/ci/official/requirements_updater/requirements.in b/ci/official/requirements_updater/requirements.in
+index 626bcca9572..bcab5e720bc 100644
+--- a/ci/official/requirements_updater/requirements.in
++++ b/ci/official/requirements_updater/requirements.in
+@@ -1,6 +1,6 @@
+ numpy ~= 2.0.0
+ wheel ~= 0.41.2
+-h5py >= 3.11.0
++h5py >= 3.12.0
+ lit ~= 17.0.2
+ opt_einsum == 3.3.0
+ astunparse == 1.6.3
+@@ -21,6 +21,7 @@ tensorboard ~= 2.18.0
+ # Test dependencies
+ grpcio >= 1.24.3, < 2.0
+ portpicker == 1.6.0
++psutil >= 7.0.0
+ scipy ~= 1.13.0
+ requests >= 2.31.0
+ packaging==23.2
+diff --git a/requirements_lock_3_10.txt b/requirements_lock_3_10.txt
+index 3ef493e11f5..a23cdd5ea5b 100644
+--- a/requirements_lock_3_10.txt
++++ b/requirements_lock_3_10.txt
+@@ -181,28 +181,7 @@ grpcio==1.64.1 \
+ # via
+ # -r ci/official/requirements_updater/requirements.in
+ # tensorboard
+-h5py==3.11.0 \
+- --hash=sha256:083e0329ae534a264940d6513f47f5ada617da536d8dccbafc3026aefc33c90e \
+- --hash=sha256:1625fd24ad6cfc9c1ccd44a66dac2396e7ee74940776792772819fc69f3a3731 \
+- --hash=sha256:21dbdc5343f53b2e25404673c4f00a3335aef25521bd5fa8c707ec3833934892 \
+- --hash=sha256:52c416f8eb0daae39dabe71415cb531f95dce2d81e1f61a74537a50c63b28ab3 \
+- --hash=sha256:55106b04e2c83dfb73dc8732e9abad69d83a436b5b82b773481d95d17b9685e1 \
+- --hash=sha256:67462d0669f8f5459529de179f7771bd697389fcb3faab54d63bf788599a48ea \
+- --hash=sha256:6c4b760082626120031d7902cd983d8c1f424cdba2809f1067511ef283629d4b \
+- --hash=sha256:731839240c59ba219d4cb3bc5880d438248533366f102402cfa0621b71796b62 \
+- --hash=sha256:754c0c2e373d13d6309f408325343b642eb0f40f1a6ad21779cfa9502209e150 \
+- --hash=sha256:75bd7b3d93fbeee40860fd70cdc88df4464e06b70a5ad9ce1446f5f32eb84007 \
+- --hash=sha256:77b19a40788e3e362b54af4dcf9e6fde59ca016db2c61360aa30b47c7b7cef00 \
+- --hash=sha256:7b7e8f78072a2edec87c9836f25f34203fd492a4475709a18b417a33cfb21fa9 \
+- --hash=sha256:8ec9df3dd2018904c4cc06331951e274f3f3fd091e6d6cc350aaa90fa9b42a76 \
+- --hash=sha256:a76cae64080210389a571c7d13c94a1a6cf8cb75153044fd1f822a962c97aeab \
+- --hash=sha256:aa6ae84a14103e8dc19266ef4c3e5d7c00b68f21d07f2966f0ca7bdb6c2761fb \
+- --hash=sha256:bbd732a08187a9e2a6ecf9e8af713f1d68256ee0f7c8b652a32795670fb481ba \
+- --hash=sha256:c072655ad1d5fe9ef462445d3e77a8166cbfa5e599045f8aa3c19b75315f10e5 \
+- --hash=sha256:d9c944d364688f827dc889cf83f1fca311caf4fa50b19f009d1f2b525edd33a3 \
+- --hash=sha256:ef4e2f338fc763f50a8113890f455e1a70acd42a4d083370ceb80c463d803972 \
+- --hash=sha256:f3736fe21da2b7d8a13fe8fe415f1272d2a1ccdeff4849c1421d2fb30fd533bc \
+- --hash=sha256:f4e025e852754ca833401777c25888acb96889ee2c27e7e629a19aee288833f0
++h5py>=3.12.0
+ # via
+ # -r ci/official/requirements_updater/requirements.in
+ # keras
+@@ -487,24 +492,10 @@ protobuf==4.25.3 \
+ --hash=sha256:f1279ab38ecbfae7e456a108c5c0681e4956d5b1090027c1de0f934dfdb4b35c \
+ --hash=sha256:f4f118245c4a087776e0a8408be33cf09f6c547442c00395fbfb116fac2f8ac2
+ # via tensorboard
+-psutil==5.9.8 \
+- --hash=sha256:02615ed8c5ea222323408ceba16c60e99c3f91639b07da6373fb7e6539abc56d \
+- --hash=sha256:05806de88103b25903dff19bb6692bd2e714ccf9e668d050d144012055cbca73 \
+- --hash=sha256:26bd09967ae00920df88e0352a91cff1a78f8d69b3ecabbfe733610c0af486c8 \
+- --hash=sha256:27cc40c3493bb10de1be4b3f07cae4c010ce715290a5be22b98493509c6299e2 \
+- --hash=sha256:36f435891adb138ed3c9e58c6af3e2e6ca9ac2f365efe1f9cfef2794e6c93b4e \
+- --hash=sha256:50187900d73c1381ba1454cf40308c2bf6f34268518b3f36a9b663ca87e65e36 \
+- --hash=sha256:611052c4bc70432ec770d5d54f64206aa7203a101ec273a0cd82418c86503bb7 \
+- --hash=sha256:6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c \
+- --hash=sha256:7d79560ad97af658a0f6adfef8b834b53f64746d45b403f225b85c5c2c140eee \
+- --hash=sha256:8cb6403ce6d8e047495a701dc7c5bd788add903f8986d523e3e20b98b733e421 \
+- --hash=sha256:8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf \
+- --hash=sha256:aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81 \
+- --hash=sha256:bc56c2a1b0d15aa3eaa5a60c9f3f8e3e565303b465dbf57a1b730e7a2b9844e0 \
+- --hash=sha256:bd1184ceb3f87651a67b2708d4c3338e9b10c5df903f2e3776b62303b26cb631 \
+- --hash=sha256:d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4 \
+- --hash=sha256:d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8
+- # via portpicker
++psutil>=7.0.0
++ # via
++ # -r ci/official/requirements_updater/requirements.in
++ # portpicker
+ pygments==2.18.0 \
+ --hash=sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199 \
+ --hash=sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a
+diff --git a/requirements_lock_3_11.txt b/requirements_lock_3_11.txt
+index 7e3a884f832..960eb00cf28 100644
+--- a/requirements_lock_3_11.txt
++++ b/requirements_lock_3_11.txt
+@@ -181,28 +181,7 @@ grpcio==1.64.1 \
+ # via
+ # -r ci/official/requirements_updater/requirements.in
+ # tensorboard
+-h5py==3.11.0 \
+- --hash=sha256:083e0329ae534a264940d6513f47f5ada617da536d8dccbafc3026aefc33c90e \
+- --hash=sha256:1625fd24ad6cfc9c1ccd44a66dac2396e7ee74940776792772819fc69f3a3731 \
+- --hash=sha256:21dbdc5343f53b2e25404673c4f00a3335aef25521bd5fa8c707ec3833934892 \
+- --hash=sha256:52c416f8eb0daae39dabe71415cb531f95dce2d81e1f61a74537a50c63b28ab3 \
+- --hash=sha256:55106b04e2c83dfb73dc8732e9abad69d83a436b5b82b773481d95d17b9685e1 \
+- --hash=sha256:67462d0669f8f5459529de179f7771bd697389fcb3faab54d63bf788599a48ea \
+- --hash=sha256:6c4b760082626120031d7902cd983d8c1f424cdba2809f1067511ef283629d4b \
+- --hash=sha256:731839240c59ba219d4cb3bc5880d438248533366f102402cfa0621b71796b62 \
+- --hash=sha256:754c0c2e373d13d6309f408325343b642eb0f40f1a6ad21779cfa9502209e150 \
+- --hash=sha256:75bd7b3d93fbeee40860fd70cdc88df4464e06b70a5ad9ce1446f5f32eb84007 \
+- --hash=sha256:77b19a40788e3e362b54af4dcf9e6fde59ca016db2c61360aa30b47c7b7cef00 \
+- --hash=sha256:7b7e8f78072a2edec87c9836f25f34203fd492a4475709a18b417a33cfb21fa9 \
+- --hash=sha256:8ec9df3dd2018904c4cc06331951e274f3f3fd091e6d6cc350aaa90fa9b42a76 \
+- --hash=sha256:a76cae64080210389a571c7d13c94a1a6cf8cb75153044fd1f822a962c97aeab \
+- --hash=sha256:aa6ae84a14103e8dc19266ef4c3e5d7c00b68f21d07f2966f0ca7bdb6c2761fb \
+- --hash=sha256:bbd732a08187a9e2a6ecf9e8af713f1d68256ee0f7c8b652a32795670fb481ba \
+- --hash=sha256:c072655ad1d5fe9ef462445d3e77a8166cbfa5e599045f8aa3c19b75315f10e5 \
+- --hash=sha256:d9c944d364688f827dc889cf83f1fca311caf4fa50b19f009d1f2b525edd33a3 \
+- --hash=sha256:ef4e2f338fc763f50a8113890f455e1a70acd42a4d083370ceb80c463d803972 \
+- --hash=sha256:f3736fe21da2b7d8a13fe8fe415f1272d2a1ccdeff4849c1421d2fb30fd533bc \
+- --hash=sha256:f4e025e852754ca833401777c25888acb96889ee2c27e7e629a19aee288833f0
++h5py>=3.12.0
+ # via
+ # -r ci/official/requirements_updater/requirements.in
+ # keras
+@@ -487,24 +492,10 @@ protobuf==4.25.3 \
+ --hash=sha256:f1279ab38ecbfae7e456a108c5c0681e4956d5b1090027c1de0f934dfdb4b35c \
+ --hash=sha256:f4f118245c4a087776e0a8408be33cf09f6c547442c00395fbfb116fac2f8ac2
+ # via tensorboard
+-psutil==5.9.8 \
+- --hash=sha256:02615ed8c5ea222323408ceba16c60e99c3f91639b07da6373fb7e6539abc56d \
+- --hash=sha256:05806de88103b25903dff19bb6692bd2e714ccf9e668d050d144012055cbca73 \
+- --hash=sha256:26bd09967ae00920df88e0352a91cff1a78f8d69b3ecabbfe733610c0af486c8 \
+- --hash=sha256:27cc40c3493bb10de1be4b3f07cae4c010ce715290a5be22b98493509c6299e2 \
+- --hash=sha256:36f435891adb138ed3c9e58c6af3e2e6ca9ac2f365efe1f9cfef2794e6c93b4e \
+- --hash=sha256:50187900d73c1381ba1454cf40308c2bf6f34268518b3f36a9b663ca87e65e36 \
+- --hash=sha256:611052c4bc70432ec770d5d54f64206aa7203a101ec273a0cd82418c86503bb7 \
+- --hash=sha256:6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c \
+- --hash=sha256:7d79560ad97af658a0f6adfef8b834b53f64746d45b403f225b85c5c2c140eee \
+- --hash=sha256:8cb6403ce6d8e047495a701dc7c5bd788add903f8986d523e3e20b98b733e421 \
+- --hash=sha256:8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf \
+- --hash=sha256:aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81 \
+- --hash=sha256:bc56c2a1b0d15aa3eaa5a60c9f3f8e3e565303b465dbf57a1b730e7a2b9844e0 \
+- --hash=sha256:bd1184ceb3f87651a67b2708d4c3338e9b10c5df903f2e3776b62303b26cb631 \
+- --hash=sha256:d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4 \
+- --hash=sha256:d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8
+- # via portpicker
++psutil>=7.0.0
++ # via
++ # -r ci/official/requirements_updater/requirements.in
++ # portpicker
+ pygments==2.18.0 \
+ --hash=sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199 \
+ --hash=sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a
+diff --git a/requirements_lock_3_12.txt b/requirements_lock_3_12.txt
+index 19b72598651..8ea116d7fb0 100644
+--- a/requirements_lock_3_12.txt
++++ b/requirements_lock_3_12.txt
+@@ -181,28 +181,7 @@ grpcio==1.64.1 \
+ # via
+ # -r ci/official/requirements_updater/requirements.in
+ # tensorboard
+-h5py==3.11.0 \
+- --hash=sha256:083e0329ae534a264940d6513f47f5ada617da536d8dccbafc3026aefc33c90e \
+- --hash=sha256:1625fd24ad6cfc9c1ccd44a66dac2396e7ee74940776792772819fc69f3a3731 \
+- --hash=sha256:21dbdc5343f53b2e25404673c4f00a3335aef25521bd5fa8c707ec3833934892 \
+- --hash=sha256:52c416f8eb0daae39dabe71415cb531f95dce2d81e1f61a74537a50c63b28ab3 \
+- --hash=sha256:55106b04e2c83dfb73dc8732e9abad69d83a436b5b82b773481d95d17b9685e1 \
+- --hash=sha256:67462d0669f8f5459529de179f7771bd697389fcb3faab54d63bf788599a48ea \
+- --hash=sha256:6c4b760082626120031d7902cd983d8c1f424cdba2809f1067511ef283629d4b \
+- --hash=sha256:731839240c59ba219d4cb3bc5880d438248533366f102402cfa0621b71796b62 \
+- --hash=sha256:754c0c2e373d13d6309f408325343b642eb0f40f1a6ad21779cfa9502209e150 \
+- --hash=sha256:75bd7b3d93fbeee40860fd70cdc88df4464e06b70a5ad9ce1446f5f32eb84007 \
+- --hash=sha256:77b19a40788e3e362b54af4dcf9e6fde59ca016db2c61360aa30b47c7b7cef00 \
+- --hash=sha256:7b7e8f78072a2edec87c9836f25f34203fd492a4475709a18b417a33cfb21fa9 \
+- --hash=sha256:8ec9df3dd2018904c4cc06331951e274f3f3fd091e6d6cc350aaa90fa9b42a76 \
+- --hash=sha256:a76cae64080210389a571c7d13c94a1a6cf8cb75153044fd1f822a962c97aeab \
+- --hash=sha256:aa6ae84a14103e8dc19266ef4c3e5d7c00b68f21d07f2966f0ca7bdb6c2761fb \
+- --hash=sha256:bbd732a08187a9e2a6ecf9e8af713f1d68256ee0f7c8b652a32795670fb481ba \
+- --hash=sha256:c072655ad1d5fe9ef462445d3e77a8166cbfa5e599045f8aa3c19b75315f10e5 \
+- --hash=sha256:d9c944d364688f827dc889cf83f1fca311caf4fa50b19f009d1f2b525edd33a3 \
+- --hash=sha256:ef4e2f338fc763f50a8113890f455e1a70acd42a4d083370ceb80c463d803972 \
+- --hash=sha256:f3736fe21da2b7d8a13fe8fe415f1272d2a1ccdeff4849c1421d2fb30fd533bc \
+- --hash=sha256:f4e025e852754ca833401777c25888acb96889ee2c27e7e629a19aee288833f0
++h5py>=3.12.0
+ # via
+ # -r ci/official/requirements_updater/requirements.in
+ # keras
+@@ -487,24 +492,10 @@ protobuf==4.25.3 \
+ --hash=sha256:f1279ab38ecbfae7e456a108c5c0681e4956d5b1090027c1de0f934dfdb4b35c \
+ --hash=sha256:f4f118245c4a087776e0a8408be33cf09f6c547442c00395fbfb116fac2f8ac2
+ # via tensorboard
+-psutil==5.9.8 \
+- --hash=sha256:02615ed8c5ea222323408ceba16c60e99c3f91639b07da6373fb7e6539abc56d \
+- --hash=sha256:05806de88103b25903dff19bb6692bd2e714ccf9e668d050d144012055cbca73 \
+- --hash=sha256:26bd09967ae00920df88e0352a91cff1a78f8d69b3ecabbfe733610c0af486c8 \
+- --hash=sha256:27cc40c3493bb10de1be4b3f07cae4c010ce715290a5be22b98493509c6299e2 \
+- --hash=sha256:36f435891adb138ed3c9e58c6af3e2e6ca9ac2f365efe1f9cfef2794e6c93b4e \
+- --hash=sha256:50187900d73c1381ba1454cf40308c2bf6f34268518b3f36a9b663ca87e65e36 \
+- --hash=sha256:611052c4bc70432ec770d5d54f64206aa7203a101ec273a0cd82418c86503bb7 \
+- --hash=sha256:6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c \
+- --hash=sha256:7d79560ad97af658a0f6adfef8b834b53f64746d45b403f225b85c5c2c140eee \
+- --hash=sha256:8cb6403ce6d8e047495a701dc7c5bd788add903f8986d523e3e20b98b733e421 \
+- --hash=sha256:8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf \
+- --hash=sha256:aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81 \
+- --hash=sha256:bc56c2a1b0d15aa3eaa5a60c9f3f8e3e565303b465dbf57a1b730e7a2b9844e0 \
+- --hash=sha256:bd1184ceb3f87651a67b2708d4c3338e9b10c5df903f2e3776b62303b26cb631 \
+- --hash=sha256:d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4 \
+- --hash=sha256:d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8
+- # via portpicker
++psutil>=7.0.0
++ # via
++ # -r ci/official/requirements_updater/requirements.in
++ # portpicker
+ pygments==2.18.0 \
+ --hash=sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199 \
+ --hash=sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a
+diff --git a/requirements_lock_3_9.txt b/requirements_lock_3_9.txt
+index 115d6caa10d..f52c6922a78 100644
+--- a/requirements_lock_3_9.txt
++++ b/requirements_lock_3_9.txt
+@@ -181,28 +181,7 @@ grpcio==1.64.1 \
+ # via
+ # -r ci/official/requirements_updater/requirements.in
+ # tensorboard
+-h5py==3.11.0 \
+- --hash=sha256:083e0329ae534a264940d6513f47f5ada617da536d8dccbafc3026aefc33c90e \
+- --hash=sha256:1625fd24ad6cfc9c1ccd44a66dac2396e7ee74940776792772819fc69f3a3731 \
+- --hash=sha256:21dbdc5343f53b2e25404673c4f00a3335aef25521bd5fa8c707ec3833934892 \
+- --hash=sha256:52c416f8eb0daae39dabe71415cb531f95dce2d81e1f61a74537a50c63b28ab3 \
+- --hash=sha256:55106b04e2c83dfb73dc8732e9abad69d83a436b5b82b773481d95d17b9685e1 \
+- --hash=sha256:67462d0669f8f5459529de179f7771bd697389fcb3faab54d63bf788599a48ea \
+- --hash=sha256:6c4b760082626120031d7902cd983d8c1f424cdba2809f1067511ef283629d4b \
+- --hash=sha256:731839240c59ba219d4cb3bc5880d438248533366f102402cfa0621b71796b62 \
+- --hash=sha256:754c0c2e373d13d6309f408325343b642eb0f40f1a6ad21779cfa9502209e150 \
+- --hash=sha256:75bd7b3d93fbeee40860fd70cdc88df4464e06b70a5ad9ce1446f5f32eb84007 \
+- --hash=sha256:77b19a40788e3e362b54af4dcf9e6fde59ca016db2c61360aa30b47c7b7cef00 \
+- --hash=sha256:7b7e8f78072a2edec87c9836f25f34203fd492a4475709a18b417a33cfb21fa9 \
+- --hash=sha256:8ec9df3dd2018904c4cc06331951e274f3f3fd091e6d6cc350aaa90fa9b42a76 \
+- --hash=sha256:a76cae64080210389a571c7d13c94a1a6cf8cb75153044fd1f822a962c97aeab \
+- --hash=sha256:aa6ae84a14103e8dc19266ef4c3e5d7c00b68f21d07f2966f0ca7bdb6c2761fb \
+- --hash=sha256:bbd732a08187a9e2a6ecf9e8af713f1d68256ee0f7c8b652a32795670fb481ba \
+- --hash=sha256:c072655ad1d5fe9ef462445d3e77a8166cbfa5e599045f8aa3c19b75315f10e5 \
+- --hash=sha256:d9c944d364688f827dc889cf83f1fca311caf4fa50b19f009d1f2b525edd33a3 \
+- --hash=sha256:ef4e2f338fc763f50a8113890f455e1a70acd42a4d083370ceb80c463d803972 \
+- --hash=sha256:f3736fe21da2b7d8a13fe8fe415f1272d2a1ccdeff4849c1421d2fb30fd533bc \
+- --hash=sha256:f4e025e852754ca833401777c25888acb96889ee2c27e7e629a19aee288833f0
++h5py>=3.12.0
+ # via
+ # -r ci/official/requirements_updater/requirements.in
+ # keras
+@@ -491,24 +496,20 @@ protobuf==4.25.3 \
+ --hash=sha256:f1279ab38ecbfae7e456a108c5c0681e4956d5b1090027c1de0f934dfdb4b35c \
+ --hash=sha256:f4f118245c4a087776e0a8408be33cf09f6c547442c00395fbfb116fac2f8ac2
+ # via tensorboard
+-psutil==5.9.8 \
+- --hash=sha256:02615ed8c5ea222323408ceba16c60e99c3f91639b07da6373fb7e6539abc56d \
+- --hash=sha256:05806de88103b25903dff19bb6692bd2e714ccf9e668d050d144012055cbca73 \
+- --hash=sha256:26bd09967ae00920df88e0352a91cff1a78f8d69b3ecabbfe733610c0af486c8 \
+- --hash=sha256:27cc40c3493bb10de1be4b3f07cae4c010ce715290a5be22b98493509c6299e2 \
+- --hash=sha256:36f435891adb138ed3c9e58c6af3e2e6ca9ac2f365efe1f9cfef2794e6c93b4e \
+- --hash=sha256:50187900d73c1381ba1454cf40308c2bf6f34268518b3f36a9b663ca87e65e36 \
+- --hash=sha256:611052c4bc70432ec770d5d54f64206aa7203a101ec273a0cd82418c86503bb7 \
+- --hash=sha256:6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c \
+- --hash=sha256:7d79560ad97af658a0f6adfef8b834b53f64746d45b403f225b85c5c2c140eee \
+- --hash=sha256:8cb6403ce6d8e047495a701dc7c5bd788add903f8986d523e3e20b98b733e421 \
+- --hash=sha256:8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf \
+- --hash=sha256:aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81 \
+- --hash=sha256:bc56c2a1b0d15aa3eaa5a60c9f3f8e3e565303b465dbf57a1b730e7a2b9844e0 \
+- --hash=sha256:bd1184ceb3f87651a67b2708d4c3338e9b10c5df903f2e3776b62303b26cb631 \
+- --hash=sha256:d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4 \
+- --hash=sha256:d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8
+- # via portpicker
++psutil>=7.0.0 \
++ --hash=sha256:101d71dc322e3cffd7cea0650b09b3d08b8e7c4109dd6809fe452dfd00e58b25 \
++ --hash=sha256:1e744154a6580bc968a0195fd25e80432d3afec619daf145b9e5ba16cc1d688e \
++ --hash=sha256:1fcee592b4c6f146991ca55919ea3d1f8926497a713ed7faaf8225e174581e91 \
++ --hash=sha256:39db632f6bb862eeccf56660871433e111b6ea58f2caea825571951d4b6aa3da \
++ --hash=sha256:4b1388a4f6875d7e2aff5c4ca1cc16c545ed41dd8bb596cefea80111db353a34 \
++ --hash=sha256:4cf3d4eb1aa9b348dec30105c55cd9b7d4629285735a102beb4441e38db90553 \
++ --hash=sha256:7be9c3eba38beccb6495ea33afd982a44074b78f28c434a1f51cc07fd315c456 \
++ --hash=sha256:84df4eb63e16849689f76b1ffcb36db7b8de703d1bc1fe41773db487621b6c17 \
++ --hash=sha256:a5f098451abc2828f7dc6b58d44b532b22f2088f4999a937557b603ce72b1993 \
++ --hash=sha256:ba3fcef7523064a6c9da440fc4d6bd07da93ac726b5733c29027d7dc95b39d99
++ # via
++ # -r ci/official/requirements_updater/requirements.in
++ # portpicker
+ pygments==2.18.0 \
+ --hash=sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199 \
+ --hash=sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a
diff --git a/recipe/patches/0032-gpu_prim-error.patch b/recipe/patches/0032-gpu_prim-error.patch
new file mode 100644
index 000000000..45b46e8e6
--- /dev/null
+++ b/recipe/patches/0032-gpu_prim-error.patch
@@ -0,0 +1,57 @@
+From a2b525b41e7f37f899144ace54d14a1849a2b18e Mon Sep 17 00:00:00 2001
+From: "Patrick J. LoPresti"
+Date: Thu, 3 Apr 2025 10:44:00 -0700
+Subject: [PATCH] Adapt commit 5467ee9 from XLA to TensorFlow.
+
+TensorFlow has a build failure with newer CUDA. The problem has been
+fixed in XLA (openxla/xla#16095 and TensorFlow commit 5457ee9). This
+change adapts this commit to tensorflow/core/kernels/gpu_prim.h.
+
+Fixes #90562.
+---
+ WORKSPACE.rej | 20 +++++++++++++
+ tensorflow/core/kernels/gpu_prim.h | 13 ++++----
+ .../toolchains/python/python_repo.bzl.rej | 11 +++++++
+ tensorflow/workspace2.bzl.rej | 16 ++++++++++
+ ...rosstool_wrapper_driver_is_not_gcc.tpl.rej | 11 +++++++
+ .../gpus/find_cuda_config.py.gz.base64.rej | 4 +++
+ third_party/gpus/find_cuda_config.py.rej | 30 +++++++++++++++++++
+ 7 files changed, 97 insertions(+), 8 deletions(-)
+ create mode 100644 WORKSPACE.rej
+ create mode 100644 tensorflow/tools/toolchains/python/python_repo.bzl.rej
+ create mode 100644 tensorflow/workspace2.bzl.rej
+ create mode 100644 third_party/gpus/crosstool/clang/bin/crosstool_wrapper_driver_is_not_gcc.tpl.rej
+ create mode 100644 third_party/gpus/find_cuda_config.py.gz.base64.rej
+ create mode 100644 third_party/gpus/find_cuda_config.py.rej
+
+diff --git a/tensorflow/core/kernels/gpu_prim.h b/tensorflow/core/kernels/gpu_prim.h
+index bef22b50ada12c..f80bd54d4a1779 100644
+--- a/tensorflow/core/kernels/gpu_prim.h
++++ b/tensorflow/core/kernels/gpu_prim.h
+@@ -44,10 +44,9 @@ __device__ __forceinline__ void ThreadStoreVolatilePtr(
+ Eigen::numext::bit_cast(val);
+ }
+
+-template <>
+-__device__ __forceinline__ Eigen::half ThreadLoadVolatilePointer(
+- Eigen::half *ptr, Int2Type /*is_primitive*/) {
+- uint16_t result = *reinterpret_cast(ptr);
++__device__ __forceinline__ Eigen::half ThreadLoadVolatilePointer(
++ const Eigen::half *ptr, Int2Type /*is_primitive*/) {
++ uint16_t result = *reinterpret_cast(ptr);
+ return Eigen::numext::bit_cast(result);
+ }
+
+@@ -59,10 +58,8 @@ __device__ __forceinline__ void ThreadStoreVolatilePtr(
+ Eigen::numext::bit_cast(val);
+ }
+
+-template <>
+-__device__ __forceinline__ Eigen::bfloat16
+-ThreadLoadVolatilePointer(Eigen::bfloat16 *ptr,
+- Int2Type /*is_primitive*/) {
++__device__ __forceinline__ Eigen::bfloat16 ThreadLoadVolatilePointer(
++ Eigen::bfloat16 *ptr, Int2Type /*is_primitive*/) {
+ uint16_t result = *reinterpret_cast(ptr);
+ return Eigen::numext::bit_cast(result);
+ }
diff --git a/recipe/patches/0034-build-dirty.patch b/recipe/patches/0034-build-dirty.patch
new file mode 100644
index 000000000..f4bd222cd
--- /dev/null
+++ b/recipe/patches/0034-build-dirty.patch
@@ -0,0 +1,24 @@
+--- third_party/llvm/workspace.bzl 2025-04-17 15:16:37.539588592 +0000
++++ third_party/llvm/workspace.bzl 2025-04-17 15:17:14.799548942 +0000
+@@ -23,6 +23,7 @@
+ "//third_party/llvm:toolchains.patch",
+ "//third_party/llvm:zstd.patch",
+ "//third_party/llvm:rocdl_shuffle_down.patch",
++ "//third_party/llvm:dirty.patch",
+ ],
+ link_files = {"//third_party/llvm:run_lit.sh": "mlir/run_lit.sh"},
+ )
+--- /dev/null 2025-04-17 14:29:17.993999811 +0000
++++ third_party/llvm/dirty.patch 2025-04-17 16:14:55.340857915 +0000
+@@ -0,0 +1,11 @@
++--- a/utils/bazel/llvm-project-overlay/llvm/config.bzl 2025-04-17 16:11:50.417140143 +0000
+++++ b/utils/bazel/llvm-project-overlay/llvm/config.bzl 2025-04-17 16:11:54.891132310 +0000
++@@ -103,7 +103,7 @@
++ "@bazel_tools//src/conditions:linux_aarch64": native_arch_defines("AArch64", "aarch64-unknown-linux-gnu"),
++ "@bazel_tools//src/conditions:linux_ppc64le": native_arch_defines("PowerPC", "powerpc64le-unknown-linux-gnu"),
++ "@bazel_tools//src/conditions:linux_s390x": native_arch_defines("SystemZ", "systemz-unknown-linux_gnu"),
++- "//conditions:default": native_arch_defines("X86", "x86_64-unknown-linux-gnu"),
+++ "//conditions:default": native_arch_defines("AArch64", "aarch64-unknown-linux-gnu"),
++ }) + [
++ "LLVM_VERSION_MAJOR={}".format(LLVM_VERSION_MAJOR),
++ "LLVM_VERSION_MINOR={}".format(LLVM_VERSION_MINOR),