ci
Our CI infrastructure is currently hosted on cloud. Cloud machines are used and linked as GitHub runners.
Key Words
Target Silicon (coming soon)
- 1:1 mapping to unique system-desc (this is because an n150 card can have different harvested rows)
Target Family
- product type (n150, n300)
Target Capabilities (coming soon)
- describes testable traits of Target Family
n150: {
test params to use if running on n150
}
n300: {
test params to use if running on n150
}
Test Capabilities (coming soon)
- set of target capabilities defined in the test
- test will populate certain parameters depending on the Target Family/Target Silicon it is running on
GitHub Runner CI Tags
Runner Use
There are 2 types of runner machines. Builders build offline and runners are silicon machines.
- builder
- runner
Runner Type
There are 2 runner types. Bare metals are standalone and virtual machines are kubernetes pods.
- bare-metal
- virtual-machine
Architecture
Supported architectures
- wormhole_b0
- blackhole (coming soon)
Pipeline Type
Supported pipelines
- perf
- functional
Active
Defines whether a runner is in service or taken out of service for maintenance
- in-service
- out-of-service
Target Family
Supported configurations of machines
- n150
- n300
- t3000 (coming soon)
- tg (coming soon)
- tgg (coming soon)
Target Silicon (coming soon)
-silicon-n150-0 (0th row harvested)
-silicon-n150-1 (1th row harvested)
-silicon-n300-0-0 (0th row harvested both chips)
Pipeline durations
- push: every push to main
- pr: every PR
CI Test Flow
1. GitHub runner
- build tt-mlir
- build ttrt
- upload artifacts
2. Silicon runner
- download tt-mlir / ttrt artifacts
- ttrt generate system desc
- llvm-lit runs all unit test, including silicon ones to generate flatbuffers (will only generate ones that are supported for that test file)
- ttrt runs generated flatbuffers
Adding a test
When adding a test, you can specify when the test should run and what values it should inherit. The test defines how it should run, not the infrastructure. The infrastructure will execute what the test defines. For now, if you specify nothing, it will run on all default parameters. Note: if you provide a target family, then it will be default run on any target silicon machine. If you need a specific target silicon machine (eg one with 1st row harvested), specify it in Target Silicon. Note: if you specify perf pipeline, it will automatically run on a bare metal machine Default parameters
[Architecture]: [wormhole_b0]
[Pipeline]: [functional, perf]
[Target Family]: [n150, n300]
[Target Silicon]: []
[Duration]: [push]
Location: test/ttmlir/Silicon
File Type: .mlir
REQUIRES: [Architecture] [Pipeline] [Target Family] [Target Silicon] [Duration] (coming soon)
UNSUPPORTED: [Target Family] [Target Silicon] (coming soon)