Bump DspTap to 0eb09fa (shared Kaiser-window Bessel series); re-record icount baselines - #47
Merged
Merged
Conversation
… icount DspTap #38 evaluates the Kaiser window's bessel_i0 series once, for half the taps, and mirrors it; the compensated design used to evaluate it per tap in each of two kernel builds. Coefficients are bit-identical, so only construction moves. Ratchet (every scenario flagged IMPROVED beyond tolerance before update), constant per target across all seven scenarios: M33 -393 to -398 M (pipeline_q15 -27.8%) Hexagon -47 M M55 -6 M Baselines re-recorded with icount.py --update; README table regenerated. The comparison workloads' steady state (4 s - 2 s) is unchanged to the instruction on all three targets; construction falls to 870/884 M on M33, 133/136 M on Hexagon, 17.3/18.4 M on M55 (float/Q15). Docs that priced construction (~1.3 G) now say ~0.9 G, and docs/PERFORMANCE.md gets the ledger entry the re-record requires. The pin also brings DspTap's FFT stages (header-only FFT, no compiled tap_dsp_fft by default) and math.h; SampleRateTap uses neither. Host build and 73/73 tests pass under GCC and clang with SRT_WERROR. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G3HxzEGiZp7jStoMuYNuBK
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this changes
Bumps
submodules/dsptapfrom28a34a1to0eb09fa, which includes tap/DspTap#38. It then re-recordsbench/baselines.jsonon all three targets, regenerates the README icount table, and adds thedocs/PERFORMANCE.mdledger entry the re-record requires. Docs that priced construction at ~1.3 G instructions now say ~0.9 G.Why
DspTap#38 computes the Kaiser window's Bessel series once, for half the taps, and mirrors it. The coefficients are bit-identical and the filter design is 32 % cheaper on M33. Every ratchet scenario constructs a converter, so every baseline dropped beyond the two-sided ±3 % gate. The ratchet flagged all 21 as "IMPROVED beyond tolerance" before the update.
Verification
Ratchet, before the update (constant per target across the seven scenarios, the construction-only signature):
pipeline_q15−27.8 %)Ratchet, after
icount.py --update: it passes against the committed file on all three targets. The builds use CI's configure line, the same QEMU plugin-header SHA, the same toolchains (arm-none-eabi-gcc 13.2.1, hexagon-clang 19.1.5) and plugin-enabled qemu-hexagon 8.2.2.compare.ymlrun.Audio path unchanged: the comparison workloads' steady state (4 s − 2 s) is identical to the instruction on all three targets, both float and Q15.
Construction:
Full stereo converter on M33: 0.91 G (was 1.31 G).
Host: 73/73 tests pass under GCC 13 and clang 18 with
SRT_WERROR=ONand the C ABI built.Book: it builds with mdBook v0.4.40 with 0 warnings/errors.
Not run locally: the M33/M55/Hexagon test legs and sanitizers, left to CI.
Notes for the reviewer
28a34a1→0eb09fa. The range also brings DspTap's FFT stages (header-only FFT, no compiledtap_dsp_fftby default) andmath.h. SampleRateTap uses neither, and the build and tests are unaffected.🤖 Generated with Claude Code
https://claude.ai/code/session_01G3HxzEGiZp7jStoMuYNuBK
Generated by Claude Code