diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml deleted file mode 100755 index d08eed2c6..000000000 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ /dev/null @@ -1,40 +0,0 @@ -# This file was generated automatically from conda-smithy. To update this configuration, -# update the conda-forge.yml and/or the recipe/meta.yaml. -# -*- mode: yaml -*- - -jobs: -- job: osx - pool: - vmImage: macOS-15 - strategy: - matrix: - osx_64_: - CONFIG: osx_64_ - UPLOAD_PACKAGES: 'True' - osx_arm64_: - CONFIG: osx_arm64_ - UPLOAD_PACKAGES: 'True' - timeoutInMinutes: 360 - variables: {} - - steps: - # TODO: Fast finish on azure pipelines? - - script: | - export CI=azure - export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt) - export remote_url=$(Build.Repository.Uri) - export sha=$(Build.SourceVersion) - export OSX_FORCE_SDK_DOWNLOAD="1" - 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_osx_build.sh - displayName: Run OSX build - env: - BINSTAR_TOKEN: $(BINSTAR_TOKEN) - FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) - STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) diff --git a/.ci_support/linux_64_cuda_compiler_version12.9microarch_level1.yaml b/.ci_support/linux_64_cuda_compiler_version12.9microarch_level1.yaml deleted file mode 100644 index de7cdabbb..000000000 --- a/.ci_support/linux_64_cuda_compiler_version12.9microarch_level1.yaml +++ /dev/null @@ -1,80 +0,0 @@ -c_compiler: -- gcc -c_compiler_version: -- '14' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- cuda-nvcc -cuda_compiler_version: -- '12.9' -cudnn: -- '9' -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -flatbuffers: -- 25.2.10 -giflib: -- '5.2' -github_actions_labels: -- cirun-openstack-cpu-2xlarge -icu: -- '75' -libabseil: -- '20250512' -libcurl: -- '8' -libgrpc: -- '1.73' -libjpeg_turbo: -- '3' -libpng: -- '1.6' -libprotobuf: -- 6.31.1 -libtensorflow_cc: -- '2.16' -microarch_level: -- '1' -nccl: -- '2' -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-64 -tensorflow: -- '2.16' -zip_keys: -- - c_compiler_version - - cxx_compiler_version - - c_stdlib_version - - cuda_compiler_version -zlib: -- '1' diff --git a/.ci_support/linux_64_cuda_compiler_versionNonemicroarch_level1.yaml b/.ci_support/linux_64_cuda_compiler_versionNonemicroarch_level1.yaml deleted file mode 100644 index cf3f3c57e..000000000 --- a/.ci_support/linux_64_cuda_compiler_versionNonemicroarch_level1.yaml +++ /dev/null @@ -1,80 +0,0 @@ -c_compiler: -- gcc -c_compiler_version: -- '14' -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 -cudnn: -- '9' -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -flatbuffers: -- 25.2.10 -giflib: -- '5.2' -github_actions_labels: -- cirun-openstack-cpu-2xlarge -icu: -- '75' -libabseil: -- '20250512' -libcurl: -- '8' -libgrpc: -- '1.73' -libjpeg_turbo: -- '3' -libpng: -- '1.6' -libprotobuf: -- 6.31.1 -libtensorflow_cc: -- '2.16' -microarch_level: -- '1' -nccl: -- '2' -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-64 -tensorflow: -- '2.16' -zip_keys: -- - c_compiler_version - - cxx_compiler_version - - c_stdlib_version - - cuda_compiler_version -zlib: -- '1' diff --git a/.ci_support/linux_64_cuda_compiler_versionNonemicroarch_level3.yaml b/.ci_support/linux_64_cuda_compiler_versionNonemicroarch_level3.yaml deleted file mode 100644 index 6e720a3ff..000000000 --- a/.ci_support/linux_64_cuda_compiler_versionNonemicroarch_level3.yaml +++ /dev/null @@ -1,80 +0,0 @@ -c_compiler: -- gcc -c_compiler_version: -- '14' -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 -cudnn: -- '9' -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -flatbuffers: -- 25.2.10 -giflib: -- '5.2' -github_actions_labels: -- cirun-openstack-cpu-2xlarge -icu: -- '75' -libabseil: -- '20250512' -libcurl: -- '8' -libgrpc: -- '1.73' -libjpeg_turbo: -- '3' -libpng: -- '1.6' -libprotobuf: -- 6.31.1 -libtensorflow_cc: -- '2.16' -microarch_level: -- '3' -nccl: -- '2' -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-64 -tensorflow: -- '2.16' -zip_keys: -- - c_compiler_version - - cxx_compiler_version - - c_stdlib_version - - cuda_compiler_version -zlib: -- '1' diff --git a/.ci_support/linux_aarch64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11.yaml b/.ci_support/linux_aarch64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11.yaml deleted file mode 100644 index ab16ae612..000000000 --- a/.ci_support/linux_aarch64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11.yaml +++ /dev/null @@ -1,76 +0,0 @@ -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.2.10 -giflib: -- '5.2' -github_actions_labels: -- cirun-openstack-cpu-2xlarge -icu: -- '75' -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/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml deleted file mode 100644 index c256efd13..000000000 --- a/.ci_support/osx_64_.yaml +++ /dev/null @@ -1,74 +0,0 @@ -MACOSX_DEPLOYMENT_TARGET: -- '11.0' -MACOSX_SDK_VERSION: -- '11.0' -c_compiler: -- clang -c_compiler_version: -- '19' -c_stdlib: -- macosx_deployment_target -c_stdlib_version: -- '11.0' -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- cuda-nvcc -cuda_compiler_version: -- None -cxx_compiler: -- clangxx -cxx_compiler_version: -- '19' -flatbuffers: -- 25.2.10 -giflib: -- '5.2' -icu: -- '75' -libabseil: -- '20250512' -libcurl: -- '8' -libgrpc: -- '1.73' -libjpeg_turbo: -- '3' -libpng: -- '1.6' -libprotobuf: -- 6.31.1 -libtensorflow_cc: -- '2.16' -macos_machine: -- x86_64-apple-darwin13.4.0 -microarch_level: -- '1' -numpy: -- '2' -openssl: -- '3.5' -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: -- osx-64 -tensorflow: -- '2.16' -zip_keys: -- - c_compiler_version - - cxx_compiler_version -zlib: -- '1' diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml deleted file mode 100644 index 6bbb5ccff..000000000 --- a/.ci_support/osx_arm64_.yaml +++ /dev/null @@ -1,74 +0,0 @@ -MACOSX_DEPLOYMENT_TARGET: -- '11.0' -MACOSX_SDK_VERSION: -- '11.0' -c_compiler: -- clang -c_compiler_version: -- '19' -c_stdlib: -- macosx_deployment_target -c_stdlib_version: -- '11.0' -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- cuda-nvcc -cuda_compiler_version: -- None -cxx_compiler: -- clangxx -cxx_compiler_version: -- '19' -flatbuffers: -- 25.2.10 -giflib: -- '5.2' -icu: -- '75' -libabseil: -- '20250512' -libcurl: -- '8' -libgrpc: -- '1.73' -libjpeg_turbo: -- '3' -libpng: -- '1.6' -libprotobuf: -- 6.31.1 -libtensorflow_cc: -- '2.16' -macos_machine: -- arm64-apple-darwin20.0.0 -microarch_level: -- '1' -numpy: -- '2' -openssl: -- '3.5' -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: -- osx-arm64 -tensorflow: -- '2.16' -zip_keys: -- - c_compiler_version - - cxx_compiler_version -zlib: -- '1' diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml index 801e12b2d..02d36289e 100644 --- a/.github/workflows/conda-build.yml +++ b/.github/workflows/conda-build.yml @@ -21,31 +21,11 @@ jobs: fail-fast: false matrix: include: - - 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.9microa_h28a6e8b1', 'linux', 'x64', 'self-hosted'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - 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.9microa_h764a83b2', 'linux', 'x64', 'self-hosted'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - - 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_versionNonemicroa_h0e112a19', 'linux', 'x64', 'self-hosted'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - - 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_versionNonemicroa_hb1134425', 'linux', 'x64', 'self-hosted'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - - CONFIG: linux_aarch64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11 - UPLOAD_PACKAGES: True - os: ubuntu - runs_on: ['cirun-openstack-cpu-2xlarge--${{ github.run_id }}-linux_aarch64_c_compiler_version11cuda_c_hde0bec76', 'linux', 'x64', 'self-hosted'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 steps: - name: Checkout code diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh deleted file mode 100755 index a71f1c52c..000000000 --- a/.scripts/run_osx_build.sh +++ /dev/null @@ -1,120 +0,0 @@ -#!/usr/bin/env bash - -# -*- mode: jinja-shell -*- - -source .scripts/logging_utils.sh - -set -xe - -MINIFORGE_HOME="${MINIFORGE_HOME:-${HOME}/miniforge3}" -MINIFORGE_HOME="${MINIFORGE_HOME%/}" # remove trailing slash -export CONDA_BLD_PATH="${CONDA_BLD_PATH:-${MINIFORGE_HOME}/conda-bld}" - -( startgroup "Provisioning base env with micromamba" ) 2> /dev/null -MICROMAMBA_VERSION="1.5.10-0" -if [[ "$(uname -m)" == "arm64" ]]; then - osx_arch="osx-arm64" -else - osx_arch="osx-64" -fi -MICROMAMBA_URL="https://github.com/mamba-org/micromamba-releases/releases/download/${MICROMAMBA_VERSION}/micromamba-${osx_arch}" -MAMBA_ROOT_PREFIX="${MINIFORGE_HOME}-micromamba-$(date +%s)" -echo "Downloading micromamba ${MICROMAMBA_VERSION}" -micromamba_exe="$(mktemp -d)/micromamba" -curl -L -o "${micromamba_exe}" "${MICROMAMBA_URL}" -chmod +x "${micromamba_exe}" -echo "Creating environment" -"${micromamba_exe}" create --yes --root-prefix "${MAMBA_ROOT_PREFIX}" --prefix "${MINIFORGE_HOME}" \ - --channel conda-forge \ - pip python=3.12 conda-build conda-libmamba-solver conda-forge-ci-setup=4 "conda-build>=24.1" -echo "Moving pkgs cache from ${MAMBA_ROOT_PREFIX} to ${MINIFORGE_HOME}" -mv "${MAMBA_ROOT_PREFIX}/pkgs" "${MINIFORGE_HOME}" -echo "Cleaning up micromamba" -rm -rf "${MAMBA_ROOT_PREFIX}" "${micromamba_exe}" || true -( endgroup "Provisioning base env with micromamba" ) 2> /dev/null - -( startgroup "Configuring conda" ) 2> /dev/null -echo "Activating environment" -source "${MINIFORGE_HOME}/etc/profile.d/conda.sh" -conda activate base -export CONDA_SOLVER="libmamba" -export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 - - - - - -echo -e "\n\nSetting up the condarc and mangling the compiler." -setup_conda_rc ./ ./recipe ./.ci_support/${CONFIG}.yaml - -if [[ "${CI:-}" != "" ]]; then - mangle_compiler ./ ./recipe .ci_support/${CONFIG}.yaml -fi - -if [[ "${CI:-}" != "" ]]; then - echo -e "\n\nMangling homebrew in the CI to avoid conflicts." - /usr/bin/sudo mangle_homebrew - /usr/bin/sudo -k -else - echo -e "\n\nNot mangling homebrew as we are not running in CI" -fi - -if [[ "${sha:-}" == "" ]]; then - sha=$(git rev-parse HEAD) -fi - -echo -e "\n\nRunning the build setup script." -source run_conda_forge_build_setup - - - -( endgroup "Configuring conda" ) 2> /dev/null - -echo -e "\n\nMaking the build clobber file" -make_build_number ./ ./recipe ./.ci_support/${CONFIG}.yaml - -if [[ -f LICENSE.txt ]]; then - cp LICENSE.txt "recipe/recipe-scripts-license.txt" -fi - -if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then - if [[ "x${BUILD_OUTPUT_ID:-}" != "x" ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --output-id ${BUILD_OUTPUT_ID}" - fi - conda debug ./recipe -m ./.ci_support/${CONFIG}.yaml \ - ${EXTRA_CB_OPTIONS:-} \ - --clobber-file ./.ci_support/clobber_${CONFIG}.yaml - - # Drop into an interactive shell - /bin/bash -else - - if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" - fi - - CONDA_SOLVER=libmamba conda-build ./recipe -m ./.ci_support/${CONFIG}.yaml \ - --suppress-variables ${EXTRA_CB_OPTIONS:-} \ - --clobber-file ./.ci_support/clobber_${CONFIG}.yaml \ - --extra-meta flow_run_id="$flow_run_id" remote_url="$remote_url" sha="$sha" - - ( startgroup "Inspecting artifacts" ) 2> /dev/null - - # inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 - command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts --recipe-dir ./recipe -m ./.ci_support/${CONFIG}.yaml || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" - - ( endgroup "Inspecting artifacts" ) 2> /dev/null - ( startgroup "Validating outputs" ) 2> /dev/null - - validate_recipe_outputs "${FEEDSTOCK_NAME}" - - ( endgroup "Validating outputs" ) 2> /dev/null - - ( startgroup "Uploading packages" ) 2> /dev/null - - if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then - upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" ./ ./recipe ./.ci_support/${CONFIG}.yaml - fi - - ( endgroup "Uploading packages" ) 2> /dev/null -fi diff --git a/README.md b/README.md index f57247f98..bc59749a0 100644 --- a/README.md +++ b/README.md @@ -24,73 +24,6 @@ Current build status - - - - -
Azure -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
VariantStatus
linux_64_cuda_compiler_version12.9microarch_level1 - - variant - -
linux_64_cuda_compiler_version12.9microarch_level3 - - variant - -
linux_64_cuda_compiler_versionNonemicroarch_level1 - - variant - -
linux_64_cuda_compiler_versionNonemicroarch_level3 - - variant - -
linux_aarch64_c_compiler_version11cuda_compiler_versionNonecxx_compiler_version11 - - variant - -
osx_64 - - variant - -
osx_arm64 - - variant - -
-
-
Current release info @@ -104,10 +37,8 @@ Current release info | [![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--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) | Installing tensorflow ===================== @@ -119,16 +50,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-base, tensorflow-estimator, tensorflow-gpu` 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-base tensorflow-estimator tensorflow-gpu ``` 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-base tensorflow-estimator tensorflow-gpu ``` It is possible to list all of the versions of `libtensorflow` available on your platform with `conda`: diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index a13f0ae28..000000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,31 +0,0 @@ -# This file was generated automatically from conda-smithy. To update this configuration, -# update the conda-forge.yml and/or the recipe/meta.yaml. -# -*- mode: yaml -*- - -stages: -- stage: Check - jobs: - - job: Skip - pool: - vmImage: 'ubuntu-22.04' - variables: - DECODE_PERCENTS: 'false' - RET: 'true' - steps: - - checkout: self - fetchDepth: '2' - - bash: | - git_log=`git log --max-count=1 --skip=1 --pretty=format:"%B" | tr "\n" " "` - echo "##vso[task.setvariable variable=log]$git_log" - displayName: Obtain commit message - - bash: echo "##vso[task.setvariable variable=RET]false" - condition: and(eq(variables['Build.Reason'], 'PullRequest'), or(contains(variables.log, '[skip azp]'), contains(variables.log, '[azp skip]'), contains(variables.log, '[skip ci]'), contains(variables.log, '[ci skip]'))) - displayName: Skip build? - - bash: echo "##vso[task.setvariable variable=start_main;isOutput=true]$RET" - name: result - displayName: Export result -- stage: Build - condition: and(succeeded(), eq(dependencies.Check.outputs['Skip.result.start_main'], 'true')) - dependsOn: Check - jobs: - - template: ./.azure-pipelines/azure-pipelines-osx.yml \ No newline at end of file diff --git a/recipe/meta.yaml b/recipe/meta.yaml index fb5be67d4..302b3e06c 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,6 +1,6 @@ {% set version = "2.19.1" %} {% set estimator_version = "2.15.0" %} -{% set build = 2 %} +{% set build = 4 %} {% if cuda_compiler_version != "None" %} {% set build = build + 200 %} @@ -13,9 +13,9 @@ {% set build = build + 25*(microarch_level | int - 1) %} # Quite often libml_dtypes-headers and ml_dtypes diverge. -# https://github.com/tensorflow/tensorflow/blob/v2.18.0/third_party/py/ml_dtypes/workspace.bzl -{% set libml_dtypes_version = "0.5.1" %} -{% set ml_dtypes_version = "0.5.1" %} +# https://github.com/tensorflow/tensorflow/blob/v2.19.1/third_party/py/ml_dtypes/workspace.bzl +{% set libml_dtypes_version = "0.5.4" %} +{% set ml_dtypes_version = "0.5.4" %} package: name: tensorflow-split @@ -73,8 +73,9 @@ source: - patches/0039-Fix-matmul-unused-result-error.patch - patches/0040-Support-cuda-12.8.patch - patches/0041-Disable-profiler.patch - - patches/0042-bump-h5py-req.patch # [aarch64] - - patches/0043-cross-arch-config.patch # [aarch64 and target_platform != build_platform] + - patches/0042-cross-arch-config.patch # [aarch64 and target_platform != build_platform] + # https://github.com/tensorflow/tensorflow/pull/99046 + - patches/0043-Fix-shared-memory-alignment-in-concat-split-GPU-kern.patch # backport https://github.com/tensorflow/tensorflow/pull/99364 - patches/0044-Support-for-TFv2.20-to-compile-with-CUDA-v12.9.1.patch - url: https://github.com/tensorflow/estimator/archive/refs/tags/v{{ estimator_version.replace(".rc", "-rc") }}.tar.gz @@ -86,6 +87,8 @@ build: skip: true # [win] # TODO: debug issues with CUDA cross-compilation skip: true # [aarch64 and cuda_compiler_version != "None"] + skip: true # [cuda_compiler_version == "None"] + skip: true # [microarch_level != 3] requirements: build: @@ -235,6 +238,7 @@ outputs: # 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!=312] 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"] # weigh down cpu implementation and give cuda preference @@ -362,6 +366,7 @@ outputs: # 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!=312] 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"] # weigh down cpu implementation and give cuda preference @@ -409,6 +414,7 @@ outputs: # 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!=312] 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: @@ -581,6 +587,7 @@ outputs: # 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!=312] 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: @@ -599,6 +606,7 @@ outputs: # 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!=312] 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: @@ -617,6 +625,7 @@ outputs: # 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!=312] 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: diff --git a/recipe/patches/0042-bump-h5py-req.patch b/recipe/patches/0042-bump-h5py-req.patch deleted file mode 100644 index 6de87bdd5..000000000 --- a/recipe/patches/0042-bump-h5py-req.patch +++ /dev/null @@ -1,309 +0,0 @@ -From e2c9291edfeac83893563ae0fcd90ab36a89af9e Mon Sep 17 00:00:00 2001 -From: dslarm -Date: Tue, 16 Sep 2025 19:41:25 +0000 -Subject: [PATCH 42/44] bump h5py req - -h5py and psutil are not available as a binary for -the versions of h5py in tensorflow 2.18's spec, but the -system won't try to build it. Bump the version so we get ones that -do exist. ---- - .../requirements_updater/requirements.in | 3 +- - requirements_lock_3_10.txt | 50 +------------------ - requirements_lock_3_11.txt | 50 +------------------ - requirements_lock_3_12.txt | 50 +------------------ - requirements_lock_3_9.txt | 49 +----------------- - 5 files changed, 10 insertions(+), 192 deletions(-) - -diff --git a/ci/official/requirements_updater/requirements.in b/ci/official/requirements_updater/requirements.in -index 68871582683..145aab77a17 100644 ---- a/ci/official/requirements_updater/requirements.in -+++ b/ci/official/requirements_updater/requirements.in -@@ -1,7 +1,7 @@ - # Note that numpy 2.1.0 does not support python 3.9 - numpy >= 2.0.0, < 2.2.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 -@@ -23,6 +23,7 @@ tensorboard ~= 2.19.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 0bf28443588..b5ac15546b9 100644 ---- a/requirements_lock_3_10.txt -+++ b/requirements_lock_3_10.txt -@@ -185,36 +185,7 @@ grpcio==1.64.1 \ - # via - # -r ci/official/requirements_updater/requirements.in - # tensorboard --h5py==3.13.0 \ -- --hash=sha256:10894c55d46df502d82a7a4ed38f9c3fdbcb93efb42e25d275193e093071fade \ -- --hash=sha256:1870e46518720023da85d0895a1960ff2ce398c5671eac3b1a41ec696b7105c3 \ -- --hash=sha256:21daf38171753899b5905f3d82c99b0b1ec2cbbe282a037cad431feb620e62ec \ -- --hash=sha256:22ffe2a25770a2d67213a1b94f58006c14dce06933a42d2aaa0318c5868d1508 \ -- --hash=sha256:337af114616f3656da0c83b68fcf53ecd9ce9989a700b0883a6e7c483c3235d4 \ -- --hash=sha256:357e6dc20b101a805ccfd0024731fbaf6e8718c18c09baf3b5e4e9d198d13fca \ -- --hash=sha256:477c58307b6b9a2509c59c57811afb9f598aedede24a67da808262dfa0ee37b4 \ -- --hash=sha256:4f97ecde7ac6513b21cd95efdfc38dc6d19f96f6ca6f2a30550e94e551458e0a \ -- --hash=sha256:5540daee2b236d9569c950b417f13fd112d51d78b4c43012de05774908dff3f5 \ -- --hash=sha256:560e71220dc92dfa254b10a4dcb12d56b574d2d87e095db20466b32a93fec3f9 \ -- --hash=sha256:56dd172d862e850823c4af02dc4ddbc308f042b85472ffdaca67f1598dff4a57 \ -- --hash=sha256:57c4c74f627c616f02b7aec608a8c706fe08cb5b0ba7c08555a4eb1dde20805a \ -- --hash=sha256:782ff0ac39f455f21fd1c8ebc007328f65f43d56718a89327eec76677ebf238a \ -- --hash=sha256:82690e89c72b85addf4fc4d5058fb1e387b6c14eb063b0b879bf3f42c3b93c35 \ -- --hash=sha256:851ae3a8563d87a5a0dc49c2e2529c75b8842582ccaefbf84297d2cfceeacd61 \ -- --hash=sha256:8a8e38ef4ceb969f832cc230c0cf808c613cc47e31e768fd7b1106c55afa1cb8 \ -- --hash=sha256:9c82ece71ed1c2b807b6628e3933bc6eae57ea21dac207dca3470e3ceaaf437c \ -- --hash=sha256:be949b46b7388074c5acae017fbbe3e5ba303fd9daaa52157fdfef30bbdacadd \ -- --hash=sha256:c10f061764d8dce0a9592ce08bfd5f243a00703325c388f1086037e5d619c5f1 \ -- --hash=sha256:d2cf6a231a07c14acd504a945a6e9ec115e0007f675bde5e0de30a4dc8d86a31 \ -- --hash=sha256:d571644958c5e19a61c793d8d23cd02479572da828e333498c9acc463f4a3997 \ -- --hash=sha256:d6f13f9b5ce549448c01e4dfe08ea8d1772e6078799af2c1c8d09e941230a90d \ -- --hash=sha256:e520ec76de00943dd017c8ea3f354fa1d2f542eac994811943a8faedf2a7d5cb \ -- --hash=sha256:e79d8368cd9295045956bfb436656bea3f915beaa11d342e9f79f129f5178763 \ -- --hash=sha256:f35640e81b03c02a88b8bf99fb6a9d3023cc52f7c627694db2f379e0028f2868 \ -- --hash=sha256:fb267ce4b83f9c42560e9ff4d30f60f7ae492eacf9c7ede849edf8c1b860e16b -- # via -- # -r ci/official/requirements_updater/requirements.in -- # keras -+h5py>=3.12.0 - idna==3.7 \ - --hash=sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc \ - --hash=sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0 -@@ -587,24 +558,7 @@ 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 - pyelftools==0.31 \ - --hash=sha256:c774416b10310156879443b81187d182d8d9ee499660380e645918b50bc88f99 \ - --hash=sha256:f52de7b3c7e8c64c8abc04a79a1cf37ac5fb0b8a49809827130b858944840607 -diff --git a/requirements_lock_3_11.txt b/requirements_lock_3_11.txt -index b305e7e58f8..a6606206652 100644 ---- a/requirements_lock_3_11.txt -+++ b/requirements_lock_3_11.txt -@@ -185,36 +185,7 @@ grpcio==1.64.1 \ - # via - # -r ci/official/requirements_updater/requirements.in - # tensorboard --h5py==3.13.0 \ -- --hash=sha256:10894c55d46df502d82a7a4ed38f9c3fdbcb93efb42e25d275193e093071fade \ -- --hash=sha256:1870e46518720023da85d0895a1960ff2ce398c5671eac3b1a41ec696b7105c3 \ -- --hash=sha256:21daf38171753899b5905f3d82c99b0b1ec2cbbe282a037cad431feb620e62ec \ -- --hash=sha256:22ffe2a25770a2d67213a1b94f58006c14dce06933a42d2aaa0318c5868d1508 \ -- --hash=sha256:337af114616f3656da0c83b68fcf53ecd9ce9989a700b0883a6e7c483c3235d4 \ -- --hash=sha256:357e6dc20b101a805ccfd0024731fbaf6e8718c18c09baf3b5e4e9d198d13fca \ -- --hash=sha256:477c58307b6b9a2509c59c57811afb9f598aedede24a67da808262dfa0ee37b4 \ -- --hash=sha256:4f97ecde7ac6513b21cd95efdfc38dc6d19f96f6ca6f2a30550e94e551458e0a \ -- --hash=sha256:5540daee2b236d9569c950b417f13fd112d51d78b4c43012de05774908dff3f5 \ -- --hash=sha256:560e71220dc92dfa254b10a4dcb12d56b574d2d87e095db20466b32a93fec3f9 \ -- --hash=sha256:56dd172d862e850823c4af02dc4ddbc308f042b85472ffdaca67f1598dff4a57 \ -- --hash=sha256:57c4c74f627c616f02b7aec608a8c706fe08cb5b0ba7c08555a4eb1dde20805a \ -- --hash=sha256:782ff0ac39f455f21fd1c8ebc007328f65f43d56718a89327eec76677ebf238a \ -- --hash=sha256:82690e89c72b85addf4fc4d5058fb1e387b6c14eb063b0b879bf3f42c3b93c35 \ -- --hash=sha256:851ae3a8563d87a5a0dc49c2e2529c75b8842582ccaefbf84297d2cfceeacd61 \ -- --hash=sha256:8a8e38ef4ceb969f832cc230c0cf808c613cc47e31e768fd7b1106c55afa1cb8 \ -- --hash=sha256:9c82ece71ed1c2b807b6628e3933bc6eae57ea21dac207dca3470e3ceaaf437c \ -- --hash=sha256:be949b46b7388074c5acae017fbbe3e5ba303fd9daaa52157fdfef30bbdacadd \ -- --hash=sha256:c10f061764d8dce0a9592ce08bfd5f243a00703325c388f1086037e5d619c5f1 \ -- --hash=sha256:d2cf6a231a07c14acd504a945a6e9ec115e0007f675bde5e0de30a4dc8d86a31 \ -- --hash=sha256:d571644958c5e19a61c793d8d23cd02479572da828e333498c9acc463f4a3997 \ -- --hash=sha256:d6f13f9b5ce549448c01e4dfe08ea8d1772e6078799af2c1c8d09e941230a90d \ -- --hash=sha256:e520ec76de00943dd017c8ea3f354fa1d2f542eac994811943a8faedf2a7d5cb \ -- --hash=sha256:e79d8368cd9295045956bfb436656bea3f915beaa11d342e9f79f129f5178763 \ -- --hash=sha256:f35640e81b03c02a88b8bf99fb6a9d3023cc52f7c627694db2f379e0028f2868 \ -- --hash=sha256:fb267ce4b83f9c42560e9ff4d30f60f7ae492eacf9c7ede849edf8c1b860e16b -- # via -- # -r ci/official/requirements_updater/requirements.in -- # keras -+h5py>=3.12.0 - idna==3.7 \ - --hash=sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc \ - --hash=sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0 -@@ -587,24 +558,7 @@ 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 - pyelftools==0.31 \ - --hash=sha256:c774416b10310156879443b81187d182d8d9ee499660380e645918b50bc88f99 \ - --hash=sha256:f52de7b3c7e8c64c8abc04a79a1cf37ac5fb0b8a49809827130b858944840607 -diff --git a/requirements_lock_3_12.txt b/requirements_lock_3_12.txt -index 179f77b4843..1a803ef414f 100644 ---- a/requirements_lock_3_12.txt -+++ b/requirements_lock_3_12.txt -@@ -185,36 +185,7 @@ grpcio==1.64.1 \ - # via - # -r ci/official/requirements_updater/requirements.in - # tensorboard --h5py==3.13.0 \ -- --hash=sha256:10894c55d46df502d82a7a4ed38f9c3fdbcb93efb42e25d275193e093071fade \ -- --hash=sha256:1870e46518720023da85d0895a1960ff2ce398c5671eac3b1a41ec696b7105c3 \ -- --hash=sha256:21daf38171753899b5905f3d82c99b0b1ec2cbbe282a037cad431feb620e62ec \ -- --hash=sha256:22ffe2a25770a2d67213a1b94f58006c14dce06933a42d2aaa0318c5868d1508 \ -- --hash=sha256:337af114616f3656da0c83b68fcf53ecd9ce9989a700b0883a6e7c483c3235d4 \ -- --hash=sha256:357e6dc20b101a805ccfd0024731fbaf6e8718c18c09baf3b5e4e9d198d13fca \ -- --hash=sha256:477c58307b6b9a2509c59c57811afb9f598aedede24a67da808262dfa0ee37b4 \ -- --hash=sha256:4f97ecde7ac6513b21cd95efdfc38dc6d19f96f6ca6f2a30550e94e551458e0a \ -- --hash=sha256:5540daee2b236d9569c950b417f13fd112d51d78b4c43012de05774908dff3f5 \ -- --hash=sha256:560e71220dc92dfa254b10a4dcb12d56b574d2d87e095db20466b32a93fec3f9 \ -- --hash=sha256:56dd172d862e850823c4af02dc4ddbc308f042b85472ffdaca67f1598dff4a57 \ -- --hash=sha256:57c4c74f627c616f02b7aec608a8c706fe08cb5b0ba7c08555a4eb1dde20805a \ -- --hash=sha256:782ff0ac39f455f21fd1c8ebc007328f65f43d56718a89327eec76677ebf238a \ -- --hash=sha256:82690e89c72b85addf4fc4d5058fb1e387b6c14eb063b0b879bf3f42c3b93c35 \ -- --hash=sha256:851ae3a8563d87a5a0dc49c2e2529c75b8842582ccaefbf84297d2cfceeacd61 \ -- --hash=sha256:8a8e38ef4ceb969f832cc230c0cf808c613cc47e31e768fd7b1106c55afa1cb8 \ -- --hash=sha256:9c82ece71ed1c2b807b6628e3933bc6eae57ea21dac207dca3470e3ceaaf437c \ -- --hash=sha256:be949b46b7388074c5acae017fbbe3e5ba303fd9daaa52157fdfef30bbdacadd \ -- --hash=sha256:c10f061764d8dce0a9592ce08bfd5f243a00703325c388f1086037e5d619c5f1 \ -- --hash=sha256:d2cf6a231a07c14acd504a945a6e9ec115e0007f675bde5e0de30a4dc8d86a31 \ -- --hash=sha256:d571644958c5e19a61c793d8d23cd02479572da828e333498c9acc463f4a3997 \ -- --hash=sha256:d6f13f9b5ce549448c01e4dfe08ea8d1772e6078799af2c1c8d09e941230a90d \ -- --hash=sha256:e520ec76de00943dd017c8ea3f354fa1d2f542eac994811943a8faedf2a7d5cb \ -- --hash=sha256:e79d8368cd9295045956bfb436656bea3f915beaa11d342e9f79f129f5178763 \ -- --hash=sha256:f35640e81b03c02a88b8bf99fb6a9d3023cc52f7c627694db2f379e0028f2868 \ -- --hash=sha256:fb267ce4b83f9c42560e9ff4d30f60f7ae492eacf9c7ede849edf8c1b860e16b -- # via -- # -r ci/official/requirements_updater/requirements.in -- # keras -+h5py>=3.12.0 - idna==3.7 \ - --hash=sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc \ - --hash=sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0 -@@ -587,24 +558,7 @@ 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 - pyelftools==0.31 \ - --hash=sha256:c774416b10310156879443b81187d182d8d9ee499660380e645918b50bc88f99 \ - --hash=sha256:f52de7b3c7e8c64c8abc04a79a1cf37ac5fb0b8a49809827130b858944840607 -diff --git a/requirements_lock_3_9.txt b/requirements_lock_3_9.txt -index a3d77545aed..2d9911ac3c4 100644 ---- a/requirements_lock_3_9.txt -+++ b/requirements_lock_3_9.txt -@@ -185,36 +185,7 @@ grpcio==1.64.1 \ - # via - # -r ci/official/requirements_updater/requirements.in - # tensorboard --h5py==3.13.0 \ -- --hash=sha256:10894c55d46df502d82a7a4ed38f9c3fdbcb93efb42e25d275193e093071fade \ -- --hash=sha256:1870e46518720023da85d0895a1960ff2ce398c5671eac3b1a41ec696b7105c3 \ -- --hash=sha256:21daf38171753899b5905f3d82c99b0b1ec2cbbe282a037cad431feb620e62ec \ -- --hash=sha256:22ffe2a25770a2d67213a1b94f58006c14dce06933a42d2aaa0318c5868d1508 \ -- --hash=sha256:337af114616f3656da0c83b68fcf53ecd9ce9989a700b0883a6e7c483c3235d4 \ -- --hash=sha256:357e6dc20b101a805ccfd0024731fbaf6e8718c18c09baf3b5e4e9d198d13fca \ -- --hash=sha256:477c58307b6b9a2509c59c57811afb9f598aedede24a67da808262dfa0ee37b4 \ -- --hash=sha256:4f97ecde7ac6513b21cd95efdfc38dc6d19f96f6ca6f2a30550e94e551458e0a \ -- --hash=sha256:5540daee2b236d9569c950b417f13fd112d51d78b4c43012de05774908dff3f5 \ -- --hash=sha256:560e71220dc92dfa254b10a4dcb12d56b574d2d87e095db20466b32a93fec3f9 \ -- --hash=sha256:56dd172d862e850823c4af02dc4ddbc308f042b85472ffdaca67f1598dff4a57 \ -- --hash=sha256:57c4c74f627c616f02b7aec608a8c706fe08cb5b0ba7c08555a4eb1dde20805a \ -- --hash=sha256:782ff0ac39f455f21fd1c8ebc007328f65f43d56718a89327eec76677ebf238a \ -- --hash=sha256:82690e89c72b85addf4fc4d5058fb1e387b6c14eb063b0b879bf3f42c3b93c35 \ -- --hash=sha256:851ae3a8563d87a5a0dc49c2e2529c75b8842582ccaefbf84297d2cfceeacd61 \ -- --hash=sha256:8a8e38ef4ceb969f832cc230c0cf808c613cc47e31e768fd7b1106c55afa1cb8 \ -- --hash=sha256:9c82ece71ed1c2b807b6628e3933bc6eae57ea21dac207dca3470e3ceaaf437c \ -- --hash=sha256:be949b46b7388074c5acae017fbbe3e5ba303fd9daaa52157fdfef30bbdacadd \ -- --hash=sha256:c10f061764d8dce0a9592ce08bfd5f243a00703325c388f1086037e5d619c5f1 \ -- --hash=sha256:d2cf6a231a07c14acd504a945a6e9ec115e0007f675bde5e0de30a4dc8d86a31 \ -- --hash=sha256:d571644958c5e19a61c793d8d23cd02479572da828e333498c9acc463f4a3997 \ -- --hash=sha256:d6f13f9b5ce549448c01e4dfe08ea8d1772e6078799af2c1c8d09e941230a90d \ -- --hash=sha256:e520ec76de00943dd017c8ea3f354fa1d2f542eac994811943a8faedf2a7d5cb \ -- --hash=sha256:e79d8368cd9295045956bfb436656bea3f915beaa11d342e9f79f129f5178763 \ -- --hash=sha256:f35640e81b03c02a88b8bf99fb6a9d3023cc52f7c627694db2f379e0028f2868 \ -- --hash=sha256:fb267ce4b83f9c42560e9ff4d30f60f7ae492eacf9c7ede849edf8c1b860e16b -- # via -- # -r ci/official/requirements_updater/requirements.in -- # keras -+h5py>=3.12.0 - idna==3.7 \ - --hash=sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc \ - --hash=sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0 -@@ -583,23 +554,7 @@ 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 -+psutil>=7.0.0 - # via portpicker - pyelftools==0.31 \ - --hash=sha256:c774416b10310156879443b81187d182d8d9ee499660380e645918b50bc88f99 \ diff --git a/recipe/patches/0043-cross-arch-config.patch b/recipe/patches/0042-cross-arch-config.patch similarity index 94% rename from recipe/patches/0043-cross-arch-config.patch rename to recipe/patches/0042-cross-arch-config.patch index 6baccecb5..3f3df7530 100644 --- a/recipe/patches/0043-cross-arch-config.patch +++ b/recipe/patches/0042-cross-arch-config.patch @@ -1,7 +1,7 @@ -From 2a4e3c49ce87c62dae261011b8d2b297f300695d Mon Sep 17 00:00:00 2001 +From 977dfe9a0ff84b6d42307a5784ced2aa70bc93b6 Mon Sep 17 00:00:00 2001 From: dslarm Date: Tue, 14 Oct 2025 15:02:09 +0000 -Subject: [PATCH 43/44] cross arch config +Subject: [PATCH 42/44] cross arch config --- third_party/llvm/dirty.patch | 11 +++++++++++ diff --git a/recipe/patches/0043-Fix-shared-memory-alignment-in-concat-split-GPU-kern.patch b/recipe/patches/0043-Fix-shared-memory-alignment-in-concat-split-GPU-kern.patch new file mode 100644 index 000000000..0d9e962bd --- /dev/null +++ b/recipe/patches/0043-Fix-shared-memory-alignment-in-concat-split-GPU-kern.patch @@ -0,0 +1,44 @@ +From 0b532f8a4329b983a39604d64d511ac4cf33fb72 Mon Sep 17 00:00:00 2001 +From: stevemcgregory +Date: Sat, 16 Aug 2025 09:16:35 -0500 +Subject: [PATCH 43/44] Fix shared memory alignment in concat/split GPU kernels + +Align shared memory buffer to 16 bytes (or max of T and IntType) to +avoid misaligned access issues on newer GPUs. +--- + tensorflow/core/kernels/concat_lib_gpu_impl.cu.cc | 5 ++++- + tensorflow/core/kernels/split_lib_gpu.cu.cc | 5 ++++- + 2 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/tensorflow/core/kernels/concat_lib_gpu_impl.cu.cc b/tensorflow/core/kernels/concat_lib_gpu_impl.cu.cc +index 031464dfdd9..a6cece16d20 100644 +--- a/tensorflow/core/kernels/concat_lib_gpu_impl.cu.cc ++++ b/tensorflow/core/kernels/concat_lib_gpu_impl.cu.cc +@@ -70,7 +70,10 @@ __global__ void concat_variable_kernel( + IntType num_inputs = input_ptr_data.size; + + // verbose declaration needed due to template +- GPU_DYNAMIC_SHARED_MEM_DECL(sizeof(T), unsigned char, smem); ++ constexpr size_t kAlignTI = ++ (alignof(T) > alignof(IntType)) ? alignof(T) : alignof(IntType); ++ constexpr size_t kAlign = (kAlignTI < 16) ? 16 : kAlignTI; ++ GPU_DYNAMIC_SHARED_MEM_DECL(kAlign, unsigned char, smem); + IntType* smem_col_scan = reinterpret_cast(smem); + + if (useSmem) { +diff --git a/tensorflow/core/kernels/split_lib_gpu.cu.cc b/tensorflow/core/kernels/split_lib_gpu.cu.cc +index 90b28292ac0..b55845bb4e9 100644 +--- a/tensorflow/core/kernels/split_lib_gpu.cu.cc ++++ b/tensorflow/core/kernels/split_lib_gpu.cu.cc +@@ -120,7 +120,10 @@ __global__ void split_v_kernel(const T* __restrict__ input_ptr, + int num_outputs = output_ptr_data.size; + + // verbose declaration needed due to template +- GPU_DYNAMIC_SHARED_MEM_DECL(sizeof(T), unsigned char, smem); ++ constexpr size_t kAlignTI = ++ (alignof(T) > alignof(IntType)) ? alignof(T) : alignof(IntType); ++ constexpr size_t kAlign = (kAlignTI < 16) ? 16 : kAlignTI; ++ GPU_DYNAMIC_SHARED_MEM_DECL(kAlign, unsigned char, smem); + IntType* smem_col_scan = reinterpret_cast(smem); + + if (useSmem) { diff --git a/recipe/patches/0044-Support-for-TFv2.20-to-compile-with-CUDA-v12.9.1.patch b/recipe/patches/0044-Support-for-TFv2.20-to-compile-with-CUDA-v12.9.1.patch index 0590b21b8..e39bdd129 100644 --- a/recipe/patches/0044-Support-for-TFv2.20-to-compile-with-CUDA-v12.9.1.patch +++ b/recipe/patches/0044-Support-for-TFv2.20-to-compile-with-CUDA-v12.9.1.patch @@ -1,74 +1,44 @@ -From 360ce4cf9f33f0567dd5e169e87950d0bafc5126 Mon Sep 17 00:00:00 2001 +From 6f35d3d6c40cbf09dd848d37b9911e0d8725aa35 Mon Sep 17 00:00:00 2001 From: aravindhbalaji1985 Date: Mon, 25 Aug 2025 15:15:14 -0700 Subject: [PATCH 44/44] Support for TFv2.20 to compile with CUDA v12.9.1 --- - tensorflow/core/kernels/concat_lib_gpu_impl.cu.cc | 2 +- - .../core/kernels/dynamic_partition_op_gpu.cu.cc | 6 +++++- - tensorflow/core/kernels/split_lib_gpu.cu.cc | 2 +- - tensorflow/core/kernels/where_op_gpu.cu.h | 11 +++++++++++ - 4 files changed, 18 insertions(+), 3 deletions(-) + tensorflow/core/kernels/dynamic_partition_op_gpu.cu.cc | 4 ++++ + tensorflow/core/kernels/where_op_gpu.cu.h | 10 ++++++++++ + 2 files changed, 14 insertions(+) -diff --git a/tensorflow/core/kernels/concat_lib_gpu_impl.cu.cc b/tensorflow/core/kernels/concat_lib_gpu_impl.cu.cc -index 031464dfdd9..b4fe8ae6977 100644 ---- a/tensorflow/core/kernels/concat_lib_gpu_impl.cu.cc -+++ b/tensorflow/core/kernels/concat_lib_gpu_impl.cu.cc -@@ -70,7 +70,7 @@ __global__ void concat_variable_kernel( - IntType num_inputs = input_ptr_data.size; - - // verbose declaration needed due to template -- GPU_DYNAMIC_SHARED_MEM_DECL(sizeof(T), unsigned char, smem); -+ GPU_DYNAMIC_SHARED_MEM_DECL(8, unsigned char, smem); - IntType* smem_col_scan = reinterpret_cast(smem); - - if (useSmem) { diff --git a/tensorflow/core/kernels/dynamic_partition_op_gpu.cu.cc b/tensorflow/core/kernels/dynamic_partition_op_gpu.cu.cc -index ae3fe6d140f..737e22e5b9f 100644 +index ae3fe6d140f..cb603ba7c6c 100644 --- a/tensorflow/core/kernels/dynamic_partition_op_gpu.cu.cc +++ b/tensorflow/core/kernels/dynamic_partition_op_gpu.cu.cc @@ -410,7 +410,11 @@ class DynamicPartitionOpGPU : public AsyncOpKernel { num_partitions_); #if GOOGLE_CUDA -- cub::ConstantInputIterator values_in(1); -+ #if THRUST_VERSION >= 200802 -+ thrust::constant_iterator values_in(1); -+ #else -+ cub::ConstantInputIterator values_in(1); -+ #endif ++#if THRUST_VERSION >= 200802 ++ thrust::constant_iterator values_in(1); ++#else + cub::ConstantInputIterator values_in(1); ++#endif #elif TENSORFLOW_USE_ROCM using ConstantInputIterator = ::rocprim::constant_iterator; -diff --git a/tensorflow/core/kernels/split_lib_gpu.cu.cc b/tensorflow/core/kernels/split_lib_gpu.cu.cc -index 90b28292ac0..e395d4f12f5 100644 ---- a/tensorflow/core/kernels/split_lib_gpu.cu.cc -+++ b/tensorflow/core/kernels/split_lib_gpu.cu.cc -@@ -120,7 +120,7 @@ __global__ void split_v_kernel(const T* __restrict__ input_ptr, - int num_outputs = output_ptr_data.size; - - // verbose declaration needed due to template -- GPU_DYNAMIC_SHARED_MEM_DECL(sizeof(T), unsigned char, smem); -+ GPU_DYNAMIC_SHARED_MEM_DECL(2, unsigned char, smem); - IntType* smem_col_scan = reinterpret_cast(smem); - - if (useSmem) { diff --git a/tensorflow/core/kernels/where_op_gpu.cu.h b/tensorflow/core/kernels/where_op_gpu.cu.h -index 5eb03ec60ad..3de25b7a82c 100644 +index 5eb03ec60ad..949e183b466 100644 --- a/tensorflow/core/kernels/where_op_gpu.cu.h +++ b/tensorflow/core/kernels/where_op_gpu.cu.h -@@ -233,6 +233,17 @@ class WhereOutputIterator { +@@ -233,6 +233,16 @@ class WhereOutputIterator { return *(ptr_ + (valid ? (NDIM * n) : 0)); } -+ + EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE reference operator*() const { + // Dereference the current pointer + return *ptr_; + } + -+ -+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE self_type operator+(std::ptrdiff_t n) const { ++ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE self_type ++ operator+(std::ptrdiff_t n) const { + return self_type(ptr_ + NDIM * n, max_row_); + } +