Uh oh!
There was an error while loading. Please reload this page.
ENH: Add performance benchmark CI builds - #612
Conversation
6a32231 to
ce113c5Comparejhlegarreta
commented
Mar 25, 2019
Speechless. Awesome. |
71f2cc5 to
111d88bComparec0f2bbb to
289543aComparefa20324 to
96b6114Compare96b6114 to
b1d0d43Compareb1d0d43 to
9cc56faCompareErrors:
|
thewtex
commented
Apr 24, 2019
9cc56fa to
1e53cfbComparemathstuf
commented
Apr 24, 2019
Hmm. Seems we got a timeout on one of our queries. Do: check |
0948b8f to
698efc6CompareAdd .github/workflows/perf-benchmark.yml, an opt-in GHA workflow that runs the ASV-based performance regression harness hosted at InsightSoftwareConsortium/ITKPerformanceBenchmarking on pull requests labelled 'performance' (or via manual dispatch). The workflow: - Computes BASE = merge-base(PR, origin/master) and builds ITK at both BASE and PR HEAD with Module_PerformanceBenchmarking=ON, BUILD_EXAMPLES=ON, BUILD_TESTING=ON (required for the ExternalData fixture fetch), and BUILD_SHARED_LIBS=OFF. The two builds share a ccache so the second build is mostly incremental. - Builds only the benchmark executables plus ITKBenchmarksData, avoiding a full ITK test suite build. - Checks out InsightSoftwareConsortium/ITKPerformanceBenchmarking at the PERF_HARNESS_REF env var (defaults to the asv-native- harness branch while that work is landing upstream; flip to a merged SHA afterwards). - Creates the 'itk-repo' symlink required by the harness's asv.conf.json, installs the itk_perf_shim Python package, and runs 'asv run --set-commit-hash <SHA>' against each build so result labels track ITK history. - 'asv compare --factor=1.10 --split' produces a markdown diff; posted as a sticky PR comment and uploaded as an artifact along with the 'asv publish' HTML tree. Opt-in via the 'performance' label keeps the two-ITK-build cost off the default PR path. No changes to any existing workflow or Azure Pipelines file. Replaces the intent of the long-stalled thewtex/ITK:ci-performance- builds branch (InsightSoftwareConsortium#612), which proposed an Azure Pipelines job targetting the retired macos-11 image and the legacy evaluate-itk-performance.py driver.
c6b6b60 to
fbbbf29Comparefbbbf29 to
cfa9a3fComparecfa9a3f to
c4e39a6Comparehjmjohnson
commented
Apr 23, 2026
@thewtex — the rebase + To remove the in-workflow patch permanently:
|
c4e39a6 to
2359970Comparehjmjohnson
commented
Apr 23, 2026
@thewtex — ITKPerformanceBenchmarking#113 merged (b24324f922). Force-pushed tip Net diff vs the pre-rebase tip
Fresh CI kicked off; should settle similarly to the previous run ( |
|
| Filename | Overview |
|---|---|
| .github/workflows/perf-benchmark.yml | New CI workflow running ASV benchmarks on base vs HEAD; broken for workflow_dispatch due to empty github.base_ref, and has unused CMakeVersion/ExternalDataVersion env vars. |
| Modules/Remote/PerformanceBenchmarking.remote.cmake | Single-line GIT_TAG bump to pin the commit that introduced the ASV harness (asv.conf.json) required by the new workflow. |
Sequence Diagram
sequenceDiagram
participant GHA as GitHub Actions
participant Base as itk-base (merge-base)
participant Head as itk-head (PR HEAD)
participant ASV as ASV Harness
GHA->>Base: checkout @ merge-base
GHA->>Head: checkout @ PR HEAD (full history)
GHA->>Base: cmake configure + build benchmark targets
GHA->>Head: cmake configure + build benchmark targets
Note over Head: PerformanceBenchmarking module populated with asv.conf.json
GHA->>ASV: pip install harness (from itk-head)
GHA->>ASV: asv machine --yes
GHA->>ASV: asv run --quick @ merge-base SHA
Note over ASV: continue-on-error: true
GHA->>ASV: asv run --quick @ HEAD SHA
GHA->>ASV: asv compare merge-base HEAD
ASV-->>GHA: asv-compare.txt + results artifact
Reviews (1): Last reviewed commit: "COMP: Bump PerformanceBenchmarking pin t..." | Re-trigger Greptile
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
2359970 to
a677cfcComparehjmjohnson
commented
Apr 25, 2026
@thewtex. I have been addressing old issues and cleaning up the backlog, so I went straight to the oldest PR. I'd like to take this to a final resting state. I'm ok if we just close it, or include it, or make some changes to get it over a finish line (whatever goal-post changing finish line is currently most beneficial). This was a nice test bed for resolving some other issues, and I think it is now ready for final remarks. |
jhlegarreta
left a comment
There was a problem hiding this comment.
Thanks for pushing this @hjmjohnson.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Adds .github/workflows/perf-benchmark.yml — a GitHub Actions workflow that builds ITK twice (merge-base and PR HEAD) with the PerformanceBenchmarking remote module enabled, then drives the ASV harness from InsightSoftwareConsortium/ITKPerformanceBenchmarking#111 against each build to produce an asv compare report. Bumps the PerformanceBenchmarking remote module pin from 7950c1d76095033edbf7601a925cdacc2fe717f9 to 41bf1b9cfbaa1b146e1b3e5d3ad3571b2203ce1e (master HEAD, post-InsightSoftwareConsortium#111). The new pin carries: * asv.conf.json, benchmarks/{core,filtering,segmentation}.py, python/itk_perf_shim/ (the ASV harness). * Hardened examples/Core/itkCopyIterationBenchmark.cxx that no longer crashes on VectorImage under ITK >= 1d87efa (the VLV null-data regression; see InsightSoftwareConsortium#6087 for the parallel ITK-side defensive null-guard). Supersedes the 2019 Azure Pipelines macos-11 approach; macos-11 is retired and the older evaluate-itk-performance.py driver has been replaced by the ASV-native harness. For the very first PR (this one) the merge-base lacks the new pin, so its benchmark run is best-effort and the asv compare step is wrapped with continue-on-error. The workflow becomes fully useful for regression detection after this PR lands.
Advance the GIT_TAG in Modules/Remote/PerformanceBenchmarking.remote.cmake to 63fec3013cccfe7e8b1b88a1d2d889f7e64e4469, the current tip of InsightSoftwareConsortium/ITKPerformanceBenchmarking master, which includes the COMP: Drop unused InputPixelType typedefs cleanup that silences the -Wunused-local-typedef warnings the perf-benchmark CI job emitted on the prior pin.
hjmjohnson
commented
Apr 28, 2026
/azp run ITK.macOS |
No description provided.