Repository navigation
v0.16.7
AMSignal-0.16.7-performance-results.json · Скачать EXE / Download EXE · SHA-256
Русский
- Многоканальный FFT и пакетный H1 используют общие вычисления без изменения исходной длины и определения анализа.
- Сохранены параметры и ограничения замеров; рост пика памяти указан в полном журнале.
English
- Multi-channel FFT and batch H1 reuse shared work while preserving input length and analysis definitions.
- Measurement conditions and limitations are retained; the full notes record the higher peak memory cost.
Полный прежний журнал / Full original release notes
Русский
Ускорены многоканальные FFT и пакетный расчёт H1/АЧХ без изменения исходной
длины записи, Fs, частотной сетки или математического определения анализа.
Этот выпуск также включает ранее не опубликованные изменения v0.16.6.
Изменения
- Несколько откликов FRF используют общий расчёт арифметического среднего
выбранных Reference до Welch. Один проход по сегментам переиспользует окно,
удаление среднего и FFT опоры, Sxx, порог слабого входа и спектр опоры.
Syy/Sxy, комплексный H1, coherence, маски и ошибки остаются отдельными.
Преобразования всех сегментов не хранятся. Одиночная пара сохраняет прежний путь.
Для семи откликов и 328 сегментов число FFT уменьшается с 4592 до 2624. - Независимые FFT-каналы при N>=65536 обрабатываются постоянным пулом до четырёх
участников, включая вызывающий поток. Один канал, малые записи и занятый пул
используют последовательный путь. Результаты и исключения собираются в
исходном порядке после завершения всех задач. Входные массивы не меняются. - Число участников учитывает доступные процессоры и оценку рабочих массивов
и сохранённых планов. Бюджет 384 MiB относится к планировщику, а не ко всей
памяти процесса. GUI явно отменяет и завершает FFT-worker до разрушения пула. - Из v0.16.6: проверки отмены radix-2 между блоками максимум 16384 butterfly
без перезапуска рекуррентного twiddle; один завершённый thread_local план
chirp/FFT ядра Bluestein до 64 MiB на поток. Отменённый план не публикуется,
большие планы временные. Математика этих оптимизаций сохранена. - Отрисовка, кэши GUI, библиотека FFT, точность, нормировка, Hann, overlap,
remove_mean и правила масок не менялись. Fast-math не используется.
Проверенные результаты
Медианы семи повторов после семи прогревочных повторов, test1.lvm,
Ryzen 5 5600X, GCC 14.2.0, Release -O2, Windows Power saver.
База этих замеров — v0.16.6, а не предыдущий публичный выпуск v0.16.5.
Таймер FFT включает подготовку шкалы/каналов и амплитуд; таймер FRF включает
by-value копию входа, усреднение/проверки, Welch, H1/coherence и спектр опоры.
Загрузка файла и отрисовка вне таймеров. Ускорения отдельных направлений
не складываются и не гарантируются на другом оборудовании.
| Расчёт | До, мс | После, мс |
|---|---|---|
| FFT, 8 каналов, N=4096 | 1,091 | 1,085 |
| FFT, 8 каналов, N=262144 | 151,05 | 51,59 |
| FFT, 8 каналов, N=337132 | 595,03 | 327,46 |
| H1/coherence, 1 опора / 1 отклик, mean=false | 38,62 | 39,03 |
| H1/coherence, 1 опора / 7 откликов, mean=false | 210,36 | 135,87 |
| H1/coherence, 1 опора / 7 откликов, mean=true | 210,77 | 135,88 |
FRF: N=337132, L=2048, периодический Hann, overlap=50%, K=328.
Пик commit процесса для полного FFT вырос с 122 до 256 MiB (включая загрузку
и исходные массивы). Отмена до join: измеренный максимум 4,77 мс FFT и
2,52 мс FRF; замена полной записи коротким заданием — около 16 мс, только
новое поколение результата. Эти максимумы не являются верхней гарантией задержки.
Все 26 случаев совпали с базой побайтно: частоты, амплитуды, комплексный H1,
coherence, спектр опоры, validity-маски и NaN. Внешний стенд выполнил 7592
точные проверки против замороженных исходников, включая Direct, произвольные
длины, слабую/нулевую опору, NaN/Inf, переполнение, независимые ошибки откликов,
gaps и конкурентные FFT. Контроль одиночных путей в одном процессе не
подтвердил существенного ухудшения: максимум +2,6% FFT и +1,6% FRF.
Отдельные процессы дают больший разброс; причина каждого выброса не установлена.
Прошли 340 численных и 334 GUI-проверки, полные сборки CLI и GUI.
GUI-регрессии охватывают общий участок, роли, секции/разрывы, кэши,
несколько кривых, шкалы, CSV/PNG и завершение worker. Реальная end-to-end
задержка GUI и отрисовка отдельно не измерялись. Системные настройки не менялись.
Файлы выпуска
AMSignal-0.16.7-x64.exe— GUI для Windows x64.AMSignal-0.16.7-performance-results.json— таблица 26 измеренных случаев,
данные памяти и протокол побайтового сравнения; исходная запись не включена.SHA256SUMS.txt— контрольные суммы приложенных файлов.
Соответствующие исходники доступны в теге v0.16.7. Лицензия — GNU GPLv3.
English
Multi-channel FFT and batch H1/FRF are faster while preserving the original
record length, Fs, frequency grid and mathematical analysis definition.
This release also includes the previously unpublished v0.16.6 changes.
Changes
- Multiple FRF responses share the arithmetic sample mean of selected references
before Welch. One segment pass reuses the window, reference mean removal/FFT,
Sxx, weak-input threshold and reference spectrum. Syy/Sxy, complex H1,
coherence, masks and errors remain independent. Segment FFTs are not retained
as a bank. A single pair retains its previous path. Seven responses with
328 segments require 2624 FFTs instead of 4592. - Independent FFT channels at N>=65536 use a persistent pool of up to four
participants, including the caller. Single channels, small inputs and callers
encountering a busy pool use the sequential path. Results and exceptions are
collected in original channel order after all jobs complete; input arrays
remain unchanged. - Scheduling considers available processors and estimated workspaces/retained
plans. Its 384 MiB allowance is not a process memory limit. GUI exit explicitly
cancels and joins the FFT worker before pool destruction. - From v0.16.6: radix-2 cancellation checks between chunks of at most 16384
butterflies without restarting recurrent twiddles; one completed thread_local
Bluestein chirp/kernel FFT plan up to 64 MiB per thread. Cancelled plans are
not published; larger plans are temporary. Arithmetic is preserved. - Rendering, GUI caches, FFT library, precision, normalization, Hann, overlap,
remove_mean and mask rules are unchanged. Fast-math is not enabled.
Measured validation
Medians of seven repeats after seven warm-up repeats, test1.lvm, Ryzen 5 5600X,
GCC 14.2.0, Release -O2, Windows Power saver. The baseline for these
measurements is v0.16.6, not the previous public release v0.16.5.
FFT timing includes timeline/channel preparation and amplitudes; FRF timing
includes the by-value input copy, averaging/validation, Welch, H1/coherence and
reference spectrum. File loading and rendering are outside the timers.
Independent speedups are not added or guaranteed on other hardware.
| Calculation | Before, ms | After, ms |
|---|---|---|
| FFT, 8 channels, N=4096 | 1.091 | 1.085 |
| FFT, 8 channels, N=262144 | 151.05 | 51.59 |
| FFT, 8 channels, N=337132 | 595.03 | 327.46 |
| H1/coherence, 1 reference / 1 response, mean=false | 38.62 | 39.03 |
| H1/coherence, 1 reference / 7 responses, mean=false | 210.36 | 135.87 |
| H1/coherence, 1 reference / 7 responses, mean=true | 210.77 | 135.88 |
FRF: N=337132, L=2048, periodic Hann, 50% overlap, K=328. Full FFT peak
process commit increased from 122 to 256 MiB, including file loading/input
arrays. Maximum observed cancel-to-join: 4.77 ms FFT and 2.52 ms FRF.
Replacing the full record with a short job took about 16 ms and returned
only the new generation. Observed maxima are not guaranteed latency bounds.
All 26 cases matched the baseline byte for byte: frequencies, amplitudes,
complex H1, coherence, reference spectrum, validity masks and NaNs. An external
harness passed 7592 exact checks against frozen sources, including Direct,
arbitrary lengths, weak/zero reference, NaN/Inf, overflow, independent response
errors, gaps and concurrent FFT calls. In-process single-path controls did not
confirm a substantial regression: maximum +2.6% FFT and +1.6% FRF.
Separate processes show more variation; each outlier's cause was not established.
Passed 340 numerical and 334 GUI checks, and full CLI/GUI builds.
GUI regressions cover the common selection, roles, sections/gaps, caches,
multiple curves, scales, CSV/PNG and worker shutdown. Real end-to-end GUI
latency and rendering were not separately benchmarked. System settings were
not changed.
Release files
AMSignal-0.16.7-x64.exe: Windows x64 GUI.AMSignal-0.16.7-performance-results.json: all 26 measured cases, memory
data and bytewise comparison results; the input recording is not included.SHA256SUMS.txt: checksums of attached files.
Corresponding source code is available at tag v0.16.7. Licensed under GNU GPLv3.