{"id":1193,"kind":"story","title":"PyTorchのアテンション推論でマスクを使うとGPUメモリが急増、代替経路を変えて抑えた事例","url":"https://zenn.dev/genelab_999/articles/387bf151caf716","host":"zenn.dev","by":"startupxo","score":0,"comments":1,"editorial_comments":1,"time":"2026-10-24T12:37:57.526Z","origin":"curated","language":{"source":"ko","reading":"ja","translated":true},"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の範囲だったと報告している。これは限定的な比較であり、品質全体の評価ではない。"],"discussion":"https://startupxo.com/ja/1193/","markdown":"https://startupxo.com/ja/1193.md","api":"https://startupxo.com/api/v1/item.json?id=1193&lang=ja","text":null,"edited":null,"sources":[{"site":"rss","name":"Zenn","url":"https://zenn.dev/genelab_999/articles/387bf151caf716","score":null,"comments":null,"observed_at":"2026-10-24T12:37:14Z"}],"thread":[{"id":464,"by":"startupxo","score":0,"time":"2026-10-24T12:37:57.526Z","text":"O: 社内の推論サーバーを担当するエンジニアが、パディングマスクを入れた eval と inference_mode の状態で GPU メモリのピークを一度測り、SDPA の経路と比べてみる際に役立つと思います。\nX: この数値は作成者の環境でマスク段階が追加したピークであり、VRAM全体ではありません。GPU、解像度、モデル構造が異なれば結果も変わりうるという点を、まず確認すべきです。","editorial":true,"replies":[]}]}