世界を動かす技術を、日本語で。

Tinygradの5年間

2025年12月30日原文(geohot.github.io)

概要

  • tinygrad は2020年10月17日に最初のコミット
  • 現在6人のチーム、約18,935行のコードベース
  • NVIDIAと競うための独自ソフトウェアスタック構築
  • 他社の巨大なコードベースと比較し、 圧倒的に小規模
  • 目標はペタフロップのコモディティ化

tinygrad開発の歩みと哲学

  • tinygrad は2020年10月17日に最初のコミット
  • 資金調達から約3年が経過
  • 現在のチームは 6人構成
  • テストを除く コードベースは18,935行
  • 5年間で18,935行に注力し、他のメンバーも数年を費やす
  • 今後さらに 5年の開発期間 を見込む
  • NVIDIAと競合するための 正しいプロセス 重視
  • 最初からチップ(ASIC)設計に着手するのは非効率と主張
  • ソフトウェアスタック の完成が最優先
    • SOTAモデルを訓練可能な完全な主権ソフトウェアスタック
    • 完成後はチップ設計が容易になるという見解
  • AMD, Amazon, Tesla, Groqもチップを設計したが
    • GoogleとNVIDIAのみが本格的な訓練に利用されている理由はソフトウェア
  • LLVM依存排除を進行中
    • pure Python 以外の依存をゼロにしてAMD GPUを駆動
  • フロントエンド、グラフコンパイラ、ランタイム、ドライバを完備
  • 既にPyTorchを上回るワークロードも存在
  • 最終的に約 20,000行 で完成予定

ソフトウェア設計に対する批判とtinygradのアプローチ

  • ソフトウェア設計の多くが 誤った考え方 に基づくと指摘
  • ほとんどのコードベースには他の部分の問題への ワークアラウンド が存在
    • その多くは深層的かつ構造的で、コードを読んでも気付きにくい
    • ソフトウェアの 98% がこのようなワークアラウンドで構成されていると主張
  • Elon Musk流の「 要件を愚かにしない」アプローチを採用
    • 最良の部品は部品がないこと」を重視
    • ほとんどの要件は他の抽象化との互換性維持のために存在
  • LLMサーバーの例
    • 本質的要件は「OpenAI互換APIでLLMを高速実行」
    • 実際のコードベースは 何百万行 にも膨れ上がっている
    • tinygradは 1/1000の規模
    • 他のコードは目標よりも他コードとの整合性に注力しているため非効率
  • 同様の 非効率性が組織にも存在 と指摘

tiny corpの組織形態と運営

  • tiny corpは 分解型(deconstructed)企業
    • 高級シェフが料理を分解するように、会社の構造も分解
  • プライベートな要素はほとんどなく、 DiscordとGitHub が主な運営基盤
  • 資金調達手段
    • コンピュータ販売部門 で年間約$2Mの売上
    • AMDとの契約 でMI350XをMLPerf上でLlama 405B訓練に利用
      • 交渉は主にTwitter上で公開
  • 採用は リポジトリへの貢献 によって決定
  • 自律性の高い職場、週1回のミーティング、目標はtinygradの改善
  • ミッションはペタフロップのコモディティ化

Hackerたちの意見

tinygradがこのまま進んだら、何を置き換えるんだろう?

おそらくPyTorchとTensorFlowかな。

エッジシステムでの展開に大きな可能性があると思う。

「エロンのソフトウェアプロセスにサブスクする」っていうのは、ちょっと変だよね。毎年DefconのCTFでGeohotのPlayStationラップ動画を壁に映してたのを思い出す。

「インスピレーショナル」な名言が、元のアイデアを考えた人じゃなくて、一番多くのフォロワーがいる人に帰属されるのが嫌なんだよね。今回のケースだと、ロッキードのスカンクワークスのエンジニアたちなのに。

「人はリポジトリに貢献することで雇われる。週に1回のミーティングがあって、tinygradを良くすることが目標の、自主的な仕事だ。こういう組織構造は魅力的だと思う。週に100%の生産性に近づける一番の方法かもしれない。」

ジョージの「みんなサンディエゴに移動するべし」っていう古い方針はどうなったんだろう?

貢献者を雇うことに反対するのは難しいけど、スキルのある開発者に対して市場価値の何分の一かしか払わない報酬システムだけが面接の道じゃない方がいいよね。ちょっと搾取的な感じがする。

本当に「複雑」なの?それとも「ややこしく」しちゃっただけ? - https://www.youtube.com/watch?v=ubaX1Smg6pY

2025年にGPUをプログラミングするのは複雑だね。多分、わざと複雑にされてるからかもしれないけど、どっちにしてもこのプロジェクトがコントロールできる複雑さじゃないよ。TinygradがPyTorchと競ってるのがこんなに少ない行数で済むってことは、ほんとに余計な複雑さが少ないってことだね。

もし自分の方が良いことができると思うなら、コードはそのままあるから試してみて!もしそれをシンプルにできれば、虹の終わりには大金が待ってるよ。(この話好きだけどね)

「運営資金を確保するために、年間約200万ドルの売上を上げるコンピュータ販売部門がある。それの利益率はどれくらい?5人のソフトウェアエンジニアが年間200万ドルのハードウェアの利益で本当に生活できるの?」

Hacker Newsで議論の続きを見る