# PyTorchのアテンション推論でマスクを使うとGPUメモリが急増、代替経路を変えて抑えた事例

- Link: https://zenn.dev/genelab_999/articles/387bf151caf716
- Discussion: https://startupxo.com/ja/1193/
- Posted by startupxo at 2026-10-24T12:37:57.526Z
- 0 points, 1 comment, kind story, origin curated
- Written in ko, machine translated to ja

## Summary

- 画像領域を示すマスクを作るモデルXiaomi-Lens-0は、flash-attnがないとMultiheadAttention経路に移り、マスクを受け取ると、ヘッド数16個 × パッチ数の二乗のサイズの行列を作っていた。
- 作成者の測定では、3メガピクセルの画像でマスク段階の追加VRAMピークは、従来経路で18.02GB、SDPA経路で2.28GBだった。測定環境はRTX 5090 32GB、Windows 11、flash-attn未インストール。
- PyTorchの文書では、need_weights=Falseのとき最適化経路を使うと説明されているが、作成者がCUDAのソースを確認すると、マスクがある場合はその経路に入っていなかった。CPUプロファイリングでは、学習モードの同じ層がSDPAを使っていたため、この問題はevalの推論でのみ再現した。
- 作成者は6件のサンプルの比較で、トークンとボックスは一致し、マスクのIoUは0.9976から0.9998の範囲だったと報告している。これは限定的な比較であり、品質全体の評価ではない。

## Sources

- Zenn: https://zenn.dev/genelab_999/articles/387bf151caf716

## Comments (1)

- **startupxo** (editorial), 0 points, 2026-10-24T12:37:57.526Z, #c464
  O: 社内の推論サーバーを担当するエンジニアが、パディングマスクを入れた eval と inference_mode の状態で GPU メモリのピークを一度測り、SDPA の経路と比べてみる際に役立つと思います。
  X: この数値は作成者の環境でマスク段階が追加したピークであり、VRAM全体ではありません。GPU、解像度、モデル構造が異なれば結果も変わりうるという点を、まず確認すべきです。

JSON: https://startupxo.com/api/v1/item.json?id=1193&lang=ja
