Preserve NaN through half-precision MXFP8 amax reductions
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- python, pytorch
- Domain
- machine-learning, performance, testing-qa
Research direction
Start with the half-precision MXFP8 rowwise reduction at ptx::abs_max_2x(thread_amax_2x, ...), then trace how thread_amax feeds rowwise and bidimensional block maxima and E8M0 scale generation. Add mixed finite+NaN regressions for both paths and compare their scale and payload behavior with the established MXFP8 path.
Written by the indexing model from the issue text.
Description
Follow-up from #3459.
The merged half-precision MXFP8 rowwise path still reduces BF16/FP16 pairs through ptx::abs_max_2x before converting the block maximum to E8M0. A mixed finite + NaN pair can therefore lose the NaN during the reduction and produce a finite scale instead of the exceptional E8M0 value 255.
The same issue affects the bidimensional path because thread_amax is already derived from that reduction before the row/column block maxima are combined.
Current merged code still contains:
- ptx::abs_max_2x(thread_amax_2x, ...) in the half-precision rowwise reduction;
- no focused mixed finite+NaN regression for rowwise or bidimensional MXFP8 scale generation.
Suggested fix:
- make the half-precision reduction explicitly NaN-preserving before scale generation;
- add mixed finite+NaN regressions for both rowwise and bidimensional scaling and compare the produced scale/payload behavior with the established MXFP8 path.
This was the remaining review blocker on #3459 when it merged.
- Dominant language
- Python
- Stars
- 3.5k
- Forks
- 831
- Avg merge
- 3d 11h
- Merged PRs (30d)
- 65
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from NVIDIA/TransformerEngine
-
attention
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
NVIDIA/TransformerEngine#3481 · 4 comments ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
NVIDIA/TransformerEngine#2189 · 7 comments · 5 reactions ·
-
Difficulty 4/5 3-5 days Newbie friendliness 20/100
NVIDIA/TransformerEngine#3528 · 3 comments ·
-
Difficulty 4/5 3-5 days Newbie friendliness 42/100
NVIDIA/TransformerEngine#3520 · 1 comment · 1 assignee ·
-
Difficulty 4/5 3-5 days Newbie friendliness 68/100
NVIDIA/TransformerEngine#3518 · 2 comments ·
All issues in NVIDIA/TransformerEngine
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
EleutherAI/lm-evaluation-harness#4207 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
ClickHouse/clickhouse-connect#1057 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
open-telemetry/sig-end-user#406 ·
-
bug ci good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 88/100