jit: remove redundand unpack bfp format conversion#37606
jit: remove redundand unpack bfp format conversion#37606
Conversation
There was a problem hiding this comment.
Pull request overview
This PR fixes a correctness issue in the JIT build system's data format selection for UNPACK operations. The change removes incorrect BFP (Block Floating Point) format normalization that was causing UNPACK source and destination formats to mismatch, violating the tt-isa specification and causing test failures on ttsim.
Changes:
- Removed BFP format normalization in
get_single_unpack_dst_format()that was converting all BFP types to eitherBfp8_borBfp8 - Ensures UNPACK operations now correctly use matching source and destination formats for BFP data types, as required by the hardware specification
|
/codeowners ping |
CodeOwners Group AnalysisThis PR requires approval from one member of each of the following groups: Summary: 1 pending groups, 0 approved groups Group Information:
Note: At least one approval from each group is sufficient. |
|
Hi Kevin Stevens (@kstevensTT), Rui Zhang (@ruizhangTT), this PR jit: remove redundand unpack bfp format conversion by Izajasz Wrosz (@iwroszTT) needs your approval/review to merge this. |
Ticket
Link to Github Issue
Problem description
UNPACK src and dst data formats are selected during JIT in jit_build/data_format.cpp
As part of the format selection, for UNPACK destination all BFP formats are normalized to either Bfp8_b or Bfp8. According to tt-isa-docs, for all BFP data types UNPACK src and dst formats must be the same. As a result of that, the current code leads to undefined behavior and consequently to errors in tests on ttsim.
What's changed
BFP type normalization is removed, so that the generated UNPACK data formats are in line with the spec
Checklist
The failures in L2 nightly occur on main too
Model tests
If your changes cover model-related code, you should run tests corresponding to affected models and platforms (Single card, T3K, Galaxy). "Choose your pipeline" workflows facilitate running multiple kinds of tests in a single run. Each offers
models-mandatoryandmodels-extendedpresets.The former includes a minimal set of tests, to be run always. The latter extends that with additional ones - use your best judgement in deciding which is the most appropriate for your PR.
models-mandatorypreset (runs: Device perf regressions and Frequent model and ttnn tests)models-extendedpreset (runs: the mandatory tests, plus Demo and Model perf tests)models-mandatorypreset (runs: Unit tests)models-extendedpreset (runs: the mandatory tests, plus Demo and Model perf tests)models-mandatorypreset (runs: Quick tests)models-extendedpreset (runs: the mandatory tests, plus Demo and Model perf tests)