Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 20 additions & 16 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,11 @@ on:
description: "comma list: smoke,full,nightly (blank = all)"
default: ""

env:
CCACHE_DISABLE: 1
# ccache stays on: a hosted runner starts every job with an empty cache, so it
# cannot serve an object built against other headers (the stale-object class
# seen on persistent machines), and within a job it turns a cell's repeated sim
# builds and its config-invariant objects (Verilator runtime, host driver) into
# cache hits.

jobs:
# ---------------------------------------------------------------------------
Expand Down Expand Up @@ -196,16 +199,22 @@ jobs:

# ---------------------------------------------------------------------------
# tests — one cell per (category, driver, xlen); pytest selects via markers.
# A cell whose recorded runtime exceeds ci/testcase.py's SHARD_BUDGET_S is
# planned as several shards (`shard` of `shards`), balanced on the per-case
# times in ci/runtimes.json, so every cell fits the 3 h timeout.
# ---------------------------------------------------------------------------
tests:
needs: [plan, build]
if: needs.plan.outputs.run == 'true'
name: tests (${{ matrix.category }}, ${{ matrix.driver }}, ${{ matrix.xlen }}${{ matrix.shards && format(', {0}/{1}', matrix.shard, matrix.shards) || '' }})
strategy:
fail-fast: false
matrix:
include: ${{ fromJSON(needs.plan.outputs.cells) }}
runs-on: ubuntu-22.04
timeout-minutes: 300
timeout-minutes: 180
env:
CELL: ${{ matrix.category }}-${{ matrix.driver }}-${{ matrix.xlen }}${{ matrix.shards && format('-{0}of{1}', matrix.shard, matrix.shards) || '' }}
steps:
- uses: actions/checkout@v4
- name: Setup Vortex
Expand All @@ -227,23 +236,18 @@ jobs:
run: |
cd build${{ matrix.xlen }}
chmod -R +x .
EXPR="${{ matrix.category }}"
[ "${{ matrix.driver }}" != "host" ] && EXPR="$EXPR and ${{ matrix.driver }}"
# A cross-cutting check (model_parity, perf_gate) has its own dedicated
# cell whose `-m <check>` sweeps every such case catalog-wide; exclude
# those cases from every OTHER category's cell so each runs once, not
# twice. The check list comes from the planner, never a copy of it.
for c in $(python3 ci/testcase.py checks); do
[ "${{ matrix.category }}" = "$c" ] && continue
EXPR="$EXPR and not $c"
done
# The planner owns what a cell selects, so the cell runs exactly the
# cases it was planned (and, if sharded, split) from.
EXPR=$(python3 ci/testcase.py expr --cell="${{ matrix.category }}" --driver="${{ matrix.driver }}")
SHARD=()
[ -n "${{ matrix.shards }}" ] && SHARD=(--shard="${{ matrix.shard }}/${{ matrix.shards }}")
VX_XLEN=${{ matrix.xlen }} python3 -m pytest ci -m "$EXPR" --strict-markers \
-v \
--junitxml="$GITHUB_WORKSPACE/junit-${{ matrix.category }}-${{ matrix.driver }}-${{ matrix.xlen }}.xml"
"${SHARD[@]}" -v \
--junitxml="$GITHUB_WORKSPACE/junit-$CELL.xml"
- uses: actions/upload-artifact@v4
if: always()
with:
name: junit-${{ matrix.category }}-${{ matrix.driver }}-${{ matrix.xlen }}
name: junit-${{ env.CELL }}
path: junit-*.xml

complete:
Expand Down
4 changes: 3 additions & 1 deletion VX_config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -375,7 +375,9 @@ VX_CFG_RASTER_BLOCK_LOG_SIZE = 2
VX_CFG_RASTER_MEM_FIFO_DEPTH = 8
VX_CFG_RASTER_QUAD_FIFO_DEPTH = 32
VX_CFG_RASTER_MEM_QUEUE_SIZE = 4
VX_CFG_RASTER_EARLYZ_ENABLE = false
# Early-Z occlusion cull: on wherever it is legal. It reads committed depth
# through the OM's ocache, so it needs both units (VX_define.vh enforces it).
VX_CFG_RASTER_EARLYZ_ENABLE = "expr: $VX_CFG_EXT_RASTER_ENABLE and $VX_CFG_EXT_OM_ENABLE"

