[Accuracy] PersonaPlex FP16 depth input skips the reference's Half rounding
メンテナーはふだん 1 日以内に返信
@chaofengw-nv がすでに取り組んでいます。
2026年10月18日 から。
評価
この issue はまだ評価されていません。
説明
Summary
When the PersonaPlex depth transformer runs in FP16, the runtime builds its input differently from the reference.
- Reference: computes
depformer_in[cb](hidden)as a HalfF.linear, rounds that output to Half, and then adds the
Half previous-token embedding (depformer_text_emb/depformer_emb) with a Half add. - Runtime:
prepare_depth_embedding_kernel(families/personaplex/runtime/sampling_kernels.cu) works on FP32 copies
of the BF16 checkpoint tables. It sums the projection and the embedding in FP32, and the depth engine rounds the
result to Half only once.
So the FP16 depth path skips the reference's Half rounding of the weights, of the projection output and of the sum.
Minimal counterexample
The inputs are hidden [1, 1] (Half), projection row [1, 2^-12] and embedding -1. All of these values are exact in
both BF16 and Half.
- Reference:
Half(F.linear) = 1, then1 + (-1) = 0. - Current helper:
Half(1 + 2^-12 - 1) = 2^-12.
The result does not depend on the reduction order.
Evidence on real data
These results come from GB300 with TensorRT 11.2, using the product kernel compiled from main 88ceb9f52.
- Counterexample: the product kernel returns 2^-12 for both codebook 0 (text seed) and codebook 1 (audio seed),
while the reference returns 0. - Native FP16 clip-7 capture: steps 0-39, all 16 codebooks, 640 depth steps.
- The kernel received the reference's own temporal hidden state and previous token. The token was recovered uniquely
from the reference data in all 640 steps. - Its Half depth input differs from the reference depformer input in every one of the 640 steps: 147,457 of 655,360
elements, about 230 per step. torch.nn.functional.linearin Half on the same GPU reproduces every reference projection bitwise.
- The kernel received the reference's own temporal hidden state and previous token. The token was recovered uniquely
Impact
The depth input changes in every FP16 depth step. Near-tie codebook decisions can then flip, and the generated audio
diverges. FP32 depth builds are not affected.
Status
This is a component-level defect: the fix makes the depth input match the reference at its Half boundaries. With the fix
alone, the full-model PersonaPlex audio-parity gate still fails on clip 7, so other differences remain and are tracked
separately.
- 主要言語
- Python
- スター
- 288
- フォーク
- 73
- 平均マージ
- 1日 3時間
- マージ済み PR(30日)
- 273
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
NVIDIA/TensorRT-Model-Connect のほかの issue
-
Docs: ITrtModule::forward() output-buffer lifetime and dtype contract are undocumented再び着手できるかも このイシューのプルリクエストはマージされずにクローズされました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
NVIDIA/TensorRT-Model-Connect#1126 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
NVIDIA/TensorRT-Model-Connect#2060 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
NVIDIA/TensorRT-Model-Connect#2054 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 5/5 1週間以上 初心者へのやさしさ 42/100
NVIDIA/TensorRT-Model-Connect#2053 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 4/5 3〜5日 初心者へのやさしさ 46/100
NVIDIA/TensorRT-Model-Connect#2050 ·
メンテナーはふだん 1 日以内に返信
NVIDIA/TensorRT-Model-Connect の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
NVIDIA/auto-ontology#463 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
NousResearch/hermes-agent#151165 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
メンテナーはふだん 1 日以内に返信
-
code-health
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
tinaudio/synth-setter#3750 ·
メンテナーはふだん 1 日以内に返信
-
[Bug] vllm-sr config migrate drops providers.models[].deployment対応中かも @Bevisy が今日担当しました。 オープンneeds-acceptance wg/developer-experience-ecosystem
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
vllm-project/semantic-router#5996 ·
メンテナーはふだん 2 日以内に返信