GPU をブロックしないでください。 新しい @modal のブログ投稿では、AI 推論における非効率性の主要な要因であるホスト オーバーヘッドについて説明します。 @sgl_project と協力してホストのオーバーヘッドを削減し、GPU の停止を防いだ 3 つの事例を紹介します。 1 マイクロ秒でも重要です。 https://t.co/ZeumrZpSKE
推論においては、GPUを大きな船、CPUを航海士と考えるのが好きです。航海士は船にどこへ行くべきかを伝える必要があります。 航海士の指示を待って船が止まってしまうのは良くありません。資源と時間を無駄にしていることになります。
AI 推論におけるホスト オーバーヘッドの主な原因は、CPU との不要な同期であり、これによりボートがナビゲーター上で待機することになります。
@sgl_project のような製品エンジンは、ホスト/デバイスの同期の最も明白なケースを回避します。 ちょっとした工夫で同期を回避できる特殊なケースが 2 つ見つかりました。 - デバイス上に位置埋め込みを構築する - ホスト上の一部のKVキャッシュページの長さを再計算する
PRはこちら: hgithub.com/sgl-project/sg… github.com/sgl-project/sg…
ホストのオーバーヘッドを削減するためのもう 1 つの重要なコツは、カーネルを _融合_ することです。つまり、複数の個別の GPU カーネルの起動を 1 つにまとめることです。 各起動によるオーバーヘッドはわずか 1 マイクロ秒程度ですが、1 マイクロ秒も重要です。
私たちは、より小規模な VLM でカーネル起動のオーバーヘッドが大きい特定のオペレーションを特定しました。これは、現在より多くの導入が見られるオペレーションです (s/o @Alibaba_Qwen)。 そこで、@PyTorch コンパイラを使用してカーネルを自動融合し、実行時間を 40 マイクロ秒から 5 マイクロ秒に短縮しました。
詳細はこのPRをご覧ください: https://t.co/gvEqTgdIth
Torch コンパイルは、一般的に推論のレイテンシを迅速に改善するのに最適です。 これについては、こちらに書きました: https://t.co/MN072QDXzz
最適化されていない CPU コードの束縛から解放されるために、まだ多くのマイクロ秒を削減し、さらに多くの GPU を残す必要があります。 しかし、@modal チームは、お客様がインタラクティブな AI アプリケーションを提供できるよう支援する進歩をすでに達成できたことを嬉しく思っています。 ブログはこちらでご覧ください: https://t.co/ZeumrZqqAc



