You can not select more than 25 topics
Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- name: macos-arm64-gpu
- on:
- push:
- branches: [master]
- paths-ignore: ['**.md']
- pull_request:
- branches: [master]
- paths-ignore: ['**.md']
- env:
- DEVELOPER_DIR: /Applications/Xcode_12.2.app/Contents/Developer
- jobs:
- macos-clang-gpu:
- runs-on: macos-latest
- steps:
- - name: cancel-previous-runs
- uses: styfle/cancel-workflow-action@0.7.0
- with:
- access_token: ${{ secrets.GITHUB_TOKEN }}
- - uses: actions/checkout@v2
- with:
- submodules: true
- - name: cache-openmp
- id: cache-openmp
- uses: actions/cache@v1
- with:
- path: openmp-install
- key: openmp-macos-install-20201213
- - name: openmp
- if: steps.cache-openmp.outputs.cache-hit != 'true'
- run: |
- wget https://github.com/llvm/llvm-project/releases/download/llvmorg-11.0.0/openmp-11.0.0.src.tar.xz
- tar -xf openmp-11.0.0.src.tar.xz
- cd openmp-11.0.0.src
- sed -i'' -e '/.size __kmp_unnamed_critical_addr/d' runtime/src/z_Linux_asm.S
- sed -i'' -e 's/__kmp_unnamed_critical_addr/___kmp_unnamed_critical_addr/g' runtime/src/z_Linux_asm.S
- mkdir -p build && cd build
- cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" \
- -DLIBOMP_ENABLE_SHARED=OFF -DLIBOMP_OMPT_SUPPORT=OFF -DLIBOMP_USE_HWLOC=OFF ..
- cmake --build . -j 2
- cmake --build . --target install
- mkdir $GITHUB_WORKSPACE/openmp-install
- cp -r install/* $GITHUB_WORKSPACE/openmp-install
- - name: install-openmp
- run: |
- sudo cp $GITHUB_WORKSPACE/openmp-install/include/* $DEVELOPER_DIR/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include
- sudo cp $GITHUB_WORKSPACE/openmp-install/lib/libomp.a $DEVELOPER_DIR/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib
- - name: cache-vulkansdk
- id: cache-vulkansdk
- uses: actions/cache@v1
- with:
- path: "vulkansdk-macos-1.2.162.0"
- key: vulkansdk-macos-1.2.162.0
- - name: vulkansdk
- if: steps.cache-vulkansdk.outputs.cache-hit != 'true'
- run: |
- wget https://sdk.lunarg.com/sdk/download/1.2.162.0/mac/vulkansdk-macos-1.2.162.0.dmg?Human=true -O vulkansdk-macos-1.2.162.0.dmg
- hdiutil attach vulkansdk-macos-1.2.162.0.dmg
- cp -r /Volumes/vulkansdk-macos-1.2.162.0 .
- rm -rf vulkansdk-macos-1.2.162.0/Applications
- find vulkansdk-macos-1.2.162.0 -type f | grep -v -E 'vulkan|glslang|MoltenVK' | xargs rm
- hdiutil detach /Volumes/vulkansdk-macos-1.2.162.0
- - name: build
- run: |
- export VULKAN_SDK=`pwd`/vulkansdk-macos-1.2.162.0/macOS
- mkdir build && cd build
- cmake -DCMAKE_CROSSCOMPILING=ON -DCMAKE_SYSTEM_PROCESSOR=arm64 -DCMAKE_OSX_ARCHITECTURES=arm64 \
- -DOpenMP_C_FLAGS="-Xclang -fopenmp" -DOpenMP_CXX_FLAGS="-Xclang -fopenmp" \
- -DOpenMP_C_LIB_NAMES="libomp" -DOpenMP_CXX_LIB_NAMES="libomp" \
- -DOpenMP_libomp_LIBRARY="$DEVELOPER_DIR/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/libomp.a" \
- -DVulkan_INCLUDE_DIR=`pwd`/../vulkansdk-macos-1.2.162.0/MoltenVK/include \
- -DVulkan_LIBRARY=`pwd`/../vulkansdk-macos-1.2.162.0/MoltenVK/dylib/macOS/libMoltenVK.dylib \
- -DNCNN_VULKAN=ON -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF ..
- cmake --build . -j 2
- - name: build-shared
- run: |
- export VULKAN_SDK=`pwd`/vulkansdk-macos-1.2.162.0/macOS
- mkdir build-shared && cd build-shared
- cmake -DCMAKE_CROSSCOMPILING=ON -DCMAKE_SYSTEM_PROCESSOR=arm64 -DCMAKE_OSX_ARCHITECTURES=arm64 \
- -DOpenMP_C_FLAGS="-Xclang -fopenmp" -DOpenMP_CXX_FLAGS="-Xclang -fopenmp" \
- -DOpenMP_C_LIB_NAMES="libomp" -DOpenMP_CXX_LIB_NAMES="libomp" \
- -DOpenMP_libomp_LIBRARY="$DEVELOPER_DIR/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/libomp.a" \
- -DVulkan_INCLUDE_DIR=`pwd`/../vulkansdk-macos-1.2.162.0/MoltenVK/include \
- -DVulkan_LIBRARY=`pwd`/../vulkansdk-macos-1.2.162.0/MoltenVK/dylib/macOS/libMoltenVK.dylib \
- -DNCNN_VULKAN=ON -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF -DNCNN_SHARED_LIB=ON -DNCNN_ENABLE_LTO=ON ..
- cmake --build . -j 2
|