
あるエンジニアが、「経験ゼロからGPUを設計する」という自身の道のりを公開しました。ゼロからCPUを設計した以前のプロジェクトと同様に、アダム・マジュムダール氏はこの難題をわずか2週間で成し遂げました。Twitter/Xスレッドでマジュムダール氏はプロセスを段階的に説明し、GPU設計は予想以上に困難な作業だったと認めています。念のため言っておきますが、このプロジェクトの最終成果はVerilogで書かれたチップレイアウトで、OpenLane EDAソフトウェアで検証済みです。しかし、このGPUはTiny Tapeout 7経由でテープアウトに提出される予定で、数ヶ月以内には実際のチップとなる予定です。
上の写真は、Majmudar氏がGPUを設計するために取り組んだ一連の作業フローです。しかし、「ゼロから」のプロジェクトであったため、最初のステップを踏み出す前にも多くの検討と検討が必要でした。前回、独自技術が主流であるため、GPUの研究は比較的難しい分野になるだろうというエンジニアの懸念について触れましたが、その予測は現実のものとなりました。
上記のアーキテクチャを複数回イテレーションした結果、Majmudar氏は汎用並列コンピューティング(GPGPU)機能に焦点を当てることにしました。そして、わずか11個の命令からなる命令セットアーキテクチャ(ISA)を調整することで、この目標を達成しました。次に、彼はGPU上で動作する2つの行列演算カーネルを作成しました。これらの行列加算カーネルと行列乗算カーネルは、GPUの主要な機能を実証し、グラフィックスおよび機械学習タスクにおけるGPUの有用性を示すものです。
エンジニアにとってこれまでのところは比較的容易だったが、GPUをVerilogで構築する際には「多くの問題」が生じた。かの有名なジョージ・ホッツ氏からのアドバイスのおかげで、マジュムダール氏はメモリとワープスケジューラの実装に関する最初の(そして2つ目の)ハードルを乗り越えることができた。しかし、3度目のコード書き直しでようやく解決し、コンピューティングコアの実行スケジューリングを修正することができた。
その後、さらに詳細を明かさない再設計が行われ、実証として、行列加算カーネルの実行と検証を示すビデオがツイートのスレッドで共有されました。
最後に、完成したVerilog設計をOpenLane EDAに渡し、Skywater社の130nmプロセスノード(Tiny Tapeout向け)をターゲットとしました。ここでも、いくつかの問題を解決する必要がありました。特に、Majmudar氏は、一部のデザインルールチェック(DRC)が失敗し、手直しが必要になったと説明しています。
2週間の作業を経て、エンジニアはGPU設計のクールな3Dビジュアライゼーションで遊んでいました。TT7が参加者にチップを返却するまでは、これで十分でしょう。もちろん、この作品が最高のグラフィックカードにランクインすることはないでしょう。この自作GPUについてもっと知りたい方は、楽しいソーシャルメディアのスレッドや、専用のTiny-GPU GitHubページをご覧ください。
Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。
マーク・タイソンはトムズ・ハードウェアのニュース編集者です。ビジネスや半導体設計から、理性の限界に迫る製品まで、PCテクノロジーのあらゆる分野を網羅的にカバーすることに情熱を注いでいます。