From 1fabb2a347080e8c4ceaf994b5bccf4fca4c0cc3 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Mon, 4 Aug 2025 11:48:49 -0500 Subject: [PATCH 1/9] AVX512 support --- .azure-pipelines/azure-pipelines-osx.yml | 2 +- ...x_compiler_version13microarch_level1.yaml} | 0 ...x_compiler_version13microarch_level3.yaml} | 0 ...xx_compiler_version13microarch_level4.yaml | 81 +++++++++++++++++++ ...x_compiler_version14microarch_level1.yaml} | 4 +- ...x_compiler_version14microarch_level3.yaml} | 4 +- ...xx_compiler_version14microarch_level4.yaml | 81 +++++++++++++++++++ .ci_support/osx_64_.yaml | 4 +- .ci_support/osx_arm64_.yaml | 4 +- .gitattributes | 1 + .github/workflows/conda-build.yml | 36 ++++++--- .scripts/build_steps.sh | 2 +- .scripts/run_docker_build.sh | 2 +- .scripts/run_osx_build.sh | 2 +- README.md | 37 ++++++--- recipe/conda_build_config.yaml | 1 + 16 files changed, 228 insertions(+), 33 deletions(-) rename .ci_support/{linux_64_cuda_compiler_version12.6microarch_level1.yaml => linux_64_c_compiler_version13cuda_compiler_version12.6cxx_compiler_version13microarch_level1.yaml} (100%) rename .ci_support/{linux_64_cuda_compiler_version12.6microarch_level3.yaml => linux_64_c_compiler_version13cuda_compiler_version12.6cxx_compiler_version13microarch_level3.yaml} (100%) create mode 100644 .ci_support/linux_64_c_compiler_version13cuda_compiler_version12.6cxx_compiler_version13microarch_level4.yaml rename .ci_support/{linux_64_cuda_compiler_versionNonemicroarch_level1.yaml => linux_64_c_compiler_version14cuda_compiler_versionNonecxx_compiler_version14microarch_level1.yaml} (98%) rename .ci_support/{linux_64_cuda_compiler_versionNonemicroarch_level3.yaml => linux_64_c_compiler_version14cuda_compiler_versionNonecxx_compiler_version14microarch_level3.yaml} (98%) create mode 100644 .ci_support/linux_64_c_compiler_version14cuda_compiler_versionNonecxx_compiler_version14microarch_level4.yaml diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index 378732b01..2ceb8f990 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -37,4 +37,4 @@ jobs: env: BINSTAR_TOKEN: $(BINSTAR_TOKEN) FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) - STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) \ No newline at end of file + STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) diff --git a/.ci_support/linux_64_cuda_compiler_version12.6microarch_level1.yaml b/.ci_support/linux_64_c_compiler_version13cuda_compiler_version12.6cxx_compiler_version13microarch_level1.yaml similarity index 100% rename from .ci_support/linux_64_cuda_compiler_version12.6microarch_level1.yaml rename to .ci_support/linux_64_c_compiler_version13cuda_compiler_version12.6cxx_compiler_version13microarch_level1.yaml diff --git a/.ci_support/linux_64_cuda_compiler_version12.6microarch_level3.yaml b/.ci_support/linux_64_c_compiler_version13cuda_compiler_version12.6cxx_compiler_version13microarch_level3.yaml similarity index 100% rename from .ci_support/linux_64_cuda_compiler_version12.6microarch_level3.yaml rename to .ci_support/linux_64_c_compiler_version13cuda_compiler_version12.6cxx_compiler_version13microarch_level3.yaml diff --git a/.ci_support/linux_64_c_compiler_version13cuda_compiler_version12.6cxx_compiler_version13microarch_level4.yaml b/.ci_support/linux_64_c_compiler_version13cuda_compiler_version12.6cxx_compiler_version13microarch_level4.yaml new file mode 100644 index 000000000..bbee24278 --- /dev/null +++ b/.ci_support/linux_64_c_compiler_version13cuda_compiler_version12.6cxx_compiler_version13microarch_level4.yaml @@ -0,0 +1,81 @@ +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: +- '12.6' +cudnn: +- '9' +cxx_compiler: +- gxx +cxx_compiler_version: +- '13' +docker_image: +- quay.io/condaforge/linux-anvil-x86_64: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 +libtensorflow_cc: +- '2.16' +microarch_level: +- '4' +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 +- 3.11.* *_cpython +- 3.12.* *_cpython +- 3.9.* *_cpython +snappy: +- '1.2' +sqlite: +- '3' +target_platform: +- linux-64 +tensorflow: +- '2.16' +zip_keys: +- - c_compiler_version + - cxx_compiler_version + - cuda_compiler_version +zlib: +- '1' diff --git a/.ci_support/linux_64_cuda_compiler_versionNonemicroarch_level1.yaml b/.ci_support/linux_64_c_compiler_version14cuda_compiler_versionNonecxx_compiler_version14microarch_level1.yaml similarity index 98% rename from .ci_support/linux_64_cuda_compiler_versionNonemicroarch_level1.yaml rename to .ci_support/linux_64_c_compiler_version14cuda_compiler_versionNonecxx_compiler_version14microarch_level1.yaml index 84c8a117f..1ede27015 100644 --- a/.ci_support/linux_64_cuda_compiler_versionNonemicroarch_level1.yaml +++ b/.ci_support/linux_64_c_compiler_version14cuda_compiler_versionNonecxx_compiler_version14microarch_level1.yaml @@ -1,7 +1,7 @@ c_compiler: - gcc c_compiler_version: -- '13' +- '14' c_stdlib: - sysroot c_stdlib_version: @@ -21,7 +21,7 @@ cudnn: cxx_compiler: - gxx cxx_compiler_version: -- '13' +- '14' docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 flatbuffers: diff --git a/.ci_support/linux_64_cuda_compiler_versionNonemicroarch_level3.yaml b/.ci_support/linux_64_c_compiler_version14cuda_compiler_versionNonecxx_compiler_version14microarch_level3.yaml similarity index 98% rename from .ci_support/linux_64_cuda_compiler_versionNonemicroarch_level3.yaml rename to .ci_support/linux_64_c_compiler_version14cuda_compiler_versionNonecxx_compiler_version14microarch_level3.yaml index 13e9d278d..111448c6b 100644 --- a/.ci_support/linux_64_cuda_compiler_versionNonemicroarch_level3.yaml +++ b/.ci_support/linux_64_c_compiler_version14cuda_compiler_versionNonecxx_compiler_version14microarch_level3.yaml @@ -1,7 +1,7 @@ c_compiler: - gcc c_compiler_version: -- '13' +- '14' c_stdlib: - sysroot c_stdlib_version: @@ -21,7 +21,7 @@ cudnn: cxx_compiler: - gxx cxx_compiler_version: -- '13' +- '14' docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 flatbuffers: diff --git a/.ci_support/linux_64_c_compiler_version14cuda_compiler_versionNonecxx_compiler_version14microarch_level4.yaml b/.ci_support/linux_64_c_compiler_version14cuda_compiler_versionNonecxx_compiler_version14microarch_level4.yaml new file mode 100644 index 000000000..fd483d7c4 --- /dev/null +++ b/.ci_support/linux_64_c_compiler_version14cuda_compiler_versionNonecxx_compiler_version14microarch_level4.yaml @@ -0,0 +1,81 @@ +c_compiler: +- gcc +c_compiler_version: +- '14' +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: +- '14' +docker_image: +- quay.io/condaforge/linux-anvil-x86_64: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 +libtensorflow_cc: +- '2.16' +microarch_level: +- '4' +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 +- 3.11.* *_cpython +- 3.12.* *_cpython +- 3.9.* *_cpython +snappy: +- '1.2' +sqlite: +- '3' +target_platform: +- linux-64 +tensorflow: +- '2.16' +zip_keys: +- - c_compiler_version + - cxx_compiler_version + - cuda_compiler_version +zlib: +- '1' diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml index 24dda4b46..7d1218cf4 100644 --- a/.ci_support/osx_64_.yaml +++ b/.ci_support/osx_64_.yaml @@ -5,7 +5,7 @@ MACOSX_SDK_VERSION: c_compiler: - clang c_compiler_version: -- '18' +- '19' c_stdlib: - macosx_deployment_target c_stdlib_version: @@ -21,7 +21,7 @@ cuda_compiler_version: cxx_compiler: - clangxx cxx_compiler_version: -- '18' +- '19' flatbuffers: - 24.12.23 giflib: diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml index dcbc6dd8e..4f9375c12 100644 --- a/.ci_support/osx_arm64_.yaml +++ b/.ci_support/osx_arm64_.yaml @@ -5,7 +5,7 @@ MACOSX_SDK_VERSION: c_compiler: - clang c_compiler_version: -- '18' +- '19' c_stdlib: - macosx_deployment_target c_stdlib_version: @@ -21,7 +21,7 @@ cuda_compiler_version: cxx_compiler: - clangxx cxx_compiler_version: -- '18' +- '19' flatbuffers: - 24.12.23 giflib: diff --git a/.gitattributes b/.gitattributes index 18f114a1f..85ccb8f4f 100644 --- a/.gitattributes +++ b/.gitattributes @@ -24,4 +24,5 @@ bld.bat text eol=crlf /README.md linguist-generated=true azure-pipelines.yml linguist-generated=true build-locally.py linguist-generated=true +pixi.toml linguist-generated=true shippable.yml linguist-generated=true diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml index bf436f473..9f0099a1c 100644 --- a/.github/workflows/conda-build.yml +++ b/.github/workflows/conda-build.yml @@ -21,25 +21,35 @@ jobs: fail-fast: false matrix: include: - - CONFIG: linux_64_cuda_compiler_version12.6microarch_level1 + - CONFIG: linux_64_c_compiler_version13cuda_compiler_version12.6cxx_compiler_version13microarch_level1 UPLOAD_PACKAGES: True os: ubuntu - runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_cuda_compiler_version12.6microa_ha3160103', 'linux', 'x64', 'self-hosted'] + runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_c_compiler_version13cuda_compil_h7c233836', 'linux', 'x64', 'self-hosted'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - - CONFIG: linux_64_cuda_compiler_version12.6microarch_level3 + - CONFIG: linux_64_c_compiler_version13cuda_compiler_version12.6cxx_compiler_version13microarch_level3 UPLOAD_PACKAGES: True os: ubuntu - runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_cuda_compiler_version12.6microa_h1a2f9b5f', 'linux', 'x64', 'self-hosted'] + runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_c_compiler_version13cuda_compil_h5c686a6e', 'linux', 'x64', 'self-hosted'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - - CONFIG: linux_64_cuda_compiler_versionNonemicroarch_level1 + - CONFIG: linux_64_c_compiler_version13cuda_compiler_version12.6cxx_compiler_version13microarch_level4 UPLOAD_PACKAGES: True os: ubuntu - runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_cuda_compiler_versionNonemicroa_h0e112a19', 'linux', 'x64', 'self-hosted'] + runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_c_compiler_version13cuda_compil_hdccdd65d', 'linux', 'x64', 'self-hosted'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - - CONFIG: linux_64_cuda_compiler_versionNonemicroarch_level3 + - CONFIG: linux_64_c_compiler_version14cuda_compiler_versionNonecxx_compiler_version14microarch_level1 UPLOAD_PACKAGES: True os: ubuntu - runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_cuda_compiler_versionNonemicroa_hb1134425', 'linux', 'x64', 'self-hosted'] + runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_c_compiler_version14cuda_compil_he4cd3f1e', 'linux', 'x64', 'self-hosted'] + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + - CONFIG: linux_64_c_compiler_version14cuda_compiler_versionNonecxx_compiler_version14microarch_level3 + UPLOAD_PACKAGES: True + os: ubuntu + runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_c_compiler_version14cuda_compil_h884c0495', 'linux', 'x64', 'self-hosted'] + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + - CONFIG: linux_64_c_compiler_version14cuda_compiler_versionNonecxx_compiler_version14microarch_level4 + UPLOAD_PACKAGES: True + os: ubuntu + runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_c_compiler_version14cuda_compil_h07bf6970', 'linux', 'x64', 'self-hosted'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 steps: @@ -47,6 +57,7 @@ jobs: uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - name: Build on Linux + id: build-linux if: matrix.os == 'ubuntu' env: CONFIG: ${{ matrix.CONFIG }} @@ -77,6 +88,7 @@ jobs: ./.scripts/run_docker_build.sh - name: Build on macOS + id: build-macos if: matrix.os == 'macos' env: CONFIG: ${{ matrix.CONFIG }} @@ -100,6 +112,8 @@ jobs: ./.scripts/run_osx_build.sh - name: Build on windows + id: build-windows + if: matrix.os == 'windows' shell: cmd run: | set "flow_run_id=github_%GITHUB_RUN_ID%" @@ -107,6 +121,9 @@ jobs: set "sha=%GITHUB_SHA%" call ".scripts\run_win_build.bat" env: + # default value; make it explicit, as it needs to match with artefact + # generation below. Not configurable for now, can be revisited later + CONDA_BLD_DIR: C:\bld MINIFORGE_HOME: D:\Miniforge PYTHONUNBUFFERED: 1 CONFIG: ${{ matrix.CONFIG }} @@ -114,5 +131,4 @@ jobs: UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }} BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }} FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }} - STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }} - if: matrix.os == 'windows' \ No newline at end of file + STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }} \ No newline at end of file diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index 6970424c7..64fd2b763 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -97,4 +97,4 @@ fi ( startgroup "Final checks" ) 2> /dev/null -touch "${FEEDSTOCK_ROOT}/build_artifacts/conda-forge-build-done-${CONFIG}" \ No newline at end of file +touch "${FEEDSTOCK_ROOT}/build_artifacts/conda-forge-build-done-${CONFIG}" diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh index 6ee04aa12..b63b5a05a 100755 --- a/.scripts/run_docker_build.sh +++ b/.scripts/run_docker_build.sh @@ -111,4 +111,4 @@ docker run ${DOCKER_RUN_ARGS} \ test -f "$DONE_CANARY" # This closes the last group opened in `build_steps.sh` -( endgroup "Final checks" ) 2> /dev/null \ No newline at end of file +( endgroup "Final checks" ) 2> /dev/null diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 14bc5e47a..a71f1c52c 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -117,4 +117,4 @@ else fi ( endgroup "Uploading packages" ) 2> /dev/null -fi \ No newline at end of file +fi diff --git a/README.md b/README.md index ed7b1f2e7..8d865955e 100644 --- a/README.md +++ b/README.md @@ -37,31 +37,45 @@ Current build status - + - + - + - + + + + + + + @@ -96,6 +110,7 @@ Current release info | [![Conda Recipe](https://img.shields.io/badge/recipe-libtensorflow__framework-green.svg)](https://anaconda.org/conda-forge/libtensorflow_framework) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/libtensorflow_framework.svg)](https://anaconda.org/conda-forge/libtensorflow_framework) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/libtensorflow_framework.svg)](https://anaconda.org/conda-forge/libtensorflow_framework) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/libtensorflow_framework.svg)](https://anaconda.org/conda-forge/libtensorflow_framework) | | [![Conda Recipe](https://img.shields.io/badge/recipe-tensorflow-green.svg)](https://anaconda.org/conda-forge/tensorflow) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/tensorflow.svg)](https://anaconda.org/conda-forge/tensorflow) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/tensorflow.svg)](https://anaconda.org/conda-forge/tensorflow) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/tensorflow.svg)](https://anaconda.org/conda-forge/tensorflow) | | [![Conda Recipe](https://img.shields.io/badge/recipe-tensorflow--avx2-green.svg)](https://anaconda.org/conda-forge/tensorflow-avx2) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/tensorflow-avx2.svg)](https://anaconda.org/conda-forge/tensorflow-avx2) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/tensorflow-avx2.svg)](https://anaconda.org/conda-forge/tensorflow-avx2) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/tensorflow-avx2.svg)](https://anaconda.org/conda-forge/tensorflow-avx2) | +| [![Conda Recipe](https://img.shields.io/badge/recipe-tensorflow--avx512-green.svg)](https://anaconda.org/conda-forge/tensorflow-avx512) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/tensorflow-avx512.svg)](https://anaconda.org/conda-forge/tensorflow-avx512) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/tensorflow-avx512.svg)](https://anaconda.org/conda-forge/tensorflow-avx512) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/tensorflow-avx512.svg)](https://anaconda.org/conda-forge/tensorflow-avx512) | | [![Conda Recipe](https://img.shields.io/badge/recipe-tensorflow--base-green.svg)](https://anaconda.org/conda-forge/tensorflow-base) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/tensorflow-base.svg)](https://anaconda.org/conda-forge/tensorflow-base) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/tensorflow-base.svg)](https://anaconda.org/conda-forge/tensorflow-base) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/tensorflow-base.svg)](https://anaconda.org/conda-forge/tensorflow-base) | | [![Conda Recipe](https://img.shields.io/badge/recipe-tensorflow--cpu-green.svg)](https://anaconda.org/conda-forge/tensorflow-cpu) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/tensorflow-cpu.svg)](https://anaconda.org/conda-forge/tensorflow-cpu) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/tensorflow-cpu.svg)](https://anaconda.org/conda-forge/tensorflow-cpu) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/tensorflow-cpu.svg)](https://anaconda.org/conda-forge/tensorflow-cpu) | | [![Conda Recipe](https://img.shields.io/badge/recipe-tensorflow--estimator-green.svg)](https://anaconda.org/conda-forge/tensorflow-estimator) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/tensorflow-estimator.svg)](https://anaconda.org/conda-forge/tensorflow-estimator) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/tensorflow-estimator.svg)](https://anaconda.org/conda-forge/tensorflow-estimator) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/tensorflow-estimator.svg)](https://anaconda.org/conda-forge/tensorflow-estimator) | @@ -112,16 +127,16 @@ conda config --add channels conda-forge conda config --set channel_priority strict ``` -Once the `conda-forge` channel has been enabled, `libtensorflow, libtensorflow_cc, libtensorflow_framework, tensorflow, tensorflow-avx2, tensorflow-base, tensorflow-cpu, tensorflow-estimator, tensorflow-gpu, tensorflow-sse3` can be installed with `conda`: +Once the `conda-forge` channel has been enabled, `libtensorflow, libtensorflow_cc, libtensorflow_framework, tensorflow, tensorflow-avx2, tensorflow-avx512, tensorflow-base, tensorflow-cpu, tensorflow-estimator, tensorflow-gpu, tensorflow-sse3` can be installed with `conda`: ``` -conda install libtensorflow libtensorflow_cc libtensorflow_framework tensorflow tensorflow-avx2 tensorflow-base tensorflow-cpu tensorflow-estimator tensorflow-gpu tensorflow-sse3 +conda install libtensorflow libtensorflow_cc libtensorflow_framework tensorflow tensorflow-avx2 tensorflow-avx512 tensorflow-base tensorflow-cpu tensorflow-estimator tensorflow-gpu tensorflow-sse3 ``` or with `mamba`: ``` -mamba install libtensorflow libtensorflow_cc libtensorflow_framework tensorflow tensorflow-avx2 tensorflow-base tensorflow-cpu tensorflow-estimator tensorflow-gpu tensorflow-sse3 +mamba install libtensorflow libtensorflow_cc libtensorflow_framework tensorflow tensorflow-avx2 tensorflow-avx512 tensorflow-base tensorflow-cpu tensorflow-estimator tensorflow-gpu tensorflow-sse3 ``` It is possible to list all of the versions of `libtensorflow` available on your platform with `conda`: diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml index d0f2f6a01..8baedab96 100644 --- a/recipe/conda_build_config.yaml +++ b/recipe/conda_build_config.yaml @@ -3,6 +3,7 @@ github_actions_labels: # [linux] microarch_level: - 1 - 3 # [linux and x86_64] +- 4 # [linux and x86_64] libabseil: - '20240722' libgrpc: From 9c98b11402895f6c14546be207b21f104563d310 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Thu, 19 Feb 2026 18:33:07 +0000 Subject: [PATCH 2/9] build executables and externals with v3 --- recipe/build.sh | 3 +++ recipe/build_common.sh | 19 ++++++++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/recipe/build.sh b/recipe/build.sh index 6041b3523..5a90ef1a5 100644 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -2,6 +2,9 @@ set -ex +# See https://github.com/conda-forge/bazel-feedstock/issues/273 +find $BUILD_PREFIX/share/bazel/install | xargs -n 1 touch -mt 203601010101 + for ver in 3.9 3.10 3.11 3.12; do export PY_VER=$ver echo "Building for $PY_VER" diff --git a/recipe/build_common.sh b/recipe/build_common.sh index 254b3e778..77f5e5da7 100644 --- a/recipe/build_common.sh +++ b/recipe/build_common.sh @@ -76,12 +76,17 @@ export BAZEL_MKL_OPT="" mkdir -p ./bazel_output_base export BAZEL_OPTS="" # Set this to something as otherwise, it would include CFLAGS which itself contains a host path and this then breaks bazel's include path validation. -if [[ "${target_platform}" != *-64 ]]; then - export CC_OPT_FLAGS="-O2" -elif [[ "${microarch_level}" == "1" ]]; then - export CC_OPT_FLAGS="-O2 -march=nocona -mtune=haswell" -else - export CC_OPT_FLAGS="-O2 -march=x86-64-v${microarch_level}" +export CC_OPT_FLAGS="-O2" + +if [[ "${target_platform}" == "linux-64" && "${microarch_level}" == "4" && "${CROSSCOMPILING_EMULATOR:-}" != "" ]]; then + # we can't use the x86-64-v4 emulator from Intel with bazel. Instead build with + # - v4 for TF libraries + # - v3 for external libraries + # - v3 for TF executables + CFLAGS=$(echo "$CFLAGS" | sed 's/-march=x86-64-v4/-march=x86-64-v3/g') + CXXFLAGS=$(echo "$CXXFLAGS" | sed 's/-march=x86-64-v4/-march=x86-64-v3/g') + CPPFLAGS=$(echo "$CPPFLAGS" | sed 's/-march=x86-64-v4/-march=x86-64-v3/g') + BAZEL_OPTS="${BAZEL_OPTS} --copt=-march=x86-64-v${microarch_level} --host_copt=-march=x86-64-v3" fi # Quick debug: @@ -237,7 +242,7 @@ rm -f tensorflow/lite/acceleration/configuration/configuration_generated.h sed -ie "s;BUILD_PREFIX;${BUILD_PREFIX};g" tensorflow/tools/pip_package/build_pip_package.py # build using bazel -bazel ${BAZEL_OPTS} build ${BUILD_TARGET} +bazel build ${BUILD_TARGET} ${BAZEL_OPTS} # build a whl file mkdir -p $SRC_DIR/tensorflow_pkg From 03ac2736a4de316ea6e0443a4664f31e0ee04e7e Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Thu, 19 Feb 2026 19:07:07 +0000 Subject: [PATCH 3/9] MNT: Re-rendered with conda-smithy 3.55.1 and conda-forge-pinning 2026.02.19.14.04.59 Other tools: - conda-build 25.9.0 - rattler-build 0.47.1 - rattler-build-conda-compat 1.4.5 --- ...compiler_versionNonemicroarch_level1.yaml} | 2 +- ...compiler_versionNonemicroarch_level3.yaml} | 2 +- ...compiler_versionNonemicroarch_level4.yaml} | 2 +- ...nux_aarch64_cuda_compiler_versionNone.yaml | 76 +++++++++++++++++++ .github/workflows/conda-build.yml | 29 ++++--- README.md | 7 +- 6 files changed, 100 insertions(+), 18 deletions(-) rename .ci_support/{linux_64_cuda_compiler_version12.8microarch_level1.yaml => linux_64_cuda_compiler_versionNonemicroarch_level1.yaml} (99%) rename .ci_support/{linux_64_cuda_compiler_version12.8microarch_level3.yaml => linux_64_cuda_compiler_versionNonemicroarch_level3.yaml} (99%) rename .ci_support/{linux_64_cuda_compiler_version12.8microarch_level4.yaml => linux_64_cuda_compiler_versionNonemicroarch_level4.yaml} (99%) create mode 100644 .ci_support/linux_aarch64_cuda_compiler_versionNone.yaml diff --git a/.ci_support/linux_64_cuda_compiler_version12.8microarch_level1.yaml b/.ci_support/linux_64_cuda_compiler_versionNonemicroarch_level1.yaml similarity index 99% rename from .ci_support/linux_64_cuda_compiler_version12.8microarch_level1.yaml rename to .ci_support/linux_64_cuda_compiler_versionNonemicroarch_level1.yaml index 5aff393aa..257ac4f67 100644 --- a/.ci_support/linux_64_cuda_compiler_version12.8microarch_level1.yaml +++ b/.ci_support/linux_64_cuda_compiler_versionNonemicroarch_level1.yaml @@ -13,7 +13,7 @@ channel_targets: cuda_compiler: - cuda-nvcc cuda_compiler_version: -- '12.8' +- None cudnn: - '9' cxx_compiler: diff --git a/.ci_support/linux_64_cuda_compiler_version12.8microarch_level3.yaml b/.ci_support/linux_64_cuda_compiler_versionNonemicroarch_level3.yaml similarity index 99% rename from .ci_support/linux_64_cuda_compiler_version12.8microarch_level3.yaml rename to .ci_support/linux_64_cuda_compiler_versionNonemicroarch_level3.yaml index c5a81064d..5be6e6f38 100644 --- a/.ci_support/linux_64_cuda_compiler_version12.8microarch_level3.yaml +++ b/.ci_support/linux_64_cuda_compiler_versionNonemicroarch_level3.yaml @@ -13,7 +13,7 @@ channel_targets: cuda_compiler: - cuda-nvcc cuda_compiler_version: -- '12.8' +- None cudnn: - '9' cxx_compiler: diff --git a/.ci_support/linux_64_cuda_compiler_version12.8microarch_level4.yaml b/.ci_support/linux_64_cuda_compiler_versionNonemicroarch_level4.yaml similarity index 99% rename from .ci_support/linux_64_cuda_compiler_version12.8microarch_level4.yaml rename to .ci_support/linux_64_cuda_compiler_versionNonemicroarch_level4.yaml index 5edd7e057..3f964bf28 100644 --- a/.ci_support/linux_64_cuda_compiler_version12.8microarch_level4.yaml +++ b/.ci_support/linux_64_cuda_compiler_versionNonemicroarch_level4.yaml @@ -13,7 +13,7 @@ channel_targets: cuda_compiler: - cuda-nvcc cuda_compiler_version: -- '12.8' +- None cudnn: - '9' cxx_compiler: diff --git a/.ci_support/linux_aarch64_cuda_compiler_versionNone.yaml b/.ci_support/linux_aarch64_cuda_compiler_versionNone.yaml new file mode 100644 index 000000000..3cb53271e --- /dev/null +++ b/.ci_support/linux_aarch64_cuda_compiler_versionNone.yaml @@ -0,0 +1,76 @@ +c_compiler: +- gcc +c_compiler_version: +- '11' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- cuda-nvcc +cuda_compiler_version: +- None +cxx_compiler: +- gxx +cxx_compiler_version: +- '11' +docker_image: +- quay.io/condaforge/linux-anvil-x86_64:alma9 +flatbuffers: +- 25.9.23 +giflib: +- '5.2' +github_actions_labels: +- cirun-openstack-cpu-2xlarge +icu: +- '78' +libabseil: +- '20250512' +libcurl: +- '8' +libgrpc: +- '1.73' +libjpeg_turbo: +- '3' +libpng: +- '1.6' +libprotobuf: +- 6.31.1 +libtensorflow_cc: +- '2.16' +microarch_level: +- '1' +numpy: +- '2' +openssl: +- '3.5' +perl: +- 5.32.1 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.10.* *_cpython +- 3.11.* *_cpython +- 3.12.* *_cpython +- 3.13.* *_cp313 +snappy: +- '1.2' +sqlite: +- '3' +target_platform: +- linux-aarch64 +tensorflow: +- '2.16' +zip_keys: +- - c_compiler_version + - cxx_compiler_version + - c_stdlib_version + - cuda_compiler_version +zlib: +- '1' diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml index 6839a6cfb..db7f6d5e4 100644 --- a/.github/workflows/conda-build.yml +++ b/.github/workflows/conda-build.yml @@ -21,35 +21,40 @@ jobs: fail-fast: false matrix: include: - - CONFIG: linux_64_cuda_compiler_version12.8microarch_level1 + - CONFIG: linux_64_cuda_compiler_version12.9microarch_level1 UPLOAD_PACKAGES: True os: ubuntu - runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_cuda_compiler_version12.8microa_hc8cea6d2', 'linux', 'x64', 'self-hosted'] + runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_cuda_compiler_version12.9microa_h28a6e8b1', 'linux', 'x64', 'self-hosted'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - - CONFIG: linux_64_cuda_compiler_version12.8microarch_level3 + - CONFIG: linux_64_cuda_compiler_version12.9microarch_level3 UPLOAD_PACKAGES: True os: ubuntu - runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_cuda_compiler_version12.8microa_h82e5350b', 'linux', 'x64', 'self-hosted'] + runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_cuda_compiler_version12.9microa_h764a83b2', 'linux', 'x64', 'self-hosted'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - - CONFIG: linux_64_cuda_compiler_version12.8microarch_level4 + - CONFIG: linux_64_cuda_compiler_version12.9microarch_level4 UPLOAD_PACKAGES: True os: ubuntu - runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_cuda_compiler_version12.8microa_h205e9a8d', 'linux', 'x64', 'self-hosted'] + runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_cuda_compiler_version12.9microa_h5fa35844', 'linux', 'x64', 'self-hosted'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - - CONFIG: linux_64_cuda_compiler_version12.9microarch_level1 + - CONFIG: linux_64_cuda_compiler_versionNonemicroarch_level1 UPLOAD_PACKAGES: True os: ubuntu - runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_cuda_compiler_version12.9microa_h28a6e8b1', 'linux', 'x64', 'self-hosted'] + runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_cuda_compiler_versionNonemicroa_h0e112a19', 'linux', 'x64', 'self-hosted'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - - CONFIG: linux_64_cuda_compiler_version12.9microarch_level3 + - CONFIG: linux_64_cuda_compiler_versionNonemicroarch_level3 UPLOAD_PACKAGES: True os: ubuntu - runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_cuda_compiler_version12.9microa_h764a83b2', 'linux', 'x64', 'self-hosted'] + runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_cuda_compiler_versionNonemicroa_hb1134425', 'linux', 'x64', 'self-hosted'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - - CONFIG: linux_64_cuda_compiler_version12.9microarch_level4 + - CONFIG: linux_64_cuda_compiler_versionNonemicroarch_level4 UPLOAD_PACKAGES: True os: ubuntu - runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_cuda_compiler_version12.9microa_h5fa35844', 'linux', 'x64', 'self-hosted'] + runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_64_cuda_compiler_versionNonemicroa_h0ea2bc29', 'linux', 'x64', 'self-hosted'] + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + - CONFIG: linux_aarch64_cuda_compiler_versionNone + UPLOAD_PACKAGES: True + os: ubuntu + runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_aarch64_cuda_compiler_versionNone', 'linux', 'x64', 'self-hosted'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 steps: diff --git a/README.md b/README.md index 33f10f3c6..f25775e13 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,7 @@ Current release info | [![Conda Recipe](https://img.shields.io/badge/recipe-tensorflow--avx2-green.svg)](https://anaconda.org/conda-forge/tensorflow-avx2) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/tensorflow-avx2.svg)](https://anaconda.org/conda-forge/tensorflow-avx2) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/tensorflow-avx2.svg)](https://anaconda.org/conda-forge/tensorflow-avx2) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/tensorflow-avx2.svg)](https://anaconda.org/conda-forge/tensorflow-avx2) | | [![Conda Recipe](https://img.shields.io/badge/recipe-tensorflow--avx512-green.svg)](https://anaconda.org/conda-forge/tensorflow-avx512) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/tensorflow-avx512.svg)](https://anaconda.org/conda-forge/tensorflow-avx512) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/tensorflow-avx512.svg)](https://anaconda.org/conda-forge/tensorflow-avx512) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/tensorflow-avx512.svg)](https://anaconda.org/conda-forge/tensorflow-avx512) | | [![Conda Recipe](https://img.shields.io/badge/recipe-tensorflow--base-green.svg)](https://anaconda.org/conda-forge/tensorflow-base) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/tensorflow-base.svg)](https://anaconda.org/conda-forge/tensorflow-base) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/tensorflow-base.svg)](https://anaconda.org/conda-forge/tensorflow-base) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/tensorflow-base.svg)](https://anaconda.org/conda-forge/tensorflow-base) | +| [![Conda Recipe](https://img.shields.io/badge/recipe-tensorflow--cpu-green.svg)](https://anaconda.org/conda-forge/tensorflow-cpu) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/tensorflow-cpu.svg)](https://anaconda.org/conda-forge/tensorflow-cpu) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/tensorflow-cpu.svg)](https://anaconda.org/conda-forge/tensorflow-cpu) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/tensorflow-cpu.svg)](https://anaconda.org/conda-forge/tensorflow-cpu) | | [![Conda Recipe](https://img.shields.io/badge/recipe-tensorflow--estimator-green.svg)](https://anaconda.org/conda-forge/tensorflow-estimator) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/tensorflow-estimator.svg)](https://anaconda.org/conda-forge/tensorflow-estimator) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/tensorflow-estimator.svg)](https://anaconda.org/conda-forge/tensorflow-estimator) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/tensorflow-estimator.svg)](https://anaconda.org/conda-forge/tensorflow-estimator) | | [![Conda Recipe](https://img.shields.io/badge/recipe-tensorflow--gpu-green.svg)](https://anaconda.org/conda-forge/tensorflow-gpu) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/tensorflow-gpu.svg)](https://anaconda.org/conda-forge/tensorflow-gpu) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/tensorflow-gpu.svg)](https://anaconda.org/conda-forge/tensorflow-gpu) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/tensorflow-gpu.svg)](https://anaconda.org/conda-forge/tensorflow-gpu) | | [![Conda Recipe](https://img.shields.io/badge/recipe-tensorflow--sse3-green.svg)](https://anaconda.org/conda-forge/tensorflow-sse3) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/tensorflow-sse3.svg)](https://anaconda.org/conda-forge/tensorflow-sse3) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/tensorflow-sse3.svg)](https://anaconda.org/conda-forge/tensorflow-sse3) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/tensorflow-sse3.svg)](https://anaconda.org/conda-forge/tensorflow-sse3) | @@ -52,16 +53,16 @@ conda config --add channels conda-forge conda config --set channel_priority strict ``` -Once the `conda-forge` channel has been enabled, `libtensorflow, libtensorflow_cc, libtensorflow_framework, tensorflow, tensorflow-avx2, tensorflow-avx512, tensorflow-base, tensorflow-estimator, tensorflow-gpu, tensorflow-sse3` can be installed with `conda`: +Once the `conda-forge` channel has been enabled, `libtensorflow, libtensorflow_cc, libtensorflow_framework, tensorflow, tensorflow-avx2, tensorflow-avx512, tensorflow-base, tensorflow-cpu, tensorflow-estimator, tensorflow-gpu, tensorflow-sse3` can be installed with `conda`: ``` -conda install libtensorflow libtensorflow_cc libtensorflow_framework tensorflow tensorflow-avx2 tensorflow-avx512 tensorflow-base tensorflow-estimator tensorflow-gpu tensorflow-sse3 +conda install libtensorflow libtensorflow_cc libtensorflow_framework tensorflow tensorflow-avx2 tensorflow-avx512 tensorflow-base tensorflow-cpu tensorflow-estimator tensorflow-gpu tensorflow-sse3 ``` or with `mamba`: ``` -mamba install libtensorflow libtensorflow_cc libtensorflow_framework tensorflow tensorflow-avx2 tensorflow-avx512 tensorflow-base tensorflow-estimator tensorflow-gpu tensorflow-sse3 +mamba install libtensorflow libtensorflow_cc libtensorflow_framework tensorflow tensorflow-avx2 tensorflow-avx512 tensorflow-base tensorflow-cpu tensorflow-estimator tensorflow-gpu tensorflow-sse3 ``` It is possible to list all of the versions of `libtensorflow` available on your platform with `conda`: From 9dd12073ef4cdc79817336d9a3b941dd177ba6e5 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Thu, 19 Feb 2026 19:31:40 +0000 Subject: [PATCH 4/9] remove 12.8 migrator --- recipe/meta.yaml | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index b3074c7c8..279be0e36 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -390,21 +390,20 @@ outputs: - test_tensorflow.py requires: - pip - imports: - - tensorflow # [build_platform == target_platform] commands: + - alias run=${CROSSCOMPILING_EMULATOR} - pip check # [build_platform == target_platform] - cat test_tensorflow.py # [unix] - - python test_tensorflow.py # [build_platform == target_platform] + - run python test_tensorflow.py # [build_platform == target_platform] - tf_upgrade_v2 --help # [build_platform == target_platform] # --help exits with exit code 1 - test -x $PREFIX/bin/saved_model_cli # [unix] - - tflite_convert --help # [build_platform == target_platform] - - toco --help # [build_platform == target_platform] - - python -c 'import tensorflow as tf; assert tf.test.is_built_with_cuda()' # [cuda_compiler_version != "None" and build_platform == target_platform] - - python -c 'import tensorflow as tf; assert not tf.test.is_built_with_cuda()' # [cuda_compiler_version == "None" and build_platform == target_platform] + - run tflite_convert --help # [build_platform == target_platform] + - run toco --help # [build_platform == target_platform] + - run python -c 'import tensorflow as tf; assert tf.test.is_built_with_cuda()' # [cuda_compiler_version != "None" and build_platform == target_platform] + - run python -c 'import tensorflow as tf; assert not tf.test.is_built_with_cuda()' # [cuda_compiler_version == "None" and build_platform == target_platform] # See https://github.com/conda-forge/tensorflow-feedstock/issues/364 - - python -c "import tensorflow as tf;graph = tf.function(lambda x:x).get_concrete_function(1.).graph;tf.compat.v1.train.export_meta_graph(graph=graph,graph_def=graph.as_graph_def())" # [build_platform == target_platform] + - run python -c "import tensorflow as tf;graph = tf.function(lambda x:x).get_concrete_function(1.).graph;tf.compat.v1.train.export_meta_graph(graph=graph,graph_def=graph.as_graph_def())" # [build_platform == target_platform] - name: tensorflow-estimator script: build_estimator.sh # [unix] @@ -565,8 +564,9 @@ outputs: run: - tensorflow {{ version }} cpu*_{{ PKG_BUILDNUM }} test: - imports: - - tensorflow # [build_platform == target_platform] + commands: + - alias run=${CROSSCOMPILING_EMULATOR} # [build_platform == target_platform] + - run python -c "import tensorflow" # [build_platform == target_platform] - name: tensorflow-gpu build: @@ -576,8 +576,9 @@ outputs: run: - tensorflow {{ version }} cuda{{ cuda_compiler_version | replace('.', '') }}*_{{ PKG_BUILDNUM }} test: - imports: - - tensorflow # [build_platform == target_platform] + commands: + - alias run=${CROSSCOMPILING_EMULATOR} # [build_platform == target_platform] + - run python -c "import tensorflow" # [build_platform == target_platform] - name: tensorflow-sse3 build: @@ -594,8 +595,9 @@ outputs: run: - {{ pin_subpackage("tensorflow", exact=True) }} test: - imports: - - tensorflow + commands: + - alias run=${CROSSCOMPILING_EMULATOR} + - run python -c "import tensorflow" - name: tensorflow-avx2 build: @@ -612,8 +614,9 @@ outputs: run: - {{ pin_subpackage("tensorflow", exact=True) }} test: - imports: - - tensorflow + commands: + - alias run=${CROSSCOMPILING_EMULATOR} + - run python -c "import tensorflow" - name: tensorflow-avx512 build: @@ -630,8 +633,9 @@ outputs: run: - {{ pin_subpackage("tensorflow", exact=True) }} test: - imports: - - tensorflow + commands: + - alias run=${CROSSCOMPILING_EMULATOR} + - run python -c "import tensorflow" about: home: http://tensorflow.org/ From a784d8db47519c245c593b2e14175b3a4793daad Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Thu, 19 Feb 2026 19:58:24 +0000 Subject: [PATCH 5/9] commit removal --- .ci_support/migrations/cuda128.yaml | 52 ----------------------------- 1 file changed, 52 deletions(-) delete mode 100644 .ci_support/migrations/cuda128.yaml diff --git a/.ci_support/migrations/cuda128.yaml b/.ci_support/migrations/cuda128.yaml deleted file mode 100644 index c6fa8e4d3..000000000 --- a/.ci_support/migrations/cuda128.yaml +++ /dev/null @@ -1,52 +0,0 @@ -migrator_ts: 1738229377 -__migrator: - kind: - version - migration_number: - 1 - build_number: - 1 - paused: false - use_local: true - override_cbc_keys: - - cuda_compiler_stub - check_solvable: false - primary_key: cuda_compiler_version - ordering: - cuda_compiler_version: - - 11.8 - - 12.4 - - 12.6 - - None - - 12.8 - - 12.9 - - 13.0 - 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_version: # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 12.8 # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - -c_stdlib_version: # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 2.17 # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - -cudnn: # [(linux or win) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 9 # [(linux or win) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - -c_compiler_version: # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 11 # [linux and aarch64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 14 # [linux and x86_64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - -cxx_compiler_version: # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 11 # [linux and aarch64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 14 # [linux and x86_64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - -fortran_compiler_version: # [linux and (x86_64 or aarch64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 11 # [linux and aarch64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 14 # [linux and x86_64 and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] From 8f97d7f077133e24dc8c9623abbd6a9b154b608f Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Thu, 19 Feb 2026 20:03:23 +0000 Subject: [PATCH 6/9] fix test --- recipe/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 279be0e36..bc78db214 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -395,7 +395,7 @@ outputs: - pip check # [build_platform == target_platform] - cat test_tensorflow.py # [unix] - run python test_tensorflow.py # [build_platform == target_platform] - - tf_upgrade_v2 --help # [build_platform == target_platform] + - run tf_upgrade_v2 --help # [build_platform == target_platform] # --help exits with exit code 1 - test -x $PREFIX/bin/saved_model_cli # [unix] - run tflite_convert --help # [build_platform == target_platform] From 083c4f4ed8a7a7101f17c2acfa7a00282d3c25c7 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Thu, 26 Feb 2026 18:54:46 +0000 Subject: [PATCH 7/9] fix emulation --- recipe/meta.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index bc78db214..de15cfb86 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -391,7 +391,7 @@ outputs: requires: - pip commands: - - alias run=${CROSSCOMPILING_EMULATOR} + - function run() { ${CROSSCOMPILING_EMULATOR} $@; } - pip check # [build_platform == target_platform] - cat test_tensorflow.py # [unix] - run python test_tensorflow.py # [build_platform == target_platform] @@ -411,7 +411,7 @@ outputs: build: # tensorflow 2.18 doesn't support py313 until 2.20, see # https://github.com/tensorflow/tensorflow/issues/78774 - skip: true # [py==313] + skip: true # [py==313 or microarch_level != 1] string: cuda{{ cuda_compiler_version | replace('.', '') }}py{{ CONDA_PY }}h{{ PKG_HASH }}_{{ PKG_BUILDNUM }} # [cuda_compiler_version != "None"] string: cpu_py{{ CONDA_PY }}h{{ PKG_HASH }}_{{ PKG_BUILDNUM }} # [cuda_compiler_version == "None"] requirements: @@ -565,7 +565,7 @@ outputs: - tensorflow {{ version }} cpu*_{{ PKG_BUILDNUM }} test: commands: - - alias run=${CROSSCOMPILING_EMULATOR} # [build_platform == target_platform] + - function run() { ${CROSSCOMPILING_EMULATOR} $@; } # [build_platform == target_platform] - run python -c "import tensorflow" # [build_platform == target_platform] - name: tensorflow-gpu @@ -577,7 +577,7 @@ outputs: - tensorflow {{ version }} cuda{{ cuda_compiler_version | replace('.', '') }}*_{{ PKG_BUILDNUM }} test: commands: - - alias run=${CROSSCOMPILING_EMULATOR} # [build_platform == target_platform] + - function run() { ${CROSSCOMPILING_EMULATOR} $@; } # [build_platform == target_platform] - run python -c "import tensorflow" # [build_platform == target_platform] - name: tensorflow-sse3 @@ -596,7 +596,7 @@ outputs: - {{ pin_subpackage("tensorflow", exact=True) }} test: commands: - - alias run=${CROSSCOMPILING_EMULATOR} + - function run() { ${CROSSCOMPILING_EMULATOR} $@; } - run python -c "import tensorflow" - name: tensorflow-avx2 @@ -615,7 +615,7 @@ outputs: - {{ pin_subpackage("tensorflow", exact=True) }} test: commands: - - alias run=${CROSSCOMPILING_EMULATOR} + - function run() { ${CROSSCOMPILING_EMULATOR} $@; } - run python -c "import tensorflow" - name: tensorflow-avx512 @@ -634,7 +634,7 @@ outputs: - {{ pin_subpackage("tensorflow", exact=True) }} test: commands: - - alias run=${CROSSCOMPILING_EMULATOR} + - function run() { ${CROSSCOMPILING_EMULATOR} $@; } - run python -c "import tensorflow" about: From a395376c91ec1fe6224a0f5e3280ee215c49ee57 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Thu, 26 Feb 2026 18:55:06 +0000 Subject: [PATCH 8/9] remove tensorflow-estimator --- recipe/build_estimator.sh | 16 ------------ recipe/meta.yaml | 55 --------------------------------------- 2 files changed, 71 deletions(-) delete mode 100644 recipe/build_estimator.sh diff --git a/recipe/build_estimator.sh b/recipe/build_estimator.sh deleted file mode 100644 index d4c9152ef..000000000 --- a/recipe/build_estimator.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -set -exuo pipefail - -pushd tensorflow-estimator - -WHEEL_DIR=${PWD}/wheel_dir${PY_VER} -mkdir -p ${WHEEL_DIR} -if [[ "${build_platform}" == linux-* ]]; then - $RECIPE_DIR/add_py_toolchain.sh -fi -bazel build tensorflow_estimator/tools/pip_package:build_pip_package -bazel-bin/tensorflow_estimator/tools/pip_package/build_pip_package ${WHEEL_DIR} -${PYTHON} -m pip install --no-deps ${WHEEL_DIR}/*.whl -bazel clean -popd diff --git a/recipe/meta.yaml b/recipe/meta.yaml index de15cfb86..46531ee00 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,5 +1,4 @@ {% set version = "2.19.1" %} -{% set estimator_version = "2.15.0" %} {% set build = 3 %} {% if cuda_compiler_version != "None" %} @@ -77,9 +76,6 @@ source: # backport https://github.com/openxla/xla/pull/22572 into vendored xla - patches/0044-PR-22572-Fix-build-break-in-convolution_thunk_intern.patch - patches/0045-Force-python-wheel-architecture-to-aarch64.patch # [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 build: number: {{ build }} @@ -381,7 +377,6 @@ outputs: run: - python - {{ pin_subpackage('tensorflow-base', exact=True) }} - - {{ pin_subpackage('tensorflow-estimator', exact=True) }} # avoid that people without GPUs needlessly download ~0.5-1GB # This also helps mamba give preference to the CPU build - __cuda # [cuda_compiler_version != "None"] @@ -405,56 +400,6 @@ outputs: # See https://github.com/conda-forge/tensorflow-feedstock/issues/364 - run python -c "import tensorflow as tf;graph = tf.function(lambda x:x).get_concrete_function(1.).graph;tf.compat.v1.train.export_meta_graph(graph=graph,graph_def=graph.as_graph_def())" # [build_platform == target_platform] - - name: tensorflow-estimator - script: build_estimator.sh # [unix] - script: build_estimator.bat # [win] - build: - # tensorflow 2.18 doesn't support py313 until 2.20, see - # https://github.com/tensorflow/tensorflow/issues/78774 - skip: true # [py==313 or microarch_level != 1] - string: cuda{{ cuda_compiler_version | replace('.', '') }}py{{ CONDA_PY }}h{{ PKG_HASH }}_{{ PKG_BUILDNUM }} # [cuda_compiler_version != "None"] - string: cpu_py{{ CONDA_PY }}h{{ PKG_HASH }}_{{ PKG_BUILDNUM }} # [cuda_compiler_version == "None"] - requirements: - build: - - {{ compiler('c') }} - - {{ stdlib("c") }} - - {{ compiler('cxx') }} - # Keep the cuda compiler here since it helps package solvers - # decide on the cuda variant - # https://github.com/conda-forge/tensorflow-feedstock/issues/162 - - {{ compiler('cuda') }} # [cuda_compiler_version != "None"] - - x86_64-microarch-level {{ microarch_level }} # [linux and x86_64] - - bazel 6.* - - bazel-toolchain - - python # [build_platform != target_platform] - - cross-python_{{ target_platform }} # [build_platform != target_platform] - - libabseil # [build_platform != target_platform] - - libgrpc # [build_platform != target_platform] - - icu # [build_platform != target_platform] - - {{ pin_subpackage('tensorflow-base') }} # [build_platform != target_platform] - host: - - python - - pip - - packaging - - setuptools - - wheel - # This ensures that a consistent version of openssl is chosen between - # all packages. - # https://github.com/conda-forge/conda-forge.github.io/issues/1528 - - openssl - - {{ pin_subpackage('tensorflow-base', exact=True) }} - # Keep the cuda version here since it helps package solvers - # decide on the cuda variant - - cuda-version {{ cuda_compiler_version }} # [cuda_compiler_version != "None"] - run: - - python - - {{ pin_subpackage('tensorflow-base', exact=True) }} - test: - requires: - - pip - commands: - - pip check # [build_platform == target_platform] - - name: libtensorflow script: cp_libtensorflow.sh build: From 18d3f1e9b7bb169cd3009a45806b4ba67222b793 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Thu, 26 Feb 2026 18:55:57 +0000 Subject: [PATCH 9/9] skip level = 1 --- recipe/meta.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 46531ee00..ac034836d 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -86,6 +86,7 @@ build: skip: true # [osx] # TODO: debug issues with CUDA cross-compilation skip: true # [aarch64 and cuda_compiler_version != "None"] + skip: true # [microarch_level == 1] requirements: build:
VariantStatus
linux_64_cuda_compiler_version12.6microarch_level1linux_64_c_compiler_version13cuda_compiler_version12.6cxx_compiler_version13microarch_level1 - variant + variant
linux_64_cuda_compiler_version12.6microarch_level3linux_64_c_compiler_version13cuda_compiler_version12.6cxx_compiler_version13microarch_level3 - variant + variant
linux_64_cuda_compiler_versionNonemicroarch_level1linux_64_c_compiler_version13cuda_compiler_version12.6cxx_compiler_version13microarch_level4 - variant + variant
linux_64_cuda_compiler_versionNonemicroarch_level3linux_64_c_compiler_version14cuda_compiler_versionNonecxx_compiler_version14microarch_level1 - variant + variant + +
linux_64_c_compiler_version14cuda_compiler_versionNonecxx_compiler_version14microarch_level3 + + variant + +
linux_64_c_compiler_version14cuda_compiler_versionNonecxx_compiler_version14microarch_level4 + + variant