24mm10-bis: twins = radix-4 complex FFT-2048, raw normalization (INV+ffe0(2^-12), FWD none); twiddles inline in plan capture; q-paradox not in normalizations -> need live intermediate states
This commit is contained in:
@@ -4160,4 +4160,37 @@ q=1 → rms 0.022 дБ; q=0.8 → 0.0065 дБ (медиана, 60 кадров).
|
||||
3. Windows/x64dbg-MCP (если доступен хост): брейкпоинт на 52b644..52b893,
|
||||
дамп FIR после каждого из 6 шагов для одного кадра — закрывает всё.
|
||||
|
||||
## 24mm10-бис: итог статического разбора близнецов (раунд «добить q»)
|
||||
```
|
||||
Ядра 181b853e0(INV-core)/181b81b80(FWD-core): 3130 строк почти развёрнутого
|
||||
AVX2-кода (60 jcc, 4 боевых петли), БЕЗ внутренних вызовов; единственные
|
||||
float-константы ±0.707107 (+ знак-маска 0x80000000) в собственном статике
|
||||
@0x186ee7dxx (в дампе есть). Это radix-4/split-radix КОМПЛЕКСНЫЙ FFT
|
||||
половинного размера (count=N/2=2048 от воркера), специфицированный под
|
||||
размер (jump-table по log2n в воркере выбирает ядро).
|
||||
Нормировок внутри НЕТ (ни одной vmulps на константу ≠±1/√2).
|
||||
INV-воркер добавляет ffe0(2^-12) ([obj+0xc]=1), FWD-воркер НЕ добавляет
|
||||
([obj+8]=0). Твидлы плана лежат инлайн после заголовка плана (захват buf548:
|
||||
квады cos(π/8)-класса @f32-индекс 560+, пары sin|cos дальше);
|
||||
указатели plan[+0x30]/[+0x38]/[+0x50]/[+0x58] — кучные адреса этих таблиц
|
||||
(вне дампа), разность [+0x38]−[+0x30]=0x230Б=140 f32.
|
||||
Инструмент: /tmp/opencode/avx_interp.py (мини-интерпретатор AVX/FMA-
|
||||
подмножества; баги cmp-as-sub и RIP-rel исправлены; довести до прогона —
|
||||
упёрлось в управление потоком на таблицах, см. probe2/probe3.py).
|
||||
```
|
||||
ВЫВОД: пара INV/FWD == пара numpy.irfft/rfft (подтверждено трижды).
|
||||
Парадокс q (модель требует аргумент×0.8, все масштабы зафиксированы)
|
||||
⇒ причина НЕ в нормировках ядер, а в том, ЧТО реально лежит в FIR-буфере
|
||||
в момент γ-кадров: офлайн-гипотезы о стадиях исчерпаны, кадры полиморфны.
|
||||
Необходимо наблюдение ЖИВОГО состояния (варианты 2/3 выше), либо полный
|
||||
декод управления потоком близнеца (петли по стадиям, r13/r14 walk —
|
||||
частично картирован: r13=work, add/sub rbp, add 0x40/0x100).
|
||||
|
||||
### Скорректированные мелочи dataflow этого раунда
|
||||
- Порядок: copy → opA(INV) → FIR[n]=0 → fold×2 → zero[2049..] → opB(FWD)
|
||||
(FIR[n]=0 стоит ПОСЛЕ opA, обнуляет временной отсчёт t[N/2], не вход!)
|
||||
- В модели убрать h[-1]=0 перед irfft (Найквост входа НЕ обнулялся).
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user