mirror of
https://github.com/Tencent/ncnn.git
synced 2026-10-23 17:19:20 +08:00
114 lines
3.9 KiB
YAML
114 lines
3.9 KiB
YAML
name: linux-x64-gpu-clang-python
|
|
on:
|
|
push:
|
|
branches: [master]
|
|
paths:
|
|
- '.github/workflows/linux-x64-gpu-clang-python.yml'
|
|
- 'CMakeLists.txt'
|
|
- 'cmake/**'
|
|
- 'src/*'
|
|
- 'src/layer/*'
|
|
- 'src/layer/x86/**'
|
|
- 'src/layer/vulkan/**'
|
|
- 'python/**'
|
|
pull_request:
|
|
branches: [master]
|
|
paths:
|
|
- '.github/workflows/linux-x64-gpu-clang-python.yml'
|
|
- 'CMakeLists.txt'
|
|
- 'cmake/**'
|
|
- 'src/*'
|
|
- 'src/layer/*'
|
|
- 'src/layer/x86/**'
|
|
- 'src/layer/vulkan/**'
|
|
- 'python/**'
|
|
concurrency:
|
|
group: linux-x64-gpu-clang-python-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
linux-clang-gpu:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
python-version: [3.6, 3.8]
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
submodules: true
|
|
- name: cache-vulkansdk
|
|
id: cache-vulkansdk
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: "1.2.189.0"
|
|
key: vulkansdk-linux-x86_64-1.2.189.0
|
|
- name: vulkansdk
|
|
if: steps.cache-vulkansdk.outputs.cache-hit != 'true'
|
|
run: |
|
|
wget https://sdk.lunarg.com/sdk/download/1.2.189.0/linux/vulkansdk-linux-x86_64-1.2.189.0.tar.gz?Human=true -O vulkansdk-linux-x86_64-1.2.189.0.tar.gz
|
|
tar -xf vulkansdk-linux-x86_64-1.2.189.0.tar.gz
|
|
rm -rf 1.2.189.0/source 1.2.189.0/samples
|
|
find 1.2.189.0 -type f | grep -v -E 'vulkan|glslang' | xargs rm
|
|
- name: cache-swiftshader
|
|
id: cache-swiftshader
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: swiftshader-install
|
|
key: swiftshader-linux-install-20220211
|
|
- name: checkout-swiftshader
|
|
if: steps.cache-swiftshader.outputs.cache-hit != 'true'
|
|
uses: actions/checkout@v3
|
|
with:
|
|
repository: google/swiftshader
|
|
path: swiftshader
|
|
ref: 0863290dc7f6cc1649bab1858790e812b8aef02a
|
|
- name: checkout-swiftshader-submodules
|
|
if: steps.cache-swiftshader.outputs.cache-hit != 'true'
|
|
run: |
|
|
cd swiftshader
|
|
git -c submodule."third_party/git-hooks".update=none submodule update --init --recursive
|
|
- name: swiftshader
|
|
if: steps.cache-swiftshader.outputs.cache-hit != 'true'
|
|
run: |
|
|
cd swiftshader
|
|
mkdir -p build; cd build
|
|
cmake -DCMAKE_INSTALL_PREFIX=install -DSWIFTSHADER_BUILD_EGL=FALSE -DSWIFTSHADER_BUILD_GLESv2=FALSE -DSWIFTSHADER_BUILD_GLES_CM=FALSE -DSWIFTSHADER_BUILD_VULKAN=TRUE -DSWIFTSHADER_BUILD_PVR=FALSE -DSWIFTSHADER_BUILD_TESTS=FALSE -DSWIFTSHADER_ENABLE_ASTC=FALSE -DSWIFTSHADER_WARNINGS_AS_ERRORS=FALSE -DREACTOR_BACKEND=Subzero -DREACTOR_DEFAULT_OPT_LEVEL=Default -DCMAKE_BUILD_TYPE=Release ..
|
|
cmake --build . -j 2
|
|
mkdir $GITHUB_WORKSPACE/swiftshader-install
|
|
cp Linux/* $GITHUB_WORKSPACE/swiftshader-install
|
|
- name: set up python ${{ matrix.python-version }}
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install pytest setuptools wheel twine
|
|
- name: build
|
|
env:
|
|
CC: clang
|
|
CXX: clang++
|
|
run: |
|
|
export VULKAN_SDK=`pwd`/1.2.189.0/x86_64
|
|
mkdir build && cd build
|
|
cmake -DNCNN_VULKAN=ON -DNCNN_PYTHON=ON -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF ..
|
|
cmake --build . -j 2
|
|
- name: install python
|
|
run: cd python && pip install .
|
|
- name: test
|
|
run: |
|
|
export VK_ICD_FILENAMES="$GITHUB_WORKSPACE/swiftshader-install/vk_swiftshader_icd.json"
|
|
cd python && pytest tests
|
|
- name: build and publish
|
|
if: startsWith(github.ref, 'refs/tags')
|
|
env:
|
|
TWINE_USERNAME: __token__
|
|
TWINE_PASSWORD: ${{ secrets.TEST_PYPI_API_TOKEN }}
|
|
TWINE_REPOSITORY_URL: "https://test.pypi.org/legacy/"
|
|
run: |
|
|
cd python
|
|
python setup.py bdist_wheel
|
|
twine upload dist/*
|