モバイル&ワイヤレスブロードバンドでインターネットへ

gwaw.jp
 
GPU COMPUTE BENCHMARK #4

ハイブリッド計算のバックエンド選択
— LSTMはCPU、モンテカルロはGPU

AIによる株価予測(LSTM)と、確率シミュレーション(モンテカルロ)を1つに繋いだ。すると、同じパイプラインの中で、一方はCPUが速く、一方はGPUが速いという正反対の結果が出た。3桁の時間差。これまでの3タイプの知見が、ひとつの実用処理の中で交差する。

WebGPUTensorFlow.jsLSTM モンテカルロハイブリッドバックエンド選択

013つの計算タイプ、そして"組み合わせ"へ

このシリーズでは、計算を「質」で分類してWebGPUの実力を測ってきた。#1 独立並列(各スレッドが独立)、#2 行列演算(入力依存)、#3 協調計算(相互依存)。タイプごとにGPU優位の出方がまるで違い、「GPUは万能でなく、計算の質で優位が決まる」と分かった。

今回は、これらが1つの実用処理の中で組み合わさるケースを扱う。題材は「AIによる株価予測 × モンテカルロ」のハイブリッド。AIの予測は1本の線だが、本当に知りたいのは「どれくらい外れうるか」だ。そこで予測を起点に、モンテカルロで数万通りの未来を生成し、不確実性の幅を描く。このパイプラインには、性質の異なる2つの計算が同居している。

段階1 / 逐次計算
LSTM 予測
時系列を1ステップずつ処理するAI。将来トレンドを予測する。
段階2 / 独立並列
モンテカルロ
数万通りの価格経路を独立に生成。確率の帯を描く。

この2段階で、最適なバックエンドが正反対になった——というのが本稿の主題だ。

02ハイブリッドの構造 — 予測の点を、確率の帯で包む

パイプラインはシンプルだ。過去の株価をLSTMに学習させ、将来の期待リターン(μ)とボラティリティ(σ)を取り出す。それを使ってモンテカルロが幾何ブラウン運動で多数の経路を生成し、各時点の分位点(5%〜95%)を集計する。

過去データ → [LSTM] → μ, σ → [モンテカルロ] → 確率の帯

ねらいは「点予測の限界を、確率分布で補う」こと。LSTMが描く1本の予測線は必ず誤差を持つが、モンテカルロの帯は「起こりうる範囲」を示す。AIが方向を、シミュレーションがばらつきを担う——役割分担そのものが、計算の質の違いに対応している。なお、μ・σの具体的な橋渡しは金融工学寄りの話題なので、本稿では深入りせず、計算性能に焦点を当てる(教育的な実装は別途ツールで公開)。

03LSTMはなぜGPUで速くならないか

LSTM(長短期記憶)は、時系列を1ステップずつ順に処理するニューラルネットだ。各時点の計算が前の時点の状態に依存するため、時間方向に並列化できない。しかも1ステップ内の行列は小さい(隠れ層が数十次元)。

これは、このシリーズの言葉で言えば#2と#3の「悪いとこ取り」だ。#2で見た通り小さい行列ではGPUの固定費が回収できず、#3で見た通り逐次依存はステップごとの同期コストが積み上がる。実測でも、LSTMの学習はTensorFlow.jsのCPUバックエンドで動かすのが最も速く、GPUバックエンドでは各ステップのカーネル発行コストが積み重なって、むしろ遅くなる。実際の学習時間は、データ規模により数万ミリ秒(数十秒〜100秒超)に及んだ。

KEY FINDING 01 LSTMは逐次計算。GPUで速くならない。 時間方向に並列化できず、1ステップの行列も小さい——#2(小行列でGPU不利)と#3(逐次で同期律速)の不利な性質を併せ持つ。だからLSTMは素直にCPUで動かすのが正解だ。これはGPUアーキテクチャによらない、計算構造そのものに由来する結論である。

04モンテカルロはなぜGPUで速いか

