Parallelize CUDA MoE top-k routing #521
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| build-and-test: | |
| strategy: | |
| matrix: | |
| include: | |
| - os: ubuntu-latest | |
| cc: gcc | |
| - os: ubuntu-latest | |
| cc: clang | |
| - os: macos-latest | |
| cc: clang | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Build | |
| run: make bitnet | |
| env: | |
| CC: ${{ matrix.cc }} | |
| - name: Build scalar CPU backend | |
| run: make bitnet_scalar | |
| env: | |
| CC: ${{ matrix.cc }} | |
| - name: Test | |
| run: make test | |
| env: | |
| CC: ${{ matrix.cc }} | |
| - name: Metal backend compile check | |
| if: runner.os == 'macOS' | |
| run: make BN_ENABLE_METAL=1 test_coherence | |
| env: | |
| CC: ${{ matrix.cc }} | |
| sanitizers: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| sanitizer: [asan, tsan] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Build and test with sanitizer | |
| run: | | |
| if [ "${{ matrix.sanitizer }}" = "asan" ]; then | |
| make test CFLAGS="-O1 -g -march=native -std=c11 -D_GNU_SOURCE -Iinclude -Wall -Wextra \ | |
| -fsanitize=address,undefined -fno-omit-frame-pointer" \ | |
| LDFLAGS="-lm -lpthread -fsanitize=address,undefined" | |
| else | |
| make test CFLAGS="-O1 -g -march=native -std=c11 -D_GNU_SOURCE -Iinclude -Wall -Wextra \ | |
| -fsanitize=thread" \ | |
| LDFLAGS="-lm -lpthread -fsanitize=thread" | |
| fi | |
| env: | |
| CC: clang | |
| cppcheck: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install cppcheck | |
| run: sudo apt-get install -y cppcheck | |
| - name: Run cppcheck | |
| run: > | |
| cppcheck --error-exitcode=1 --enable=warning,performance | |
| --suppress=missingIncludeSystem | |
| --suppress=duplicateAssignExpression | |
| -Iinclude src/ | |
| avx2-syntax: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: AVX2 syntax check | |
| run: make avx2-check | |
| env: | |
| CC: clang | |
| architecture-matrix: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Backend and model matrix dry run | |
| run: make test_architecture | |
| env: | |
| CC: clang | |
| wasm: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Emscripten | |
| uses: mymindstorm/setup-emsdk@v14 | |
| - name: Build WASM | |
| run: wasm/build.sh |