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

[Accuracy] PersonaPlex FP16 SwiGLU rounds SiLU before the gate product

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

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

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

2026年10月18日 から。

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

評価

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

説明

Summary

PersonaPlex FP16 SwiGLU MLPs round the activation earlier than the reference does.

  • Reference (pinned Moshi, gating.py): the torch.compile gating kernel takes the Half gate and up projections, computes
    SiLU(gate) * up in FP32, and rounds the product to Half once.
  • Family graph: graph_blocks.add_swiglu_mlp and the dual-profile _swiglu_mlp compute sigmoid(gate),
    gate * sigmoid(gate) and the product with up all in the work dtype, so each step is rounded to Half.

Minimal counterexample

The inputs are gate = 7/64 and up = 1.5, which are exact in Half and BF16.

  • Reference: Half(SiLU32(gate) * up) = 0.08648681640625.
  • Current graph: Half(Half(SiLU(gate)) * up) = 0.0865478515625.

The two results differ by one Half ULP. The FP32 product is about 600 FP32 ULPs from a Half rounding boundary, so the
outcome does not depend on the sigmoid implementation.

Evidence on real data

These results come from GB300 with TensorRT 11.2, using the reference FP16 run of the PersonaPlex audio-parity clip 7.

  • Temporal gating, layers 0/15/31, steps 0/27/28:
    • Half projections plus the FP32 pointwise product reproduce the reference gating output bitwise in 7 of 9 cases.
      The other two (layer 0 at steps 0 and 27) differ in 53 and 59 elements, cause not verified.
    • Eager Half composition differs in 1,706-2,272 of 4,096 output elements.
    • The family graph as built differs in 1,748-2,292 of 4,096.
  • Depth transformer: the same rounding is a candidate contributor to the depth-step differences under investigation.
    The full-model effect is not established yet.

Impact

Every FP16 (and BF16) SwiGLU MLP output in the PersonaPlex temporal and depth transformers is affected. FP32 builds are
not affected.

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

環境構築

はじめの一歩

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

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

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

似ている issue

Python の issue をもっと見る

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

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