対照的に、モンテカルロは#1 独立並列そのものだ。数万本の価格経路は互いに無関係で、各スレッドが1経路を独立に計算できる。GPUの大量の演算ユニットが最も活きる構造だ。2機種で経路数を変えて計測した。

▍ iPad mini (A17 Pro)
▍ Google Pixel 10 Pro

両デバイスとも、経路数が増えるほどGPUが有利になり、100万経路では iPad で約39倍、Pixel で約27倍に達した。注目すべきは2点。第一に、独立並列はどちらのデバイスでも素直にGPUが効くこと。#3の協調計算が「iPad 8.2倍 vs Pixel 1.2倍」とデバイスで極端に違ったのとは対照的だ。第二に、20万経路までは高速化が4〜5倍で頭打ちになり、100万で急に跳ねること。これは経路生成そのものではなく、分位点を求めるソート集計(一部CPU処理)が中規模では効き、大規模ではCPU側が極端に重くなってGPUが圧勝するためだ。

KEY FINDING 02 モンテカルロは独立並列。両デバイスで素直にGPUが効く。 経路は互いに独立だから、GPUの並列性がそのまま活きる。協調計算(#3)がデバイス依存だったのに対し、独立並列はアーキテクチャによらずGPU有利——「依存が弱い計算ほど移植性が高い」という、シリーズ総括の主張をここでも裏付けた。

05同じパイプライン、正反対の最適バックエンド

ここが本稿の核心だ。LSTM(段階1)とモンテカルロ(段階2)の実行時間を並べると、同じ処理の中で3桁もの差が現れる。

対数軸。LSTM(逐次・CPU)は数万ミリ秒、モンテカルロ(独立並列・GPU)は数百ミリ秒。同じパイプラインの2段階で、最適バックエンドも実行時間も正反対。

LSTMの学習は数万ミリ秒(CPU)。一方、5万経路のモンテカルロは数百ミリ秒(GPU)で終わる。もしLSTMを無理にGPUで動かせば遅くなり、モンテカルロをCPUで動かせば何倍も時間がかかる。適材適所——LSTMはCPU、モンテカルロはGPU——が、唯一の正解だ。1つのパイプラインだから1つのバックエンドで、という発想は通用しない。

KEY FINDING 03 パイプラインは、部分ごとに最適バックエンドが違う。 逐次計算(LSTM)はCPU、独立並列(モンテカルロ)はGPU。両者を同じバックエンドに揃えるのは誤りで、計算の質に応じて使い分けるのが最速になる。「どのバックエンドか」は処理全体でなく、処理の各部分ごとに問うべき問いだった。

06結論 — 計算の質でバックエンドを選ぶ

4回にわたるベンチマークが、ひとつの結論に収束した。GPUが速いかは計算の質で決まり、その質は1つの処理の中ですら一様ではない

計算タイプ本シリーズでの位置最適
独立並列(MC)#1 / #4段階2GPU(規模が大きいほど)
行列演算#2GPU(大きい行列)/ CPU(小)
協調計算#3デバイス依存
逐次計算(LSTM)#4段階1CPU(GPUで速くならない)

ハイブリッドは、この表を1つのパイプラインに凝縮して見せてくれた。AIの予測(逐次・CPU)と確率シミュレーション(並列・GPU)。性質の異なる計算を、それぞれ最適な場所で動かす。それは小手先の最適化ではなく、計算の質を見極めるという、このシリーズが一貫して追ってきた態度そのものだ。

ひとつの処理に、ひとつの正解はない。
計算の質が、走らせる場所を決める。

そして、これらすべてがブラウザの中で完結する。AIの学習も、数万通りのシミュレーションも、スマートフォンのWebページで動く。計算の質を見極めさえすれば、手のひらの中で、予測とその不確実性を同時に描ける時代になった。

『ハイブリッド計算のバックエンド選択 — LSTMはCPU、モンテカルロはGPU』を公開しました。