Skip to content

CI: also run the tests with 4 threads - #940

Merged
maleadt merged 1 commit into
mainfrom
tb/ci-threads
Nov 5, 2026
Merged

maleadt merged 1 commit into
mainfrom
tb/ci-threads

Conversation

@maleadt

@maleadt maleadt commented Oct 28, 2026

Copy link
Copy Markdown
Member

Split out of #906.

The CPU backend gives PoCL as many threads as Julia has, and the main CI job uses one, so work-groups only ran in parallel in the POCL session test's 4-thread subprocess. This adds a job running the suite with JULIA_NUM_THREADS=4 on Linux and macOS, with Julia 1.10 and 1.13.

@github-actions

github-actions Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Benchmark results

Compared with c42b1f458, the merge base.
Times are the minimum time of every benchmark. A change is unusual when it exceeds both three times the benchmark's typical change between consecutive runs on the default branch and a minimum per category (performance 3%, latency 5%, applications 3%, other 3%). A benchmark that starts or stops allocating is listed however few the allocations. A single run can still be a fluke, so rerun before drawing conclusions.

Geometric mean Unusual: slower Unusual: faster Compared
Performance −0.4% 0 0 32
Latency +0.5% 0 0 13
Applications +0.5% 0 0 5

No unusual changes.

All benchmarks
Benchmark Baseline This PR Change
Performance
julia/serial/arithmetic/muladd-reference 655 µs 655 µs −0.0% noise unknown
julia/serial/math/exp-f64-reference 292 µs 284 µs −2.8% noise unknown
julia/serial/narrow/masked-reference 714 µs 715 µs +0.2% noise unknown
pocl/parallel/atomics/histogram 5.14 ms 5.16 ms +0.3% noise unknown
pocl/parallel/groupreduce/add-f64 1.65 ms 1.66 ms +0.3% noise unknown
pocl/parallel/groupreduce/fallback 19.0 ms 18.1 ms −4.8% noise unknown
pocl/parallel/groupscan/add-i32 2.52 ms 2.52 ms +0.1% noise unknown
pocl/parallel/indexing/cartesian3d 78.5 µs 77.7 µs −0.9% noise unknown
pocl/parallel/indexing/linear3d 80.3 µs 82.9 µs +3.4% noise unknown
pocl/parallel/indexing/ntuple3d 78.7 µs 69.8 µs −11.3% noise unknown
pocl/parallel/indexing/ntuple4d 157 µs 152 µs −3.2% noise unknown
pocl/parallel/localmem/transpose-naive 456 µs 449 µs −1.6% noise unknown
pocl/parallel/localmem/transpose-tiled 92.9 µs 102 µs +9.7% noise unknown
pocl/parallel/private/across-barrier 165 µs 164 µs −0.2% noise unknown
pocl/parallel/scheduling/default 182 µs 182 µs +0.0% noise unknown
pocl/parallel/scheduling/explicit 182 µs 181 µs −0.3% noise unknown
pocl/parallel/stream/copy/cache 781 ns 672 ns −14.0% noise unknown
pocl/parallel/stream/copy/dram 6.41 ms 6.24 ms −2.6% noise unknown
pocl/parallel/stream/triad/cache 7.17 µs 7.59 µs +5.8% noise unknown
pocl/parallel/stream/triad/dram 9.42 ms 9.30 ms −1.3% noise unknown
pocl/parallel/util/copyto-small 24.0 ns 24.0 ns +0.0% noise unknown
pocl/parallel/util/zeros-large 1.01 ms 997 µs −0.9% noise unknown
pocl/parallel/util/zeros-small 619 ns 640 ns +3.4% noise unknown
pocl/serial/arithmetic/contract 1.91 ms 1.91 ms −0.2% noise unknown
pocl/serial/arithmetic/muladd 756 µs 767 µs +1.4% noise unknown
pocl/serial/const/marked 728 µs 731 µs +0.3% noise unknown
pocl/serial/const/unmarked 910 µs 920 µs +1.1% noise unknown
pocl/serial/math/exp-f64 154 µs 153 µs −0.4% noise unknown
pocl/serial/math/sin-f64 194 µs 193 µs −0.5% noise unknown
pocl/serial/narrow/masked 807 µs 830 µs +2.8% noise unknown
pocl/serial/narrow/unmasked 766 µs 804 µs +4.9% noise unknown
pocl/serial/stream/triad/dram 8.62 ms 8.64 ms +0.3% noise unknown
Latency
host/import/ka 501 ms 503 ms +0.3% noise unknown
host/precompile/ka 44.4 s 44.8 s +0.8% noise unknown
host/startup 128 ms 129 ms +0.3% noise unknown
pocl/parallel/launch/dynamic-default 4.37 µs 4.39 µs +0.6% noise unknown
pocl/parallel/launch/groupreduce-f64 6.59 µs 6.62 µs +0.5% noise unknown
pocl/parallel/launch/many-args 11.2 µs 11.8 µs +5.3% noise unknown
pocl/parallel/launch/partial-workgroup 4.25 µs 4.14 µs −2.7% noise unknown
pocl/serial/compile/groupreduce 1.39 s 1.39 s −0.2% noise unknown
pocl/serial/compile/localmem-barrier 697 ms 693 ms −0.5% noise unknown
pocl/serial/compile/new-kernel 117 ms 126 ms +7.7% noise unknown
pocl/serial/compile/new-workgroupsize 14.1 ms 13.5 ms −4.5% noise unknown
pocl/serial/first-kernel/cold-cache 1.95 s 1.94 s −0.1% noise unknown
pocl/serial/first-kernel/warm-cache 279 ms 279 ms +0.1% noise unknown
Applications
pocl/parallel/dgsem/fluxdiff-node 291 µs 288 µs −1.0% noise unknown
pocl/parallel/dgsem/weak-element 159 µs 159 µs −0.1% noise unknown
pocl/parallel/dgsem/weak-node-localmem 119 µs 118 µs −0.2% noise unknown
pocl/parallel/stencil/timestep 7.75 ms 7.80 ms +0.7% noise unknown
pocl/serial/stencil/timestep 11.3 ms 11.6 ms +3.1% noise unknown

History: https://juliagpu.org/perf/?pkg=kernelabstractions

@codecov

codecov Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.95%. Comparing base (c42b1f4) to head (5714ac0).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #940      +/-   ##
==========================================
- Coverage   84.80%   83.95%   -0.85%     
==========================================
  Files          31       31              
  Lines        2593     2543      -50     
==========================================
- Hits         2199     2135      -64     
- Misses        394      408      +14     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

The CPU backend gives PoCL as many threads as Julia has, and the main CI
job uses one, so work-groups only ran in parallel in the POCL session
test's 4-thread subprocess. Add a job running the suite with 4 threads on
Linux and macOS, with Julia 1.10 and 1.13.
@maleadt
maleadt merged commit e763ae6 into main Nov 5, 2026
33 of 34 checks passed
@maleadt
maleadt deleted the tb/ci-threads branch November 5, 2026 08:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant