GPUの“待ち時間”を消すという発想が、Moondreamでかなり気持ちいい
Moondreamのブログ「Popping the GPU Bubble」は、AI推論を速くする話です。 ただし、単に「GPUを強く使えば速くなる」という雑な話ではありません。むしろ逆で、GPUがサボってしまう“すき間時間”をどう消すかに真正面から向き合っています。ここが面白い。 AIの推論では、GPUが大量の計算をして次のトークン(ざっくり言うと、文章のかたまり)を出します。ところが実際には、GPUが計算している時間よりも、CPUが「次は何をやるか」を準備している時間のせいで、GPUが待たされることがあります。これが記事のいう GPU bubble です。風船みたいに膨らんだ無駄な待ち時間、という比喩ですね。 Moondreamはこの待ち時間を、pipelined decoding という方法で減らしています。要するに、 「前のトークンの後片付けをCPUがしているあいだに、GPUは次のトークンの計算をもう始める」 という並行処理です。これだけ聞くと当たり前に見えますが、実際に安全にやるのがかなり難しい。そこでこの記事では、その工夫をかなり丁寧に説明しています。
papoo.work