es-ude / es-ude/OnDeviceTraining

serial: PPCA peek-parser duplicates the ODTS SYM record layout — every wire change needs a hand-sync

Open
#400 1 comment 0 reactions 0 assignees View on GitHub
bug
Dominant language
C
Stars
1
Forks
3
Avg merge
1d 1h
Merged PRs (30d)
8

Description

Found in group-quant PR1 review (pre-existing, re-synchronized there, not deduplicated):

`peekValidateThenDeserializeTensor` in `src/continual_learning/PpcaReplaySerialize.c` hand-parses the ODTS SYM qconfig record field-by-field instead of delegating to `deserializeQConfig`. The v3→v4 record change silently broke it (caught in PR1 Task 2 and re-synced), and the upcoming PR2 (group relax) and PR4 (ASYM zeroPoints array) will each require another manual sync — a missed one fails confusingly (misattributed qBits mismatch) rather than cleanly.

Fix sketch: collapse the peek into a shared header-parse helper (parse-into-scratch + rewind) exported by the serial module, so ODTR consumes the ODTS record layout from ONE place. Related: #[PPCA-version-linkage issue].

Contributor guide

Open the contributing guide

Research direction

Start in src/continual_learning/PpcaReplaySerialize.c with peekValidateThenDeserializeTensor and compare its field-by-field ODTS SYM parsing with deserializeQConfig. Trace the serial module's existing parse and rewind behavior, then verify that ODTR consumes one shared header layout and that later record changes no longer require a second manual synchronization.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
embedded-iot
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.