Skip to content

Commit

Permalink
#104: Add ttnn flatbuffer tests into CI
Browse files Browse the repository at this point in the history
  • Loading branch information
tapspatel committed Aug 1, 2024
1 parent 65eea8b commit 3723358
Show file tree
Hide file tree
Showing 2 changed files with 128 additions and 1 deletion.
126 changes: 126 additions & 0 deletions .github/workflows/ttnn-flatbuffer.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
name: Build

on:
workflow_dispatch:
workflow_call:
schedule:
- cron: "0 */2 * * *" # This cron schedule runs the workflow every 2 hours

env:
SDK_VERSION: "0"

jobs:
build:
strategy:
fail-fast: false
matrix:
build: [
{runs-on: n150, c_compiler: clang, cpp_compiler: clang++, build_type: Release, enable_runtime: ON, enable_perf: OFF},
{runs-on: n150, c_compiler: clang, cpp_compiler: clang++, build_type: Release, enable_runtime: ON, enable_perf: ON},
]
runs-on: ${{ matrix.build.runs-on }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Fetch all history and tags

- name: Install build dependencies
uses: ./.github/actions/install-deps
with:
os: ${{ matrix.build.runs-on }}

- name: Get macos sdk version
if: startsWith(matrix.build.runs-on, 'macos')
shell: bash
run: |
echo "SDK_VERSION=$(xcrun --show-sdk-version)" >> $GITHUB_ENV
- name: Build and cache ttmlir-toolchain
uses: ./.github/actions/build-toolchain
with:
os: ${{ matrix.build.runs-on }}
sdk: ${{ env.SDK_VERSION }}

- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
create-symlink: true
key: ${{ matrix.build.runs-on }}-runtime-${{ matrix.build.enable_runtime }}-${{ matrix.build.enable_perf }}-${{ env.SDK_VERSION }}

- name: Set reusable strings
id: strings
shell: bash
run: |
echo "build-output-dir=${{ github.workspace }}/build" >> "$GITHUB_OUTPUT"
- name: Configure CMake
shell: bash
run: |
source env/activate
cmake -G Ninja \
-B ${{ steps.strings.outputs.build-output-dir }} \
-DCMAKE_CXX_COMPILER=${{ matrix.build.cpp_compiler }} \
-DCMAKE_C_COMPILER=${{ matrix.build.c_compiler }} \
-DCMAKE_BUILD_TYPE=${{ matrix.build.build_type }} \
-DTTMLIR_ENABLE_RUNTIME=${{ matrix.build.enable_runtime }} \
-DTTMLIR_ENABLE_RUNTIME_TESTS=${{ matrix.build.enable_runtime }} \
-DTT_RUNTIME_ENABLE_PERF_TRACE=${{ matrix.build.enable_perf }} \
-S ${{ github.workspace }}
- name: Set perf env variables
if: ${{ matrix.build.enable_perf }} == 'ON'
shell: bash
run: |
export ENABLE_TRACY=1
- name: Build
shell: bash
run: |
source env/activate
cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ matrix.build.build_type }}
- name: Lint
if: ${{ matrix.enable_runtime }} == 'OFF'
shell: bash
run: |
source env/activate
cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ matrix.build.build_type }} -- clang-tidy
- name: Run Test
shell: bash
run: |
source env/activate
cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ matrix.build.build_type }} -- check-ttmlir
- name: Build ttrt
shell: bash
run: |
source env/activate
cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ matrix.build.build_type }} -- ttrt
- name: Run ttrt functional tests
if: ${{ matrix.build.enable_perf }} == 'OFF'
shell: bash
run: |
source env/activate
ttrt run ${{ steps.strings.outputs.build-output-dir }}/test/ttmlir/Silicon
- name: Run ttrt performance tests
if: ${{ matrix.build.enable_perf }} == 'ON'
shell: bash
run: |
source env/activate
ttrt run perf ${{ steps.strings.outputs.build-output-dir }}/test/ttmlir/Silicon
- name: Upload Test Report
uses: actions/upload-artifact@v4
with:
name: test-reports-${{ matrix.build.runs-on }}
path: build/test/report.xml

- name: Show Test Report
uses: mikepenz/action-junit-report@v4
if: success() || failure()
with:
report_paths: build/test/report.xml
check_name: ${{ matrix.build.runs-on }} MLIR Tests
3 changes: 2 additions & 1 deletion runtime/tools/python/ttrt/common/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -172,10 +172,11 @@ def run(args):

system_desc, device_ids = ttrt.runtime.get_current_system_desc()
device = ttrt.runtime.open_device(device_ids)
atexit.register(lambda: ttrt.runtime.close_device(device))
#atexit.register(lambda: ttrt.runtime.close_device(device))
for loop in range(arg_loops):
ttrt.runtime.submit(device, fbb, 0, total_inputs[loop], total_outputs[loop])
print(f"finished loop={loop}")
ttrt.runtime.close_device(device)
print("outputs:\n", torch_outputs)

# save artifacts
Expand Down

0 comments on commit 3723358

Please sign in to comment.