GPT-6 Astraは公開重みLLMに勝てるか――3本のFortranコードCPU高速化を完全ブラインド評価

GPT-6 Astraへ3本の公開Fortranコードを各32分23秒、完全ブラインドで高速化させた。単体最高は49.72倍。しかし3本総合ではKimi K3が首位を守った。勝敗以上に、モデルごとの得意構造が見えた。

Share

先に結論――Astraは1本で最高記録、総合ではKimi K3が首位

前回は、公開可能な3本の合成Fortranベンチマークを使い、Kimi K3、GLM-5.3 Max、GPT-5.6 Sol Max、DeepSeek-V4-FlashのDS4 Q4、Qwen3.8-27B Q4を完全ブラインドで比較しました。

今回は、その同じ3本へGPT-6 Astraを追加しました。

実験条件、候補が高速化されていく過程、3コードの順位を映像で確認したい方は、YouTube動画「GPT-6 Astraは最強か? Fortran CPU高速化で49.715倍、3コード総合は2位」をご覧ください。

OpenAIはGPT-6 Astraを、複雑な推論やコーディングを含む難しい一連の作業向けの最上位モデルと位置付けています。公式仕様では1,050,000 tokenのコンテキストを持ち、reasoning effortはmaxまで選択できます。GPT-6 Astra公式モデル情報

評価結果は次の通りです。

公開ベンチマーク 無改変版 GPT-6 Astra 高速化率 完全一致
SIKB-A 276.053566秒 17.330798秒 15.928倍 3/3 PASS
SIKB-B 76.443163秒 1.537614秒 49.715倍 3/3 PASS
SIKB-C 73.028400秒 2.999625秒 24.346倍 3/3 PASS
3コード幾何平均 26.814倍 全9回PASS

AstraはSIKB-Bで49.715倍を記録し、これまでの全モデル・全コードを通した単体最高記録を更新しました。

一方、3コードの幾何平均は26.814倍。Kimi K3の29.125倍には届かず、総合2位です。Kimiの値に対して約7.9%低い結果でした。

つまり結論は、単純な「Astraが勝った」でも「Kimiが勝った」でもありません。

GPT-6 Astraは一つの計算構造で他モデルを大きく引き離した。しかし、異なる3種類のコードを通した総合到達点ではKimi K3が首位を守った。

この結果は、科学技術計算コードの高速化能力を一つの問題だけで判断できないことを、さらに強く示しています。

6モデルを同じ表へ加えると順位はどう変わったか

前回の5モデル比較へAstraを加えた結果です。

公開ベンチマーク Kimi K3 GPT-6 Astra GLM-5.3 Max GPT-5.6 Sol Max DS4 Q4 (0731) Qwen3.8-27B Q4
SIKB-A 22.967倍 15.928倍 13.559倍 11.371倍 7.727倍 8.001倍
SIKB-B 37.396倍 49.715倍 30.041倍 36.816倍 31.763倍 15.096倍
SIKB-C 28.764倍 24.346倍 25.227倍 23.991倍 5.172倍 6.984倍
3コード幾何平均 29.125倍 26.814倍 21.740倍 21.576倍 10.828倍 9.448倍

AstraはSIKB-AでGLMとSolを上回りました。SIKB-Bでは従来首位のKimiを約33%上回り、圧倒的な1位です。SIKB-CではSolをわずかに上回りましたが、KimiとGLMには届きませんでした。

3本総合では次の順位です。

  1. Kimi K3: 29.125倍
  2. GPT-6 Astra: 26.814倍
  3. GLM-5.3 Max: 21.740倍
  4. GPT-5.6 Sol Max: 21.576倍
  5. DS4 Q4 (0731): 10.828倍
  6. Qwen3.8-27B Q4: 9.448倍

AstraはGLMを約23.3%、Sol Maxを約24.3%上回りました。しかしKimiはSIKB-AとCの2本で首位を取り、総合1位を維持しました。

今回も「一回答えさせる」試験ではない

今回比較したのは、チャット画面へコードを貼って修正版を一度返させる方法ではありません。

AstraをCodex CLI型の単一エージェントへ接続し、次のループを自律的に繰り返させました。

  1. 公開ソースとプロファイラ要約を読む。
  2. ボトルネックを推定する。
  3. 許可されたFortranソースだけを変更する。
  4. 候補をgitへ保存する。
  5. モデルから隔離した固定評価器へ提出する。
  6. 実行時間とPASSまたはFAILを受け取る。
  7. 遅い変更を捨て、次の候補を作る。

固定条件は前回と同じです。

条件 内容
モデル gpt-6-astra
reasoning effort max
エージェント 単一エージェント。サブエージェントなし
利用方法 Codex CLI 0.153.4、ChatGPTサブスクリプション認証
API課金 OpenAI APIキー、従量課金APIともに不使用
コンテキスト 1,050,000 tokens
探索時間 各コード1,943秒、32分23秒
CPU評価 同一の40物理コア環境を排他利用
コンパイラ Intel ifx 2026.1.1
固定フラグ -O2 -qopenmp -fp-model precise
利用可能な診断 VTune、ifx最適化レポート、固定評価器
正解判定 非公開referenceとの完全一致
最終値 凍結した同一SHAを3回実行した中央値

コンパイラフラグ、Makefile、入力、計算量、reference、validatorは変更できません。人間から高速化手法のヒントも与えていません。

モデルが見られるのは、公開ソース、一般化したプロファイラ情報、自分自身が作った候補とその評価結果だけです。他モデルのソース、diff、速度、推論、非公開研究コードにはアクセスできません。

共通プロンプトの核は次のものです。

公開FortranのCPU実行時間を短縮し、出力を完全一致で維持する。
ifx 2026.1.1と固定フラグを使い、ソース変更だけで高速化する。
Makefile、入力、計算量、validator、referenceは変更しない。
VTuneとifx最適化レポートを利用できる。
候補は固定評価器だけで測り、正しい有力候補をgitで保存する。
他モデルの候補、reference、コントローラー資料へアクセスしない。

SIKB-A――4個の仕事を、多数のpairへ分解

SIKB-Aは、不規則なpair列挙と4チャネルのテンソル収縮を持つコードです。未変更版は276.054秒でした。

元のOpenMP並列化は、外側の4チャネルを40コアへ分配していました。最大でも4個の仕事しかないため、大半のコアが待ちます。

!$omp parallel do schedule(dynamic,1)
do channel = 1, n_channels
   do p = 1, block%n_pairs
      ! pairごとの重い計算
   end do
end do

Astraは並列軸を多数存在するpairへ移し、4チャネルを小さな配列として同時に計算しました。さらに、有効な三角要素を元の順序のまま先に抽出し、basisを転置し、分母と反復加算値を事前計算しました。

-do channel = 1, n_channels
-   do p = 1, block%n_pairs
+do p = 1, block%n_pairs
+   x = coefficient(:,k) * pair_mix
+   do repeat_id = 1, repeats + long_tail
+      x = (x + increment(repeat_id)) / denominator(:,k)
+   end do
+   channel_value = channel_value + x

最初のpair並列版は37.484秒。次のチャネル融合・不変量事前計算版は17.335秒まで短縮しました。最終3回の中央値は17.331秒、15.928倍です。

モデルはさらに、interactionが厳密にゼロとなる漸化式の再利用候補も作りました。しかし評価用CPUが別ジョブで使用中だったため、その候補を未検証のまま取り下げ、すでに完全一致していた候補を最終採用しました。未実行候補の性能は主張しません。

このため、15.928倍はAstraの一般的な能力上限ではなく、固定した32分23秒の一回の探索で確認できた到達点です。

SIKB-B――Astraが49.715倍へ到達した理由

SIKB-Bは、行ごとに長さの違う疎なエッジ、間接参照、独立した漸化式を持ちます。未変更版は76.443秒です。

元コードは5個のfieldを外側で並列化し、edge weightの生成とtransportを別々に実行していました。