[om]
VX_CFG_NUM_OM_CORES = "expr: max(1, up($VX_CFG_NUM_CORES / 8))"
Expand Down
32 changes: 16 additions & 16 deletions ci/baselines/perf/core.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
},
"app": "raycast",
"args": "",
"config_hash": "ae710a554c1b4afe",
"config_hash": "ee3a227211fa9942",
"configs": "-DVX_CFG_NUM_THREADS=16",
"driver": "rtlsim"
},
Expand All @@ -17,7 +17,7 @@
},
"app": "raycast",
"args": "",
"config_hash": "204dd696e55b22c0",
"config_hash": "c8b680eabeb18655",
"configs": "-DVX_CFG_NUM_THREADS=4",
"driver": "rtlsim"
},
Expand All @@ -28,7 +28,7 @@
},
"app": "sgemm",
"args": "-n128",
"config_hash": "4e0d1121c7c753fb",
"config_hash": "58eb3cc06964207a",
"configs": "-DVX_CFG_NUM_WARPS=8 -DVX_CFG_NUM_CORES=2 -DVX_CFG_NUM_THREADS=16 -DVX_CFG_L2_ENABLE",
"driver": "rtlsim"
},
Expand All @@ -39,7 +39,7 @@
},
"app": "sgemm",
"args": "-n128",
"config_hash": "2e368e29b49794c1",
"config_hash": "aa6f26c7306417a8",
"configs": "-DVX_CFG_NUM_WARPS=8 -DVX_CFG_NUM_CORES=2 -DVX_CFG_NUM_THREADS=4 -DVX_CFG_L2_ENABLE",
"driver": "rtlsim"
},
Expand All @@ -50,7 +50,7 @@
},
"app": "sgemm",
"args": "-n128",
"config_hash": "8493bfcbea192f2b",
"config_hash": "b390d957eec8220f",
"configs": "-DVX_CFG_NUM_THREADS=16",
"driver": "rtlsim"
},
Expand All @@ -61,7 +61,7 @@
},
"app": "sgemm",
"args": "-n128",
"config_hash": "ef1d8528f632523b",
"config_hash": "13d03df76d55105e",
"configs": "-DVX_CFG_NUM_THREADS=4",
"driver": "rtlsim"
},
Expand All @@ -72,7 +72,7 @@
},
"app": "sgemmx",
"args": "-n128",
"config_hash": "c016962fb7669255",
"config_hash": "68638b6685801699",
"configs": "-DVX_CFG_NUM_THREADS=16",
"driver": "rtlsim"
},
Expand All @@ -83,7 +83,7 @@
},
"app": "sgemmx",
"args": "-n128",
"config_hash": "65047df50cd355e6",
"config_hash": "837240be3049d62e",
"configs": "-DVX_CFG_NUM_THREADS=4",
"driver": "rtlsim"
},
Expand All @@ -94,7 +94,7 @@
},
"app": "sgemv",
"args": "-m512 -n512",
"config_hash": "70d3eb40917f6df3",
"config_hash": "c6a3720118661bf7",
"configs": "-DVX_CFG_NUM_THREADS=16",
"driver": "rtlsim"
},
Expand All @@ -105,7 +105,7 @@
},
"app": "sgemv",
"args": "-m512 -n512",
"config_hash": "e359f1a79bc49193",
"config_hash": "db6bb5af90ecc1a5",
"configs": "-DVX_CFG_NUM_THREADS=4",
"driver": "rtlsim"
},
Expand All @@ -116,7 +116,7 @@
},
"app": "softmax",
"args": "-n64",
"config_hash": "91488cd182a7671a",
"config_hash": "1c0e7742deb14093",
"configs": "-DVX_CFG_NUM_THREADS=16",
"driver": "rtlsim"
},
Expand All @@ -127,7 +127,7 @@
},
"app": "softmax",
"args": "-n64",
"config_hash": "c8061d3015fc6d7e",
"config_hash": "3797eecae3200315",
"configs": "-DVX_CFG_NUM_THREADS=4",
"driver": "rtlsim"
},
Expand All @@ -138,7 +138,7 @@
},
"app": "stencil3d",
"args": "-n32",
"config_hash": "e659f36c50fcf6bf",
"config_hash": "aa768c2a9c65b092",
"configs": "-DVX_CFG_NUM_THREADS=16",
"driver": "rtlsim"
},
Expand All @@ -149,7 +149,7 @@
},
"app": "stencil3d",
"args": "-n32",
"config_hash": "3bbd7b84bf73c746",
"config_hash": "5400d882a6c96ac1",
"configs": "-DVX_CFG_NUM_THREADS=4",
"driver": "rtlsim"
},
Expand All @@ -160,7 +160,7 @@
},
"app": "vecadd",
"args": "-n16384",
"config_hash": "a5ce692bba42344b",
"config_hash": "98b8bdc5e546ea62",
"configs": "-DVX_CFG_NUM_THREADS=16",
"driver": "rtlsim"
},
Expand All @@ -171,7 +171,7 @@
},
"app": "vecadd",
"args": "-n16384",
"config_hash": "7ad7759234a8fedf",
"config_hash": "1510b8438164b252",
"configs": "-DVX_CFG_NUM_THREADS=4",
"driver": "rtlsim"
}
Expand Down
22 changes: 11 additions & 11 deletions ci/baselines/perf/dxa.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
},
"app": "dxa_copy_mcast",
"args": "",
"config_hash": "d8dc71acb72624de",
"config_hash": "cbcd10be884ceab7",
"configs": "-DVX_CFG_EXT_DXA_ENABLE",
"driver": "rtlsim"
},
Expand All @@ -17,7 +17,7 @@
},
"app": "dxa_copy",
"args": "-d1",
"config_hash": "84239768cfc34b0d",
"config_hash": "3a1ec1b81b5b3baf",
"configs": "-DVX_CFG_EXT_DXA_ENABLE -DVX_CFG_NUM_THREADS=16",
"driver": "rtlsim"
},
Expand All @@ -28,7 +28,7 @@
},
"app": "dxa_copy",
"args": "-d1",
"config_hash": "e315513bdc6942fb",
"config_hash": "3a888067fcc449d6",
"configs": "-DVX_CFG_EXT_DXA_ENABLE -DVX_CFG_NUM_THREADS=4",
"driver": "rtlsim"
},
Expand All @@ -39,7 +39,7 @@
},
"app": "sgemm2_dxa_mcast",
"args": "-n128",
"config_hash": "d6edd97b6570efdd",
"config_hash": "14050e4dcef65266",
"configs": "-DVX_CFG_EXT_DXA_ENABLE -DVX_CFG_NUM_THREADS=16",
"driver": "rtlsim"
},
Expand All @@ -50,7 +50,7 @@
},
"app": "sgemm2_dxa_mcast",
"args": "-n128",
"config_hash": "f638e7687fcfdf72",
"config_hash": "a55b900d67aa3657",
"configs": "-DVX_CFG_EXT_DXA_ENABLE -DVX_CFG_NUM_THREADS=4",
"driver": "rtlsim"
},
Expand All @@ -61,7 +61,7 @@
},
"app": "sgemm2_dxa",
"args": "-n128 -t4 -m1",
"config_hash": "538516a52b3616f9",
"config_hash": "36f5886fdc97e040",
"configs": "-DVX_CFG_EXT_DXA_ENABLE -DVX_CFG_NUM_THREADS=16",
"driver": "rtlsim"
},
Expand All @@ -72,7 +72,7 @@
},
"app": "sgemm2_dxa",
"args": "-n128 -t4 -m1",
"config_hash": "b68ce24c030ee769",
"config_hash": "9ccf890d5ac45a62",
"configs": "-DVX_CFG_EXT_DXA_ENABLE -DVX_CFG_NUM_THREADS=4",
"driver": "rtlsim"
},
Expand All @@ -83,7 +83,7 @@
},
"app": "sgemm_tcu_wg_dxa_mcast",
"args": "-m 128 -n 128 -k 64",
"config_hash": "f2390772053e2d69",
"config_hash": "ee7678a7e7e9b79b",
"configs": "-DVX_CFG_EXT_TCU_ENABLE -DVX_CFG_EXT_DXA_ENABLE -DVX_CFG_NUM_ALU_BLOCKS=1 -DVX_CFG_NUM_LSU_BLOCKS=1 -DVX_CFG_NUM_FPU_BLOCKS=1 -DVX_CFG_NUM_THREADS=16",
"driver": "rtlsim"
},
Expand All @@ -94,7 +94,7 @@
},
"app": "sgemm_tcu_wg_dxa_mcast",
"args": "-m 128 -n 128 -k 64",
"config_hash": "66b8301aa43d2744",
"config_hash": "c79015e4caec7b93",
"configs": "-DVX_CFG_EXT_TCU_ENABLE -DVX_CFG_EXT_DXA_ENABLE -DVX_CFG_NUM_ALU_BLOCKS=1 -DVX_CFG_NUM_LSU_BLOCKS=1 -DVX_CFG_NUM_FPU_BLOCKS=1 -DVX_CFG_NUM_THREADS=4",
"driver": "rtlsim"
},
Expand All @@ -105,7 +105,7 @@
},
"app": "sgemm_tcu_wg_dxa",
"args": "-m 128 -n 128 -k 64",
"config_hash": "ba8978d35dc6e582",
"config_hash": "5a35710ef3aec3a6",
"configs": "-DVX_CFG_ISSUE_WIDTH=4 -DVX_CFG_EXT_TCU_ENABLE -DVX_CFG_TCU_WGMMA_ENABLE -DVX_CFG_EXT_DXA_ENABLE -DWGMMA_NRC=16 -DVX_CFG_NUM_ALU_BLOCKS=1 -DVX_CFG_NUM_LSU_BLOCKS=1 -DVX_CFG_NUM_FPU_BLOCKS=1 -DVX_CFG_NUM_WARPS=8 -DVX_CFG_NUM_THREADS=32",
"driver": "rtlsim"
},
Expand All @@ -116,7 +116,7 @@
},
"app": "sgemm_tcu_wg_sp_dxa",
"args": "-m 128 -n 128 -k 128",
"config_hash": "9480be10a4650239",
"config_hash": "d12fad3fd43e61c6",
"configs": "-DVX_CFG_ISSUE_WIDTH=4 -DVX_CFG_EXT_TCU_ENABLE -DVX_CFG_TCU_WGMMA_ENABLE -DVX_CFG_TCU_SPARSE_ENABLE -DVX_CFG_EXT_DXA_ENABLE -DWGMMA_NRC=32 -DVX_CFG_NUM_ALU_BLOCKS=1 -DVX_CFG_NUM_LSU_BLOCKS=1 -DVX_CFG_NUM_FPU_BLOCKS=1 -DVX_CFG_NUM_WARPS=8 -DVX_CFG_NUM_THREADS=32",
"driver": "rtlsim"
}
Expand Down
Loading
Loading