第278回 「AIがRISC-Vを設計」というニュースを読んで、はや失業(!?)かと思ったら……:頭脳放談
中国の研究チームが、人工知能(AI)ソフトウェアで「RISC-V」のCPUを自動設計したという。「何でもAI」という最近の風潮が、CPUの設計にまでと思い、論文を読んだところ、当初思っていたのとかなり違っていた。その違和感について勝手な意見を述べさせていただく。
人工知能が設計したというRISC-Vプロセッサ
中国科学院/中国科学院大学を中心とした研究チームが開発した、人工知能(AI)で設計したRISC-Vプロセッサコア(写真:a)、そのパッケージ(写真:b)、評価用ボード(写真:c)。写真は、論文「Pushing the Limits of Machine Design: Automated CPU Design with AI[PDF]」より。
中国の研究チーム(中国科学院/中国科学院大学のShuyao Cheng氏などを中心としたチーム)が、人工知能(AI)ソフトウェアで「RISC-V」のCPUを自動設計したという論文が話題になっていた(論文は、「Pushing the Limits of Machine Design: Automated CPU Design with AI[PDF]」)。何でもかんでも「AI」といえばもてはやす風潮は収まっていない。
今度は、CPU設計もAIでか、ということで、ニュースバリューが上がったみたいだ。それに結果をIntelのCPUと比べているところも、一般の人に「分かりやすい」ようで、さまざまなニュースサイトが取り上げている。
論文を読んでいて、実はかなり違和感があったので、勝手な意見を述べさせていただく。結論からいえば、半導体におけるCAD技術の進歩の一環としては評価できるものの、世界(半導体業界)をひっくり返すほどの強烈なインパクトかというと疑問を感じた。
CPUはどうやって設計するの?
本題に入る前に、CPUをどうやって設計するのか、そのステップをざっくりおさらいしておく。
RISC-Vのような仕様が決まっているCPUの場合、通常は仕様書にそってマイクロアーキテクチャレベルから実装レベルまで順次設計に落としていくわけだが、現状その工程の多くで言語設計が採用されるのが普通だ。
言語設計も高いレベル(抽象度)から低いレベル(実ハードウェアに近い)までいろいろある。現行普及している比較的低レベル向き言語であるVerilogHDLやVHDLなどで記述できれば、ハードウェア要素部品への「コンパイル」は論理合成ソフトウェアが自動で行ってくれる。
端的にいえば、「これとあれを掛け算した後、それを足してね」といった手順を書けば、乗算器に加算器などが自動で作れてしまうわけだ。なお通常のコンピュータ言語とハードウェア記述言語の本質的違いは同時並列性にある。通常のコンピュータソフトウェアは基本的に順次処理であり、並列処理といってもスレッド程度だが、ハードウェアは基本全ロジックが同時並行に動作するからだ。
そして、論理合成後のネットリストというものは、物理設計に自動でマップできる。このレベルに達するのに何十年もかかったのだ。現段階のCAD技術をもってすれば、設計者にRISC-Vの仕様書を読んでVerilogで書き直せる力量があれば、取りあえず動作するCPUを作成するのは「たやすい」といえる。現在はFPGA技術が発展しているので大学生でもやろうと思えばハードウェア化できるし、やっている人もいると思う(根気があればだが)。
しかし、だ。商売になるような設計にするとなると、格段に難易度が高くなる。単に仕様書に書いてある通りに命令が動くということでなく、性能(1命令当たりのクロック数と動作周波数、そして消費電力)とコスト(チップ面積)で同業他社のレベルを凌駕(りょうが)しないとならないからだ。この部分が設計ベンダー各社のお金を取れるポイントなのである。
また、こういう実装に近い部分には特許が大量に出願されている。むやみな設計を行うと、誰かの特許を踏んでしまい、最悪出荷差し止めとなる。特許は知らなかったでは済まないので、他社の実装方式の調査は「無」にはできない。
さらにいえば、RISC-Vのようなケースでは、RISC-Vインターナショナルが仕様を決めてくれている上に、その仕様は実装しやすいような配慮までされている。そして、シンプルである。やりやすいのだ。
しかし、仕様が決まっていない本当にまっさらな状態からCPUを設計しようとすると、考慮しなければならないトレードオフはあまりに多い。その割にそれが売れるかという観点からいうと、リスクが高い。無名のアーキテクチャを売れるようにするためにかかる主としてマーケティング的なリソースは膨大だ(RISC-Vの場合は、RISC-Vインターナショナルがそのマーケティングを担ってくれている)。
AIによるCPUの設計手法
さて本題の今回の発表を見ていこう。一番注目されるのは、その設計手法である。上に述べたような言語設計手法は採用していない。現代、AIによるソフトウェアの自動コーディングは普通に行われるようになっているのでハードウェア記述言語に対してもできると思うが、そういう手法はとっていない。
採用したのは、膨大な入力と出力ベクトルの組み合わせをAIに学習させて、論理を自動生成するという手法だ。その際、Binary Speculation Diagram(BSD)というグラフを使っているようだ。
ここを読むと論理回路の設計者的には、「何だ、入出力の組み合わせからCPU相当のFSM(Finite State Machine、有限状態機械)を一気に自動生成しているだけではないか」という感想が出る。
Copyright© Digital Advantage Corp. All Rights Reserved.