Astraは最初に、並列軸を24万のrowへ変更しました。次に、最大64エッジと5フィールドを組み合わせ、最大320本の独立した計算をSIMDレーンとしてまとめました。

do row = 1, system%n_rows
   do first_edge = row_begin, row_end, 64
      lane_count = n_fields * count
      do repeat_id = 1, weight_repeats
!$omp simd
         do idx = 1, lane_count
            batch_x(idx) = batch_x(idx) + ...
         end do
      end do
   end do
end do

さらにweight生成とtransportを融合し、計算したweightをスレッドローカルなバッチから直接利用しました。中間sweepでは後で使わないweight配列への書き戻しを省き、最終sweepだけ元と同じ内容を保存しました。

探索中の実行時間は次のように縮みました。

76.443秒  未変更版
 8.656秒  row並列化とweight生成並列化
 2.915秒  transportをバッチSIMD化
 1.923秒  weight漸化式もバッチSIMD化
 1.746秒  全fieldを同じバッチへ統合
 1.702秒  最終sweepだけweightを書き戻す候補
 1.538秒  凍結ソースの最終3回中央値

途中には、正解完全一致でも遅かった候補が多数あります。小さいバッチ、masked SIMD、128エッジ化、4-row task化などは実測後に捨てました。

この「正しい変更を作る」だけでなく「正しいが遅い変更を素早く捨てる」探索が、49.715倍につながりました。

SIKB-C――24.346倍でも3位になった

SIKB-Cは100万cell、8成分、複数stageの依存関係を持つコードです。未変更版は73.028秒でした。

元コードでは、各stageで8成分だけを並列化し、OpenMP teamを何度も作っていました。

Astraは100万cellへ並列軸を移し、一つのOpenMP teamを全stepで維持しました。成分ごとに独立した漸化式をSIMD化し、forcingとcoupling係数を事前計算します。correctとcoupleも融合し、中間配列を経由せず次のstateへ直接保存しました。

-call stage_predict(step, repeats, system)
-call stage_correct(step, repeats, system)
-call stage_couple(step, system)
-call advance_state(system)
+!$omp parallel
+do step = 1, config%n_steps
+   call stage_predict(step, repeats, system)
+   call stage_correct(step, repeats, system)
+end do
+!$omp end parallel

最初のcell並列化で10.816秒、漸化式のSIMD化で3.491秒、最終的に2.999625秒、24.346倍へ到達しました。

24倍を超える高速化は大きな成果です。それでもKimiの28.764倍とGLMの25.227倍には届きませんでした。Astraが全問題で一様に優位だったわけではありません。

なぜ単体最高でも総合1位ではなかったのか

3本は意図的に異なる難しさを持たせています。

  • SIKB-A: 不規則なpair、少数チャネル、テンソル収縮
  • SIKB-B: 疎行、間接参照、多数の独立漸化式
  • SIKB-C: stage依存、状態配列、短いtail、繰り返す同期

Astraは、多数の独立した漸化式を大きなバッチへ変換できたSIKB-Bで圧倒的でした。一方、AとCではKimiやGLMが、制限時間内により高い到達点を見つけています。

今回の結果から読み取れるのは、モデルの能力が単一の軸ではないことです。

同じ32分23秒でも、次の要素が結果を左右します。

  • ボトルネックをどれだけ早く特定したか
  • 正しさを壊さず並列軸を変更できたか
  • 逐次依存のある漸化式から、独立なSIMDレーンを見つけられたか
  • データ配置と中間配列まで変更できたか
  • 遅い候補を実測で捨て、次の仮説へ進めたか
  • 評価用計算資源の待ち時間を含む制限内で、何候補を試せたか

したがって49.715倍だけを見て「Astraが最強」と結論するのも、幾何平均だけを見て「Kimiが常に強い」と結論するのも早計です。

正しさは9回すべて完全一致

科学技術計算では、速くても答えが変われば意味がありません。

