es-ude / es-ude/OnDeviceTraining
serial: PPCA peek-parser duplicates the ODTS SYM record layout — every wire change needs a hand-sync
- 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
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