Skip to content

[PERFORMANCE] Optimize long linear convolution scheduling - #324

Merged
sdatkinson merged 6 commits into
mainfrom
codex/nonuniform-linear-convolution
Aug 23, 2026
Merged

[PERFORMANCE] Optimize long linear convolution scheduling#324
sdatkinson merged 6 commits into
mainfrom
codex/nonuniform-linear-convolution

Conversation

@sdatkinson

Copy link
Copy Markdown
Owner

Summary

  • replace the uniform 1,024-sample tail with exact non-uniform power-of-two convolution tiers
  • distribute spectral multiply work over each tier deadline and phase-stagger transforms
  • use real half spectra and a benchmark-tuned dispatch table from 1K taps through one-minute responses
  • add callback-distribution benchmarking, full-length impulse verification, and dispatch/correctness tests

This is stacked on #323 because the plugin update currently consumes that Sequential branch.

Performance

On Apple M1, Release -O3, 48 kHz, 32-sample callbacks:

  • 1,208,121 taps: p99 107 us, max 525 us, 0 overruns (666.67 us deadline)
  • 2,880,000 taps: p99 112 us, max 325 us, 0 overruns
  • previous atmospheric-model implementation: approximately 2.7-3.1 ms p99

The dispatch choices and candidate tradeoffs are recorded in tools/BENCHMARK_LINEAR.md.

Validation

  • full Core Release build
  • complete Core test suite
  • AddressSanitizer + UndefinedBehaviorSanitizer test suite
  • allocation-tracking tests
  • full 2,880,000-tap impulse render: max absolute error 6.4e-10
  • full 1,208,121-tap impulse render with 63-sample callbacks: max absolute error 6.4e-10
  • universal arm64/x86_64 Release VST3 build and local install

Base automatically changed from 142-feature-sequential-model to main August 23, 2026 01:25
@sdatkinson sdatkinson changed the title Optimize long linear convolution scheduling [PERFORMANCE] Optimize long linear convolution scheduling Aug 23, 2026
@sdatkinson
sdatkinson merged commit 2563c0f into main Aug 23, 2026
4 checks passed
@sdatkinson
sdatkinson deleted the codex/nonuniform-linear-convolution branch August 23, 2026 20:13
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