Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

[Accuracy] PersonaPlex FP16 residuals skip linear-output rounding

クローズ
#1,796 コメント 0 件 リアクション 0 件 担当者 1 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@chaofengw-nv がすでに取り組んでいます。

2026年10月18日 から。

  • #1751 @chaofengw-nv による — マージ済み
  • #1797 @chaofengw-nv による — マージされずにクローズ

評価

この issue はまだ評価されていません。

説明

bug

Description

PersonaPlex's FP16 decoder residual path can add the unrounded GEMM accumulator instead of first rounding the linear output to Half, as the Native model does. This changes values inside an actual decoder layer, before subsequent normalization and autoregressive generation.

Affected base: 9a8b545f5e8c22c653c8029c95a999dc070b4f3f.

Reproduction

Use a Half projection whose exact dot product is 1 + 2^-12, followed by a residual of -1:

  • Native: round the linear output to Half (1), then add the Half residual: 0.
  • Current TensorRT decoder: 2^-12 (0.000244140625), consistent with fusion across the linear-output rounding boundary.

A regression invokes the existing default_decoder._add_decoder_layer with the depth dimensions (1024 hidden channels, 16 heads, cache length 18, MLP width 2816). It uses dense binary weights, one valid attention key and a zero MLP, and reads the layer's normal hidden and present-K/V outputs. The Native CUDA linear operations independently establish the expected scalar.

On GB300, TensorRT 11.2.0.113, CUDA 13 and PyTorch 2.12.0+cu130, three independent original Half engines each return 2^-12 instead of zero. All three original FP32 control engines pass; neither precision has errors or skips.

A separate fresh-process probe also reproduces the discrepancy at widths 1024 and 4096, three builds each. Performing the residual sum in FP32 after converting the already-Half branch outputs, then restoring Half, returns the Native result in all six cases.

Expected behavior

Preserve the model-dtype linear-output rounding boundary before the residual sum. Keep Half weights, hidden states and KV caches, and retain the existing FP32 behavior. The Native sequential attention and MLP residuals are defined in the pinned official transformer implementation.

This is a component reproduction. Full speech-benchmark acceptance remains separate; no benchmark input, Native baseline or acceptance gate is changed.

主要言語
Python
スター
276
フォーク
73
平均マージ
1日 9時間
マージ済み PR(30日)
156

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

NVIDIA/TensorRT-Model-Connect のほかの issue

NVIDIA/TensorRT-Model-Connect の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。