Astraの最終候補は、コードごとにソースSHA-256を凍結し、同じ評価用CPU環境で3回ずつ実行しました。合計9回すべてが非公開referenceと完全一致しています。

コード 最終3回(秒) ソースSHA-256
SIKB-A 17.330798 / 17.334346 / 17.326597 105ef13d3a60371e32715ebde087aaaf25cd7062c40ae4f5c5ab3d1cb46a6ea4
SIKB-B 1.693941 / 1.537614 / 1.523308 bae9f031f06f6763941f72d9da3f1686a62afb0051569db2cf9c036ba144beef
SIKB-C 2.999625 / 3.004564 / 2.984697 ba72314e02a10e09ef536dcd61537c3a46238861653f2535b838f9e770a30763

近似許容差内ではなく、出力値は完全一致です。フラグだけの変更でも、反復回数や計算量を減らした結果でもありません。

公平性についての重要な注意

今回のAstra評価は、前回の5モデル評価と同じ公開ベンチマーク、探索時間、コンパイラ、フラグ、CPU、完全一致validatorを使った後発の追試です。

ただし、Astraは2026年9月11日時点のCodex CLI 0.153.4で実行しました。以前の5モデルは、それぞれ当時のCodexまたはプロバイダ環境で実行されています。

したがって6モデル表は、同じベンチマーク契約に基づく有用な歴史的比較ですが、「モデル名以外の全要因を同時点で固定した無作為比較」ではありません。

AstraとSol Maxのモデル世代だけをさらに厳密に比較するには、同じ現行Codex環境でSol Maxを再実行する必要があります。今回の記事では、確認済みの実測値をそのまま示し、この限界を隠しません。

また今回のAstraは、OpenAI APIによる従量課金ではなく、ChatGPTサブスクリプション認証のCodex CLIで実行しました。Kimi K3とGLM-5.3 MaxはクラウドAPI、小型2モデルは自社GPUでのローカル推論です。課金方式が異なるため、この記事では費用を一つのランキングへ混ぜていません。

公開ソースと追試

3本の公開SIKBソースは、前回記事と同じ承認済みアーカイブからダウンロードできます。

  • ファイル: sikb-suite-owner-review-r1.tar.gz
  • SHA-256: 8e46a97c91ced195bfceac3c1b0f44f1a389458017147037bb231de5e0b32567

公開SIKBソースアーカイブをダウンロード

前回の5モデル比較、詳しいベンチマーク設計、共通評価条件はこちらです。

最大級LLMは小型ローカルLLMに勝てるか――5モデルによる完全ブラインド比較

Astraの公開用差分、最終ソース、完全なプロンプト、候補履歴、3回の計測証拠は、秘密情報と内部接続情報を除外した再現性パッケージの監査後に追加します。

まとめ

GPT-6 Astraは、3本すべての公開Fortranコードを完全一致のまま大幅に高速化しました。

  • SIKB-A: 15.928倍
  • SIKB-B: 49.715倍
  • SIKB-C: 24.346倍
  • 3コード幾何平均: 26.814倍

SIKB-Bの49.715倍は、今回までの全モデル・全コードで最高です。しかし3本総合ではKimi K3の29.125倍が首位で、Astraは2位でした。

私は、この結果をAstraの敗北とは考えていません。逆にKimi K3の単純な勝利とも考えていません。

最大級モデル同士でも、得意な計算構造と探索経路は異なる。Astraは一つのコードで圧倒し、Kimiは3本を通して最も高い総合到達点を示した。

科学技術計算の高速化では、モデル名だけでなく、エージェント、プロンプト、プロファイラ、固定評価器、探索時間、そして正しさの検証を一体として評価する必要があります。

次は、新たに公開されたDeepSeek-V4.1-Flashを同じ3本、同じ完全ブラインド条件へ追加します。DeepSeekが旧V4-Proを上回ると説明する新しいFlashモデルは、SIKB-BでAstraが作った49.715倍、そして3本総合でKimiが維持する29.125倍へどこまで迫れるでしょうか。

Read more