Jim Keller。AMD Ryzen / Apple Silicon / Tesla Hardware 3 などの開発を主導してきた、現代コンピュータアーキテクチャ界の巨人です。そんな彼が率いる半導体スタートアップが Tenstorrent です。
Tenstorrent は Tensix Core という RISC-V ベースの AI アクセラレータを開発しており alt-nvidia の有力候補のひとつです。
alt-nvidia 戦争の構造
nvidia に勝利する条件は以下の3つです:
- nvidia よりも良いハードウェアを作ること
- nvidia よりも良いソフトウェアを作ること
- それを市場に普及させること
nvidia のハードウェア
実は nvidia のハードウェアにはさまざまな弱点があります。研究レベルでは散々指摘されています。
現に、nvidiaよりも性能が出ることを謳ったハードウェアが大量に生まれています。
- Groq
- Samba Nova
- Celebras
- Tenstorrent
これらのアーキテクチャ図を見るとどれも似通っています。 nvidiaよりも良いハードウェアを作る方法論は既によく知られています。 「データ移動を中心としたアーキテクチャ」にすることです。
Jim Keller も「アクセラレータを作るのはそこまで難しくない」と冗談まじりに言っていますが、実際のところ私もそう思います。AI アクセラレータは CPU よりも単純です。
しかし、これには大きな罠があります。「nvidia よりも良いハードウェアは簡単に作れるが、そのソフトウェアが非常に大変になる」という罠です。つまり1で勝利しても、勝利したがゆえに、2で勝つのが難しくなるのです。
従来ハードウェアがやっていた仕事をソフトウェアに持たせることでハードウェアの性能は良くなる。が、ソフトウェア開発は大変になります。この毒まんじゅうを食らって倒れた企業は数知れません。確かに nvidia よりも電力効率やコスト効率はいいのですが、ソフトウェアが微妙でなかなか買い手がつかないという物体がたくさん開発されました。
nvidia のソフトウェア
nvidia のソフトウェアは最強です。
多くの AI 研究者は NVIDIA GPU の上で育っています。PyTorch を使い CUDA の演算を呼び A100 や H100 で実験を回します。研究コードも自然と NVIDIA 前提になります。新しいモデルが出ると、誰かが NVIDIA GPU で動かし、最適化し、GitHub にコードを上げます。NVIDIA が頑張らなくても、世界中の研究者コミュニティが勝手に NVIDIA の優位性を強化してくれます。
これは新規参入は非常にハードルが高いです。AI 研究者の多くは、ハードウェアそのものに強いこだわりがあるわけではありません。大事なのは自分のモデルが動くこと、そして論文の締切に間に合うことです。コードが安定して動かないアーキテクチャのハードウェアに移行するモチベーションはないです。
象徴的なのは、富岳 NEXT が NVIDIA の GPU を積む話です。大量の CPU の演算能力で殴るスパコンの時代から GPU クラスタの時代に移っているわけです。いまどき Open MPI のマクロだらけの C を書いて fcc でコンパイルするなんて誰もやりたくないわけです。計算機を作ってもそれが PyTorch から呼び出せないと使ってくれないんですね。(富士通ヒス構文)
nvidia に対抗するには、このエコシステムに対抗する必要があります。
Tenstorrent のソフトウェア戦略
Tenstorrent はエコシステム問題に力を入れています。自社のソフトウェアスタックを全てオープンソースとして公開しています。
- tt-metal : 低レベルプログラミングツール (triton)
- tt-lang : 高レベルプログラミングツール (cuda)
- tt-nn : オペレータライブラリ (cudnn)
- tt-forge : モデル推論 (tensorrt)
※ () は nvidia で相当するライブラリ
また低レイヤなソフトウェアも公開しています。
- tt-system-firmware : デバイスのファームウェア
- tt-kmd : カーネルドライバ
- tt-umd : ユーザドライバ
Tensix Core のアーキテクチャも、verilogこそ公開されていませんが、その仕様は公開されています。
これは、半導体企業としてはかなり思い切ったやり方です。普通、半導体企業はこのあたりをあまり見せたがりません。顧客にソフトウェアとドキュメントを渡すが内部実装はブラックボックスである。性能を出すためのノウハウは社内エンジニアだけが知っている、という形が多いと思います。
そして、ソフトウェアを単に公開するだけでなく、コミュニティの構築にも力を入れています。
このオープンソース戦略により、ソフトウェアが洗練されているように思います。さまざまな環境でさまざまなモデルの動作が検証され、Discordでバグが報告され修正される、という良いエコシステムができています。またユーザがさまざまなモデルを試しています。
このような活気のあるコミュニティの存在が Tenstorrent の強みであると思います。なによりも「Jim Keller」がコミュニティの求心力になっていると思います。
これはオープンソースならではの強みです。この点において nvidia のエコシステムに対抗するポテンシャルを持っていると思います。性能面を無視してソフトウェアの使い勝手だけ見れば tenstorrent のほうがいいです。
エージェント時代のエコシステム
Tenstorrent のソフトウェアエコシステムは非常によくできていますが、性能を引き出すという観点ではまだ不十分です。tt-forge というモデルコンパイラはありますが、推論性能という点では nvidia の TensorRT には及びません。低レベルの tt-metal を書くのは人間には難しいタスクです。
コーディングエージェントの登場で時代は変わりました。これまでは、特殊アーキテクチャを使いこなせる人間が少なすぎました。多くの AI アクセラレータは、理論上性能が良いといわれても、実際の開発現場ではなかなか広がりませんでした。
一方で Claude があれば人間がすべてを理解しなくても、エージェントがコードを読み、ドキュメントを読み、実験し、最適化案を出してくれる。こういう開発スタイルでは、アーキテクチャが特殊なことのデメリットが下がります。
重要なのはいかにエージェントにとって使いやすいかです。Tenstorrent は当初からオープンソース戦略を重視していましたが、結果的にエージェントにとって使いやすいエコシステムが出来上がっています。
エージェントには次を渡します:
- PyTorch で実装されたモデル(論文と一緒に公開されることが多い)
- PyTorch / Tenstorrent の実行環境と比較テスト
- プロファイリングツール
- Tenstorrent のツールチェーンのソース全て
このような Docker 環境を用意してやって、あとは次のプロンプトを渡します:
「PyTorchで実装されたモデルがあります。これを Tenstorrent のハードウェアで推論できるようにしてください。プロファイルを取りボトルネックを特定しながら推論を高速化してください。」
人類の仕事はこの環境を整えて寝ることです。
NVIDIA のソフトウェアエコシステムは強力ですが、エージェント時代におけるソフトウェアエコシステムという観点でいえば Tenstorrent が一本先行しています。
Tenstorrent は将来の nvidia になるのか?
Tenstorrent はまだ nvidia ほどの力はありませんが、十分に対抗するだけのポテンシャルを持っていると思います。私も実際にいくつかのモデルを Tenstorrent ハードウェアに実装した中でそれを実感しました。
このシリーズでは Tenstorrent のハードウェアを実際に触りながら Tenstorrent について理解していきます。