Skip to content

deps-cache

deps-cache #935

Workflow file for this run

name: deps-cache
on:
push:
branches: [main]
paths:
- '.github/workflows/deps-cache.yml'
pull_request:
branches: [main]
paths:
- '.github/workflows/deps-cache.yml'
schedule:
- cron: '0 12 * * *'
env:
LIBTORCH_VERSION: 2.5.0
TORCHVISION_VERSION: 0.20.0
PROTOBUF_VERSION: 21.12
ONNXRUNTIME_VERSION: 1.19.2
CACHE_DATE: 20241018
jobs:
linux-deps:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: pnnx-patches
uses: actions/checkout@v4
with:
path: pnnx-patches
- name: cache-libtorch
id: cache-libtorch
uses: actions/[email protected]
with:
path: "/tmp/libtorch"
key: libtorch-${{ env.LIBTORCH_VERSION }}-linux-${{ env.CACHE_DATE }}
- name: libtorch
if: steps.cache-libtorch.outputs.cache-hit != 'true'
uses: pypa/[email protected]
env:
CIBW_ARCHS_LINUX: "x86_64"
CIBW_BUILD: 'cp310-manylinux_x86_64'
CIBW_BUILD_VERBOSITY: 1
CIBW_REPAIR_WHEEL_COMMAND: ""
CIBW_BEFORE_ALL: yum install devtoolset-10 wget zip -y &&
wget -q https://github.com/pytorch/pytorch/releases/download/v${{ env.LIBTORCH_VERSION }}/pytorch-v${{ env.LIBTORCH_VERSION }}.tar.gz &&
tar -xf pytorch-v${{ env.LIBTORCH_VERSION }}.tar.gz &&
cd pytorch-v${{ env.LIBTORCH_VERSION }} &&
pip install -r requirements.txt &&
patch -p1 -i /project/pnnx-patches/pytorch-v${{ env.LIBTORCH_VERSION }}-fix-mobile-build.patch &&
patch -p1 -i /project/pnnx-patches/pytorch-v${{ env.LIBTORCH_VERSION }}-no-link-system-lib.patch &&
patch -p1 -i /project/pnnx-patches/pytorch-v${{ env.LIBTORCH_VERSION }}-fix-pocketfft-build.patch &&
mkdir -p build && cd build &&
cmake -DCMAKE_INSTALL_PREFIX="/host/tmp/libtorch" -DCMAKE_BUILD_TYPE=MinSizeRel -DBUILD_SHARED_LIBS=OFF
-DBUILD_CAFFE2_OPS=OFF
-DBUILD_CUSTOM_PROTOBUF=OFF
-DBUILD_LITE_INTERPRETER=OFF
-DBUILD_PYTHON=OFF
-DINTERN_BUILD_MOBILE=ON
-DINTERN_DISABLE_AUTOGRAD=ON
-DINTERN_DISABLE_ONNX=ON
-DUSE_CUDA=OFF
-DUSE_DISTRIBUTED=OFF
-DUSE_ITT=OFF
-DUSE_KINETO=OFF
-DUSE_LITE_INTERPRETER_PROFILER=OFF
-DUSE_MKLDNN=OFF
-DUSE_MPS=OFF
-DUSE_NUMPY=OFF
-DUSE_OPENMP=OFF
-DUSE_SOURCE_DEBUG_ON_MOBILE=OFF
-DUSE_XNNPACK=OFF
-DCMAKE_CXX_COMPILER="/opt/rh/devtoolset-10/root/usr/bin/c++"
-DCMAKE_C_COMPILER="/opt/rh/devtoolset-10/root/usr/bin/cc"
.. &&
cmake --build . -j $(nproc) &&
cmake --build . -j $(nproc) --target install/strip
with:
package-dir: pnnx-patches
output-dir: wheelhouse1
- name: cache-torchvision
id: cache-torchvision
uses: actions/[email protected]
with:
path: "/tmp/torchvision"
key: torchvision-${{ env.TORCHVISION_VERSION }}-linux-${{ env.CACHE_DATE }}
- name: torchvision
if: steps.cache-torchvision.outputs.cache-hit != 'true'
uses: pypa/[email protected]
env:
CIBW_ARCHS_LINUX: "x86_64"
CIBW_BUILD: 'cp310-manylinux_x86_64'
CIBW_BUILD_VERBOSITY: 1
CIBW_REPAIR_WHEEL_COMMAND: ""
CIBW_BEFORE_ALL: yum install devtoolset-10 wget zip -y &&
wget -q https://github.com/pytorch/vision/archive/refs/tags/v${{ env.TORCHVISION_VERSION }}.zip -O vision-${{ env.TORCHVISION_VERSION }}.zip &&
unzip -q vision-${{ env.TORCHVISION_VERSION }}.zip &&
cd vision-${{ env.TORCHVISION_VERSION }} &&
patch -p1 -i /project/pnnx-patches/vision-${{ env.TORCHVISION_VERSION }}-ops-only.patch &&
patch -p1 -i /project/pnnx-patches/vision-${{ env.TORCHVISION_VERSION }}-no-cuda-version.patch &&
mkdir -p build && cd build &&
cmake -DCMAKE_INSTALL_PREFIX="/host/tmp/torchvision"
-DTorch_DIR="/host/tmp/libtorch/share/cmake/Torch"
-DCMAKE_BUILD_TYPE=MinSizeRel -DWITH_PNG=OFF
-DCMAKE_C_COMPILER="/opt/rh/devtoolset-10/root/usr/bin/cc"
-DCMAKE_CXX_COMPILER="/opt/rh/devtoolset-10/root/usr/bin/c++" -DWITH_JPEG=OFF .. &&
cmake --build . -j $(nproc) &&
cmake --build . -j $(nproc) --target install/strip
with:
package-dir: pnnx-patches
output-dir: wheelhouse2
- name: cache-onnxruntime
id: cache-onnxruntime
uses: actions/[email protected]
with:
path: "/tmp/onnxruntime"
key: onnxruntime-${{ env.ONNXRUNTIME_VERSION }}-linux-${{ env.CACHE_DATE }}
- name: onnxruntime
if: steps.cache-onnxruntime.outputs.cache-hit != 'true'
uses: pypa/[email protected]
env:
CIBW_ARCHS_LINUX: "x86_64"
CIBW_BUILD: 'cp310-manylinux_x86_64'
CIBW_BUILD_VERBOSITY: 1
CIBW_REPAIR_WHEEL_COMMAND: ""
CIBW_BEFORE_ALL: yum install devtoolset-10 wget zip -y &&
wget -q https://github.com/protocolbuffers/protobuf/archive/v${{ env.PROTOBUF_VERSION }}.zip -O protobuf-${{ env.PROTOBUF_VERSION }}.zip &&
unzip -q protobuf-${{ env.PROTOBUF_VERSION }}.zip &&
cd protobuf-${{ env.PROTOBUF_VERSION }} &&
mkdir -p build2 && cd build2 &&
cmake -DCMAKE_INSTALL_PREFIX="/host/tmp/onnxruntime" -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_C_COMPILER="/opt/rh/devtoolset-10/root/usr/bin/cc"
-DCMAKE_CXX_COMPILER="/opt/rh/devtoolset-10/root/usr/bin/c++" -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_POSITION_INDEPENDENT_CODE=ON .. &&
cmake --build . -j $(nproc) &&
cmake --build . -j $(nproc) --target install/strip &&
cd ../../ &&
wget -q https://github.com/microsoft/onnxruntime/archive/v${{ env.ONNXRUNTIME_VERSION }}.zip -O onnxruntime-${{ env.ONNXRUNTIME_VERSION }}.zip &&
unzip -q onnxruntime-${{ env.ONNXRUNTIME_VERSION }}.zip &&
cd onnxruntime-${{ env.ONNXRUNTIME_VERSION }} &&
patch -p1 -i /project/pnnx-patches/onnxruntime-${{ env.ONNXRUNTIME_VERSION }}-less-mlas-features.patch &&
patch -p1 -i /project/pnnx-patches/onnxruntime-${{ env.ONNXRUNTIME_VERSION }}-monolithic-static-library.patch &&
patch -p1 -i /project/pnnx-patches/onnxruntime-${{ env.ONNXRUNTIME_VERSION }}-use-clog.patch &&
patch -p1 -i /project/pnnx-patches/onnxruntime-${{ env.ONNXRUNTIME_VERSION }}-fix-gcc-avxvnni-check.patch &&
mkdir -p build2 && cd build2 &&
cmake -DCMAKE_INSTALL_PREFIX="/host/tmp/onnxruntime" -DCMAKE_C_COMPILER="/opt/rh/devtoolset-10/root/usr/bin/cc"
-DCMAKE_CXX_COMPILER="/opt/rh/devtoolset-10/root/usr/bin/c++" -DCMAKE_BUILD_TYPE=MinSizeRel -Donnxruntime_USE_FULL_PROTOBUF=ON -Donnxruntime_BUILD_SHARED_LIB=ON -Donnxruntime_BUILD_UNIT_TESTS=OFF -Donnxruntime_ENABLE_CPUINFO=OFF -Donnxruntime_DISABLE_CONTRIB_OPS=ON -Donnxruntime_DISABLE_ML_OPS=ON -Donnxruntime_DISABLE_SPARSE_TENSORS=ON --compile-no-warning-as-error -DCMAKE_POSITION_INDEPENDENT_CODE=ON ../cmake &&
cmake --build . -j $(nproc) &&
cmake --build . -j $(nproc) --target install/strip
with:
package-dir: pnnx-patches
output-dir: wheelhouse3
# libtorch builds very slow even on self-hosted runner
linux-aarch64-deps:
#runs-on: self-hosted
runs-on: ubuntu-latest
timeout-minutes: 1800
steps:
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: pnnx-patches
uses: actions/checkout@v4
with:
path: pnnx-patches
- name: cache-libtorch
id: cache-libtorch
uses: actions/[email protected]
with:
path: "/tmp/libtorch"
key: libtorch-${{ env.LIBTORCH_VERSION }}-linux-aarch64-${{ env.CACHE_DATE }}
- name: cache-torchvision
id: cache-torchvision
uses: actions/[email protected]
with:
path: "/tmp/torchvision"
key: torchvision-${{ env.TORCHVISION_VERSION }}-linux-aarch64-${{ env.CACHE_DATE }}
- name: cache-onnxruntime
id: cache-onnxruntime
uses: actions/[email protected]
with:
path: "/tmp/onnxruntime"
key: onnxruntime-${{ env.ONNXRUNTIME_VERSION }}-linux-aarch64-${{ env.CACHE_DATE }}
- name: setup-qemu
if: steps.cache-libtorch.outputs.cache-hit != 'true' || steps.cache-torchvision.outputs.cache-hit != 'true' || steps.cache-onnxruntime.outputs.cache-hit != 'true'
uses: docker/setup-qemu-action@v3
with:
platforms: arm64
- name: libtorch
if: steps.cache-libtorch.outputs.cache-hit != 'true'
uses: pypa/[email protected]
env:
CIBW_ARCHS_LINUX: "aarch64"
CIBW_BUILD: 'cp310-manylinux_aarch64'
CIBW_BUILD_VERBOSITY: 1
CIBW_REPAIR_WHEEL_COMMAND: ""
CIBW_BEFORE_ALL: yum install devtoolset-10 wget zip -y &&
wget -q https://github.com/pytorch/pytorch/releases/download/v${{ env.LIBTORCH_VERSION }}/pytorch-v${{ env.LIBTORCH_VERSION }}.tar.gz &&
tar -xf pytorch-v${{ env.LIBTORCH_VERSION }}.tar.gz &&
cd pytorch-v${{ env.LIBTORCH_VERSION }} &&
pip install -r requirements.txt &&
patch -p1 -i /project/pnnx-patches/pytorch-v${{ env.LIBTORCH_VERSION }}-fix-mobile-build.patch &&
patch -p1 -i /project/pnnx-patches/pytorch-v${{ env.LIBTORCH_VERSION }}-no-link-system-lib.patch &&
patch -p1 -i /project/pnnx-patches/pytorch-v${{ env.LIBTORCH_VERSION }}-fix-pocketfft-build.patch &&
patch -p1 -i /project/pnnx-patches/pytorch-v${{ env.LIBTORCH_VERSION }}-set-python-executable.patch &&
mkdir -p build && cd build &&
cmake -DCMAKE_INSTALL_PREFIX="/host/tmp/libtorch" -DCMAKE_BUILD_TYPE=MinSizeRel -DBUILD_SHARED_LIBS=OFF
-DBUILD_CAFFE2_OPS=OFF
-DBUILD_CUSTOM_PROTOBUF=OFF
-DBUILD_LITE_INTERPRETER=OFF
-DBUILD_PYTHON=OFF
-DINTERN_BUILD_MOBILE=ON
-DINTERN_DISABLE_AUTOGRAD=ON
-DINTERN_DISABLE_ONNX=ON
-DUSE_CUDA=OFF
-DUSE_DISTRIBUTED=OFF
-DUSE_ITT=OFF
-DUSE_KINETO=OFF
-DUSE_LITE_INTERPRETER_PROFILER=OFF
-DUSE_MKLDNN=OFF
-DUSE_MPS=OFF
-DUSE_NUMPY=OFF
-DUSE_OPENMP=OFF
-DUSE_SOURCE_DEBUG_ON_MOBILE=OFF
-DUSE_XNNPACK=OFF
-DCMAKE_CXX_COMPILER="/opt/rh/devtoolset-10/root/usr/bin/c++"
-DCMAKE_C_COMPILER="/opt/rh/devtoolset-10/root/usr/bin/cc"
.. &&
cmake --build . -j $(nproc) &&
cmake --build . -j $(nproc) --target install/strip
with:
package-dir: pnnx-patches
output-dir: wheelhouse1
- name: torchvision
if: steps.cache-torchvision.outputs.cache-hit != 'true'
uses: pypa/[email protected]
env:
CIBW_ARCHS_LINUX: "aarch64"
CIBW_BUILD: 'cp310-manylinux_aarch64'
CIBW_BUILD_VERBOSITY: 1
CIBW_REPAIR_WHEEL_COMMAND: ""
CIBW_BEFORE_ALL: yum install devtoolset-10 wget zip -y &&
wget -q https://github.com/pytorch/vision/archive/refs/tags/v${{ env.TORCHVISION_VERSION }}.zip -O vision-${{ env.TORCHVISION_VERSION }}.zip &&
unzip -q vision-${{ env.TORCHVISION_VERSION }}.zip &&
cd vision-${{ env.TORCHVISION_VERSION }} &&
patch -p1 -i /project/pnnx-patches/vision-${{ env.TORCHVISION_VERSION }}-ops-only.patch &&
patch -p1 -i /project/pnnx-patches/vision-${{ env.TORCHVISION_VERSION }}-no-cuda-version.patch &&
mkdir -p build && cd build &&
cmake -DCMAKE_INSTALL_PREFIX="/host/tmp/torchvision"
-DTorch_DIR="/host/tmp/libtorch/share/cmake/Torch"
-DCMAKE_BUILD_TYPE=MinSizeRel -DWITH_PNG=OFF
-DCMAKE_C_COMPILER="/opt/rh/devtoolset-10/root/usr/bin/cc"
-DCMAKE_CXX_COMPILER="/opt/rh/devtoolset-10/root/usr/bin/c++" -DWITH_JPEG=OFF .. &&
cmake --build . -j $(nproc) &&
cmake --build . -j $(nproc) --target install/strip
with:
package-dir: pnnx-patches
output-dir: wheelhouse2
- name: onnxruntime
if: steps.cache-onnxruntime.outputs.cache-hit != 'true'
uses: pypa/[email protected]
env:
CIBW_ARCHS_LINUX: "aarch64"
CIBW_BUILD: 'cp310-manylinux_aarch64'
CIBW_BUILD_VERBOSITY: 1
CIBW_REPAIR_WHEEL_COMMAND: ""
CIBW_BEFORE_ALL: yum install devtoolset-10 wget zip -y &&
wget -q https://github.com/protocolbuffers/protobuf/archive/v${{ env.PROTOBUF_VERSION }}.zip -O protobuf-${{ env.PROTOBUF_VERSION }}.zip &&
unzip -q protobuf-${{ env.PROTOBUF_VERSION }}.zip &&
cd protobuf-${{ env.PROTOBUF_VERSION }} &&
mkdir -p build2 && cd build2 &&
cmake -DCMAKE_INSTALL_PREFIX="/host/tmp/onnxruntime" -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_C_COMPILER="/opt/rh/devtoolset-10/root/usr/bin/cc"
-DCMAKE_CXX_COMPILER="/opt/rh/devtoolset-10/root/usr/bin/c++" -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_POSITION_INDEPENDENT_CODE=ON .. &&
cmake --build . -j $(nproc) &&
cmake --build . -j $(nproc) --target install/strip &&
cd ../../ &&
wget -q https://github.com/microsoft/onnxruntime/archive/v${{ env.ONNXRUNTIME_VERSION }}.zip -O onnxruntime-${{ env.ONNXRUNTIME_VERSION }}.zip &&
unzip -q onnxruntime-${{ env.ONNXRUNTIME_VERSION }}.zip &&
cd onnxruntime-${{ env.ONNXRUNTIME_VERSION }} &&
patch -p1 -i /project/pnnx-patches/onnxruntime-${{ env.ONNXRUNTIME_VERSION }}-less-mlas-features.patch &&
patch -p1 -i /project/pnnx-patches/onnxruntime-${{ env.ONNXRUNTIME_VERSION }}-monolithic-static-library.patch &&
patch -p1 -i /project/pnnx-patches/onnxruntime-${{ env.ONNXRUNTIME_VERSION }}-use-clog.patch &&
patch -p1 -i /project/pnnx-patches/onnxruntime-${{ env.ONNXRUNTIME_VERSION }}-fix-gcc-avxvnni-check.patch &&
mkdir -p build2 && cd build2 &&
cmake -DCMAKE_INSTALL_PREFIX="/host/tmp/onnxruntime" -DCMAKE_C_COMPILER="/opt/rh/devtoolset-10/root/usr/bin/cc"
-DCMAKE_CXX_COMPILER="/opt/rh/devtoolset-10/root/usr/bin/c++" -DCMAKE_BUILD_TYPE=MinSizeRel -Donnxruntime_USE_FULL_PROTOBUF=ON -Donnxruntime_BUILD_SHARED_LIB=ON -Donnxruntime_BUILD_UNIT_TESTS=OFF -Donnxruntime_ENABLE_CPUINFO=OFF -Donnxruntime_DISABLE_CONTRIB_OPS=ON -Donnxruntime_DISABLE_ML_OPS=ON -Donnxruntime_DISABLE_SPARSE_TENSORS=ON --compile-no-warning-as-error -DCMAKE_POSITION_INDEPENDENT_CODE=ON ../cmake &&
cmake --build . -j $(nproc) &&
cmake --build . -j $(nproc) --target install/strip
with:
package-dir: pnnx-patches
output-dir: wheelhouse3
macos-x64-deps:
runs-on: macos-13
steps:
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: pnnx-patches
uses: actions/checkout@v4
with:
path: pnnx-patches
- name: cache-libtorch
id: cache-libtorch
uses: actions/[email protected]
with:
path: "libtorch"
key: libtorch-${{ env.LIBTORCH_VERSION }}-macos-x64-${{ env.CACHE_DATE }}
- name: libtorch
if: steps.cache-libtorch.outputs.cache-hit != 'true'
run: |
wget -q https://github.com/pytorch/pytorch/releases/download/v${{ env.LIBTORCH_VERSION }}/pytorch-v${{ env.LIBTORCH_VERSION }}.tar.gz
tar -xf pytorch-v${{ env.LIBTORCH_VERSION }}.tar.gz
cd pytorch-v${{ env.LIBTORCH_VERSION }}
pip3 install -r requirements.txt
patch -p1 -i $GITHUB_WORKSPACE/pnnx-patches/pytorch-v${{ env.LIBTORCH_VERSION }}-fix-mobile-build.patch
patch -p1 -i $GITHUB_WORKSPACE/pnnx-patches/pytorch-v${{ env.LIBTORCH_VERSION }}-no-link-system-lib.patch
patch -p1 -i $GITHUB_WORKSPACE/pnnx-patches/pytorch-v${{ env.LIBTORCH_VERSION }}-fix-pocketfft-build.patch
mkdir -p build; cd build
cmake -DCMAKE_INSTALL_PREFIX="$GITHUB_WORKSPACE/libtorch" -DCMAKE_BUILD_TYPE=MinSizeRel -DBUILD_SHARED_LIBS=OFF \
-DBUILD_CAFFE2_OPS=OFF \
-DBUILD_CUSTOM_PROTOBUF=OFF \
-DBUILD_LITE_INTERPRETER=OFF \
-DBUILD_PYTHON=OFF \
-DINTERN_BUILD_MOBILE=ON \
-DINTERN_DISABLE_AUTOGRAD=ON \
-DINTERN_DISABLE_ONNX=ON \
-DUSE_CUDA=OFF \
-DUSE_DISTRIBUTED=OFF \
-DUSE_ITT=OFF \
-DUSE_KINETO=OFF \
-DUSE_LITE_INTERPRETER_PROFILER=OFF \
-DUSE_MKLDNN=OFF \
-DUSE_MPS=OFF \
-DUSE_NUMPY=OFF \
-DUSE_OPENMP=OFF \
-DUSE_SOURCE_DEBUG_ON_MOBILE=OFF \
-DUSE_XNNPACK=OFF \
..
cmake --build . -j 4
cmake --build . -j 4 --target install/strip
- name: cache-torchvision
id: cache-torchvision
uses: actions/[email protected]
with:
path: "torchvision"
key: torchvision-${{ env.TORCHVISION_VERSION }}-macos-x64-${{ env.CACHE_DATE }}
- name: torchvision
if: steps.cache-torchvision.outputs.cache-hit != 'true'
run: |
wget -q https://github.com/pytorch/vision/archive/refs/tags/v${{ env.TORCHVISION_VERSION }}.zip -O vision-${{ env.TORCHVISION_VERSION }}.zip
unzip -q vision-${{ env.TORCHVISION_VERSION }}.zip
cd vision-${{ env.TORCHVISION_VERSION }}
patch -p1 -i $GITHUB_WORKSPACE/pnnx-patches/vision-${{ env.TORCHVISION_VERSION }}-ops-only.patch
patch -p1 -i $GITHUB_WORKSPACE/pnnx-patches/vision-${{ env.TORCHVISION_VERSION }}-no-cuda-version.patch
mkdir -p build; cd build
cmake -DCMAKE_INSTALL_PREFIX="$GITHUB_WORKSPACE/torchvision" -DTorch_DIR="$GITHUB_WORKSPACE/libtorch/share/cmake/Torch" -DCMAKE_BUILD_TYPE=MinSizeRel -DWITH_PNG=OFF -DWITH_JPEG=OFF ..
cmake --build . -j 4
cmake --build . -j 4 --target install/strip
- name: cache-onnxruntime
id: cache-onnxruntime
uses: actions/[email protected]
with:
path: "onnxruntime"
key: onnxruntime-${{ env.ONNXRUNTIME_VERSION }}-macos-x64-${{ env.CACHE_DATE }}
- name: onnxruntime
if: steps.cache-onnxruntime.outputs.cache-hit != 'true'
run: |
wget -q https://github.com/protocolbuffers/protobuf/archive/v${{ env.PROTOBUF_VERSION }}.zip -O protobuf-${{ env.PROTOBUF_VERSION }}.zip
unzip -q protobuf-${{ env.PROTOBUF_VERSION }}.zip
cd protobuf-${{ env.PROTOBUF_VERSION }}
mkdir -p build2; cd build2;
cmake -DCMAKE_INSTALL_PREFIX="$GITHUB_WORKSPACE/onnxruntime" -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_POSITION_INDEPENDENT_CODE=ON ..
cmake --build . -j 4
cmake --build . -j 4 --target install/strip
cd ../../
wget -q https://github.com/microsoft/onnxruntime/archive/v${{ env.ONNXRUNTIME_VERSION }}.zip -O onnxruntime-${{ env.ONNXRUNTIME_VERSION }}.zip
ditto -V -x -k --sequesterRsrc --rsrc onnxruntime-${{ env.ONNXRUNTIME_VERSION }}.zip ./
cd onnxruntime-${{ env.ONNXRUNTIME_VERSION }}
patch -p1 -i $GITHUB_WORKSPACE/pnnx-patches/onnxruntime-${{ env.ONNXRUNTIME_VERSION }}-less-mlas-features.patch
patch -p1 -i $GITHUB_WORKSPACE/pnnx-patches/onnxruntime-${{ env.ONNXRUNTIME_VERSION }}-monolithic-static-library.patch
patch -p1 -i $GITHUB_WORKSPACE/pnnx-patches/onnxruntime-${{ env.ONNXRUNTIME_VERSION }}-use-clog.patch
patch -p1 -i $GITHUB_WORKSPACE/pnnx-patches/onnxruntime-${{ env.ONNXRUNTIME_VERSION }}-fix-gcc-avxvnni-check.patch
mkdir -p build2; cd build2;
cmake -DCMAKE_INSTALL_PREFIX="$GITHUB_WORKSPACE/onnxruntime" -DCMAKE_BUILD_TYPE=MinSizeRel -Donnxruntime_USE_FULL_PROTOBUF=ON -Donnxruntime_BUILD_SHARED_LIB=ON -Donnxruntime_BUILD_UNIT_TESTS=OFF -Donnxruntime_ENABLE_CPUINFO=OFF -Donnxruntime_DISABLE_CONTRIB_OPS=ON -Donnxruntime_DISABLE_SPARSE_TENSORS=ON --compile-no-warning-as-error -DCMAKE_POSITION_INDEPENDENT_CODE=ON ../cmake
cmake --build . -j 4
cmake --build . -j 4 --target install/strip
macos-arm64-deps:
runs-on: macos-14
steps:
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: pnnx-patches
uses: actions/checkout@v4
with:
path: pnnx-patches
- name: cache-libtorch
id: cache-libtorch
uses: actions/[email protected]
with:
path: "libtorch"
key: libtorch-${{ env.LIBTORCH_VERSION }}-macos-arm64-${{ env.CACHE_DATE }}
- name: libtorch
if: steps.cache-libtorch.outputs.cache-hit != 'true'
run: |
wget -q https://github.com/pytorch/pytorch/releases/download/v${{ env.LIBTORCH_VERSION }}/pytorch-v${{ env.LIBTORCH_VERSION }}.tar.gz
tar -xf pytorch-v${{ env.LIBTORCH_VERSION }}.tar.gz
cd pytorch-v${{ env.LIBTORCH_VERSION }}
pip3 install -r requirements.txt
patch -p1 -i $GITHUB_WORKSPACE/pnnx-patches/pytorch-v${{ env.LIBTORCH_VERSION }}-fix-mobile-build.patch
patch -p1 -i $GITHUB_WORKSPACE/pnnx-patches/pytorch-v${{ env.LIBTORCH_VERSION }}-no-link-system-lib.patch
patch -p1 -i $GITHUB_WORKSPACE/pnnx-patches/pytorch-v${{ env.LIBTORCH_VERSION }}-fix-pocketfft-build.patch
patch -p1 -i $GITHUB_WORKSPACE/pnnx-patches/pytorch-v${{ env.LIBTORCH_VERSION }}-set-python-executable.patch
patch -p1 -i $GITHUB_WORKSPACE/pnnx-patches/pytorch-v${{ env.LIBTORCH_VERSION }}-no-macos-arm64-sleef.patch
mkdir -p build; cd build
cmake -DCMAKE_INSTALL_PREFIX="$GITHUB_WORKSPACE/libtorch" -DCMAKE_BUILD_TYPE=MinSizeRel -DBUILD_SHARED_LIBS=OFF \
-DBUILD_CAFFE2_OPS=OFF \
-DBUILD_CUSTOM_PROTOBUF=OFF \
-DBUILD_LITE_INTERPRETER=OFF \
-DBUILD_PYTHON=OFF \
-DINTERN_BUILD_MOBILE=ON \
-DINTERN_DISABLE_AUTOGRAD=ON \
-DINTERN_DISABLE_ONNX=ON \
-DUSE_CUDA=OFF \
-DUSE_DISTRIBUTED=OFF \
-DUSE_ITT=OFF \
-DUSE_KINETO=OFF \
-DUSE_LITE_INTERPRETER_PROFILER=OFF \
-DUSE_MKLDNN=OFF \
-DUSE_MPS=OFF \
-DUSE_NUMPY=OFF \
-DUSE_OPENMP=OFF \
-DUSE_SOURCE_DEBUG_ON_MOBILE=OFF \
-DUSE_XNNPACK=OFF \
..
cmake --build . -j 3
cmake --build . -j 3 --target install/strip
- name: cache-torchvision
id: cache-torchvision
uses: actions/[email protected]
with:
path: "torchvision"
key: torchvision-${{ env.TORCHVISION_VERSION }}-macos-arm64-${{ env.CACHE_DATE }}
- name: torchvision
if: steps.cache-torchvision.outputs.cache-hit != 'true'
run: |
wget -q https://github.com/pytorch/vision/archive/refs/tags/v${{ env.TORCHVISION_VERSION }}.zip -O vision-${{ env.TORCHVISION_VERSION }}.zip
unzip -q vision-${{ env.TORCHVISION_VERSION }}.zip
cd vision-${{ env.TORCHVISION_VERSION }}
patch -p1 -i $GITHUB_WORKSPACE/pnnx-patches/vision-${{ env.TORCHVISION_VERSION }}-ops-only.patch
patch -p1 -i $GITHUB_WORKSPACE/pnnx-patches/vision-${{ env.TORCHVISION_VERSION }}-no-cuda-version.patch
mkdir -p build; cd build
cmake -DCMAKE_INSTALL_PREFIX="$GITHUB_WORKSPACE/torchvision" -DTorch_DIR="$GITHUB_WORKSPACE/libtorch/share/cmake/Torch" -DCMAKE_BUILD_TYPE=MinSizeRel -DWITH_PNG=OFF -DWITH_JPEG=OFF ..
cmake --build . -j 3
cmake --build . -j 3 --target install/strip
- name: cache-onnxruntime
id: cache-onnxruntime
uses: actions/[email protected]
with:
path: "onnxruntime"
key: onnxruntime-${{ env.ONNXRUNTIME_VERSION }}-macos-arm64-${{ env.CACHE_DATE }}
- name: onnxruntime
if: steps.cache-onnxruntime.outputs.cache-hit != 'true'
run: |
wget -q https://github.com/protocolbuffers/protobuf/archive/v${{ env.PROTOBUF_VERSION }}.zip -O protobuf-${{ env.PROTOBUF_VERSION }}.zip
unzip -q protobuf-${{ env.PROTOBUF_VERSION }}.zip
cd protobuf-${{ env.PROTOBUF_VERSION }}
mkdir -p build2; cd build2;
cmake -DCMAKE_INSTALL_PREFIX="$GITHUB_WORKSPACE/onnxruntime" -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_POSITION_INDEPENDENT_CODE=ON ..
cmake --build . -j 3
cmake --build . -j 3 --target install/strip
cd ../../
wget -q https://github.com/microsoft/onnxruntime/archive/v${{ env.ONNXRUNTIME_VERSION }}.zip -O onnxruntime-${{ env.ONNXRUNTIME_VERSION }}.zip
ditto -V -x -k --sequesterRsrc --rsrc onnxruntime-${{ env.ONNXRUNTIME_VERSION }}.zip ./
cd onnxruntime-${{ env.ONNXRUNTIME_VERSION }}
patch -p1 -i $GITHUB_WORKSPACE/pnnx-patches/onnxruntime-${{ env.ONNXRUNTIME_VERSION }}-less-mlas-features.patch
patch -p1 -i $GITHUB_WORKSPACE/pnnx-patches/onnxruntime-${{ env.ONNXRUNTIME_VERSION }}-monolithic-static-library.patch
patch -p1 -i $GITHUB_WORKSPACE/pnnx-patches/onnxruntime-${{ env.ONNXRUNTIME_VERSION }}-use-clog.patch
patch -p1 -i $GITHUB_WORKSPACE/pnnx-patches/onnxruntime-${{ env.ONNXRUNTIME_VERSION }}-fix-gcc-avxvnni-check.patch
mkdir -p build2; cd build2;
cmake -DCMAKE_INSTALL_PREFIX="$GITHUB_WORKSPACE/onnxruntime" -DCMAKE_BUILD_TYPE=MinSizeRel -Donnxruntime_USE_FULL_PROTOBUF=ON -Donnxruntime_BUILD_SHARED_LIB=ON -Donnxruntime_BUILD_UNIT_TESTS=OFF -Donnxruntime_ENABLE_CPUINFO=OFF -Donnxruntime_DISABLE_CONTRIB_OPS=ON -Donnxruntime_DISABLE_SPARSE_TENSORS=ON --compile-no-warning-as-error -DCMAKE_POSITION_INDEPENDENT_CODE=ON ../cmake
cmake --build . -j 3
cmake --build . -j 3 --target install/strip
windows-deps:
runs-on: windows-2019
env:
UseMultiToolTask: true
steps:
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: pnnx-patches
uses: actions/checkout@v4
with:
path: pnnx-patches
- name: cache-libtorch
id: cache-libtorch
uses: actions/[email protected]
with:
path: "libtorch"
key: libtorch-${{ env.LIBTORCH_VERSION }}-vs2019-${{ env.CACHE_DATE }}
- name: libtorch
if: steps.cache-libtorch.outputs.cache-hit != 'true'
run: |
Invoke-WebRequest -Uri https://github.com/pytorch/pytorch/releases/download/v${{ env.LIBTORCH_VERSION }}/pytorch-v${{ env.LIBTORCH_VERSION }}.tar.gz -OutFile pytorch-v${{ env.LIBTORCH_VERSION }}.tar.gz
7z x pytorch-v${{ env.LIBTORCH_VERSION }}.tar.gz
7z x pytorch-v${{ env.LIBTORCH_VERSION }}.tar
cd pytorch-v${{ env.LIBTORCH_VERSION }}
pip3 install -r requirements.txt
C:\msys64\usr\bin\patch.exe -p1 -i $env:GITHUB_WORKSPACE\pnnx-patches\pytorch-v${{ env.LIBTORCH_VERSION }}-fix-mobile-build.patch
C:\msys64\usr\bin\patch.exe -p1 -i $env:GITHUB_WORKSPACE\pnnx-patches\pytorch-v${{ env.LIBTORCH_VERSION }}-no-link-system-lib.patch
C:\msys64\usr\bin\patch.exe -p1 -i $env:GITHUB_WORKSPACE\pnnx-patches\pytorch-v${{ env.LIBTORCH_VERSION }}-fix-pocketfft-build.patch
C:\msys64\usr\bin\patch.exe -p1 -i $env:GITHUB_WORKSPACE\pnnx-patches\pytorch-v${{ env.LIBTORCH_VERSION }}-set-python-executable.patch
C:\msys64\usr\bin\patch.exe -p1 -i $env:GITHUB_WORKSPACE\pnnx-patches\pytorch-v${{ env.LIBTORCH_VERSION }}-no-mimalloc.patch
mkdir -p build; cd build
cmake -DCMAKE_INSTALL_PREFIX="$env:GITHUB_WORKSPACE/libtorch" -DCMAKE_BUILD_TYPE=MinSizeRel -DBUILD_SHARED_LIBS=OFF -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded `
-DBUILD_CAFFE2_OPS=OFF `
-DBUILD_CUSTOM_PROTOBUF=OFF `
-DBUILD_LITE_INTERPRETER=OFF `
-DBUILD_PYTHON=OFF `
-DINTERN_BUILD_MOBILE=ON `
-DINTERN_DISABLE_AUTOGRAD=ON `
-DINTERN_DISABLE_ONNX=ON `
-DUSE_CUDA=OFF `
-DUSE_DISTRIBUTED=OFF `
-DUSE_ITT=OFF `
-DUSE_KINETO=OFF `
-DUSE_LITE_INTERPRETER_PROFILER=OFF `
-DUSE_MKLDNN=OFF `
-DUSE_MPS=OFF `
-DUSE_NUMPY=OFF `
-DUSE_OPENMP=OFF `
-DUSE_SOURCE_DEBUG_ON_MOBILE=OFF `
-DUSE_XNNPACK=OFF `
..
cmake --build . --config MinSizeRel -j 4
cmake --build . --config MinSizeRel -j 4 --target install
- name: cache-torchvision
id: cache-torchvision
uses: actions/[email protected]
with:
path: "torchvision"
key: torchvision-${{ env.TORCHVISION_VERSION }}-vs2019-${{ env.CACHE_DATE }}
- name: torchvision
if: steps.cache-torchvision.outputs.cache-hit != 'true'
run: |
Invoke-WebRequest -Uri https://github.com/pytorch/vision/archive/refs/tags/v${{ env.TORCHVISION_VERSION }}.zip -OutFile vision-${{ env.TORCHVISION_VERSION }}.zip
7z x vision-${{ env.TORCHVISION_VERSION }}.zip
cd vision-${{ env.TORCHVISION_VERSION }}
C:\msys64\usr\bin\patch.exe -p1 -i $env:GITHUB_WORKSPACE\pnnx-patches\vision-${{ env.TORCHVISION_VERSION }}-ops-only.patch
C:\msys64\usr\bin\patch.exe -p1 -i $env:GITHUB_WORKSPACE\pnnx-patches\vision-${{ env.TORCHVISION_VERSION }}-no-cuda-version.patch
C:\msys64\usr\bin\patch.exe -p1 -i $env:GITHUB_WORKSPACE\pnnx-patches\vision-${{ env.TORCHVISION_VERSION }}-no-dll-export.patch
mkdir -p build; cd build
cmake -DCMAKE_INSTALL_PREFIX="$env:GITHUB_WORKSPACE/torchvision" -DTorch_DIR="$env:GITHUB_WORKSPACE/libtorch/share/cmake/Torch" -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded -DWITH_PNG=OFF -DWITH_JPEG=OFF ..
cmake --build . --config MinSizeRel -j 4
cmake --build . --config MinSizeRel -j 4 --target install
- name: cache-onnxruntime
id: cache-onnxruntime
uses: actions/[email protected]
with:
path: "onnxruntime"
key: onnxruntime-${{ env.ONNXRUNTIME_VERSION }}-vs2019-${{ env.CACHE_DATE }}
- name: onnxruntime
if: steps.cache-onnxruntime.outputs.cache-hit != 'true'
run: |
Invoke-WebRequest -Uri https://github.com/protocolbuffers/protobuf/archive/v${{ env.PROTOBUF_VERSION }}.zip -OutFile protobuf-${{ env.PROTOBUF_VERSION }}.zip
7z x ./protobuf-${{ env.PROTOBUF_VERSION }}.zip
cd protobuf-${{ env.PROTOBUF_VERSION }}
mkdir -p build2; cd build2;
cmake -DCMAKE_INSTALL_PREFIX="$env:GITHUB_WORKSPACE/onnxruntime" -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_MSVC_STATIC_RUNTIME=ON -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded ..
cmake --build . --config MinSizeRel -j 4
cmake --build . --config MinSizeRel -j 4 --target install
cd ../../
Invoke-WebRequest -Uri https://github.com/microsoft/onnxruntime/archive/v${{ env.ONNXRUNTIME_VERSION }}.zip -OutFile onnxruntime-${{ env.ONNXRUNTIME_VERSION }}.zip
7z x ./onnxruntime-${{ env.ONNXRUNTIME_VERSION }}.zip
cd onnxruntime-${{ env.ONNXRUNTIME_VERSION }}
C:\msys64\usr\bin\patch.exe -p1 -i $env:GITHUB_WORKSPACE\pnnx-patches\onnxruntime-${{ env.ONNXRUNTIME_VERSION }}-less-mlas-features.patch
C:\msys64\usr\bin\patch.exe -p1 -i $env:GITHUB_WORKSPACE\pnnx-patches\onnxruntime-${{ env.ONNXRUNTIME_VERSION }}-monolithic-static-library.patch
C:\msys64\usr\bin\patch.exe -p1 -i $env:GITHUB_WORKSPACE\pnnx-patches\onnxruntime-${{ env.ONNXRUNTIME_VERSION }}-use-clog.patch
C:\msys64\usr\bin\patch.exe -p1 -i $env:GITHUB_WORKSPACE\pnnx-patches\onnxruntime-${{ env.ONNXRUNTIME_VERSION }}-fix-gcc-avxvnni-check.patch
mkdir -p build2; cd build2;
cmake -DCMAKE_INSTALL_PREFIX="$env:GITHUB_WORKSPACE/onnxruntime" -DCMAKE_BUILD_TYPE=MinSizeRel -Donnxruntime_USE_FULL_PROTOBUF=ON -Donnxruntime_BUILD_SHARED_LIB=ON -Donnxruntime_BUILD_UNIT_TESTS=OFF -Donnxruntime_ENABLE_CPUINFO=OFF -Donnxruntime_DISABLE_CONTRIB_OPS=ON -Donnxruntime_DISABLE_SPARSE_TENSORS=ON --compile-no-warning-as-error -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded -DONNX_USE_MSVC_STATIC_RUNTIME=ON -Dprotobuf_MSVC_STATIC_RUNTIME=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON ../cmake
cmake --build . --config MinSizeRel -j 4
cmake --build . --config MinSizeRel -j 4 --target install