AIチップってなに!?
今回は日頃自分でも疑問に思っているAIチップに関して考察をしていきたいと思います。私は半導体エンジニアですが半導体設計の専門ではないのでアーキテクチャやその他に関しては全くの素人です。ですがこの分野を俯瞰して見てみることでAIチップとはなんぞや?というのが理解できればと思っています。
背景
Newsや色々なところで、AIチップ設計やAIチップ製造に向けた技術開発および工場建設が紙面を飾っています。ところでAIチップて何?に関しては結構あやふやだったり、全く触れなかったりしており自分でも腑に落ちないところが多々あります。なので半導体エンジニアの端くれとして自分の知識や調べたことをまとめて、AIチップってなに?を考察したのをまとめておきます。
自己紹介
日本の大学でPhDを取得し、日本の会社に就職するも会社の方針転換で一年も経たずに外部に出向し、先行きが見えないため別の日本企業に転職。なぜか転勤族になり西の方に移住。英語を勉強して外資系に転職しVISAをサポートしていただきUSに移住。その後GCを取得しBay Areaの大手テック企業に転職して今にいたります。専門は半導体のプロセス設計です。
転職に関する自己経験なのどは別のnoteにまとめていますのでご興味がありましたらご参照ください
そもそもAIを動かすにはどのような半導体が必要?
細かく解説すると、かなりのVolumeになるのでざっくりとしか書きません。これ以外にもたくさんの半導体チップが使用されているのですが全体を知るという意味で以下をPickupしました。
CPU
GPU
Memory (SRAM, DRAM, Flash)
Power ICおよびcontroller IC
Others
専門家の人が見たら激怒しそうですが、一旦以上のものがあれば今回は十分なのでここでやめておきます。
CPU
これは皆様も知っているかと思います。論理計算を主に行います。論理計算というのは処理そのものを効率良く動かすためにSystem全体に対して命令を出す処理です。
GPU
複雑な計算を一手に、かつ同時並行で処理します。同時並行を上手く実現するためのコントローラーおよび、同時並行に計算を行うための計算ユニットが実装されています。
Memory
情報を一時的や長期保存するためのものです。アクセス時間や頻度、さらには保持期間などを考慮しどのMemoryを使うかが決められます。
Power ICおよびcontroller IC
主に電源周りを処理します。電源から入ってきたAC電圧をDCに変換したり、されにそれを昇圧、降圧したりします。また待機時に余分な電力を消費しないように監視したりもしています。
GPUはAIチップではない
よく目にする記事はGPUをあたかもAIチップのように扱っています。確かにGPUで機械学習や推論に必要な処理はしています。ですがこれをAIチップというのは少し違う気がします。自分としてはGPUは以下のように設計されているからです。
あくまで汎用的な処理を効率よく処理するためにArchtectureが組まれている
機械学習や推論処理が効率良くできるユニットが実装されているが、これもあくまで一般的に効率が良くなるであろうものである。何かに特化しているわけではない
Graphic処理が中心であって機械学習や推論を主たる目的として設計はされていない
なのでGPUはAIチップかの質問に関しては、自分の意見としては"Not"である。ではAIに関する処理(機械学習や推論)はできるかに関しては"Yes"である。ここで重要なのはAIに関する処理ができる半導体チップ≠AIチップということである。
AIチップってなに
表題に戻りますが、じゃAIチップってなに?に戻ります。自分が考えるAIチップは以下に当てはまるものではないかと考えています。
ある特定または構造が似たアルゴリズム処理に特化した処理機構を持っている
機械学習または推論、またはどちらかに特化したArchtectureになっている
一つのチップまたは複数チップの集合体がAIに関する処理をする
かなぁと思っています。
例えばGenerative AIとかが最近話題ですが、構造の大元はTransformerというAlgorithmです。この部分やそれを発展させた処理に特化した処理を集積回路として実装し、この処理を効率良く行うためのMemory設計したチップがAIチップと呼べるのではと思います。
そんなものが世の中にあるのかって?あります。ここ5年ほどのISSCCを眺めるとCIM(Compute-In-Memory)というSessionがあります。このコンセプトは個人的にはAIチップに近いと考えています。
AIチップの問題点
最近流行りのAlgorithmを高速に処理するAIチップを設計すればいいのか?というと"No"だと思います。理由はチップの設計期間とAlgorithmの進化のスピードが違いすぎる。という点です。チップ設計は少なくとも2年以上はかかります。ですがAlgorithmの進化は常に進んでいます。つまりチップが出来上がった頃には、廃れたAlgorithmになっている可能性があります。なので技術の連続性がないものをハードに起こすというのは非常にリスクがあります。なので結局最初の話に戻りある程度の汎用性を持たせて、Algorithmの進化に対してすぐに対応できるものとなります。そうするとGPUに戻ってしまいます。
自分が思うAIチップ
否定ばかりして自分の意見を言わないのは不公平で一番してはいけないことなので、自分が思うAIチップに関して触れて今回は終わりにしたいと思います。
前の章でも書きましたが、何かのAlgorithmに特化したチップを作るのは経済的不合理が大きいので、ある程度汎用性を持たせる必要があるかと思います。なので以下のようなアプローチは以外にあるのでは?と思います。
機械学習と推論を別物と考え、それぞれに特化したチップにする
機械学習用は豊富なリソースを前提とした設計で、推論用は制限されたリソースでCIMのような考えを導入し低消費電力でかつ高速に処理することに特化する
このように考えると推論用チップはAIチップとして上手く定義できるし攻め方が明確になるような気がします。まぁエッジAIという分野ですね。言葉を変えると
エッジAIで使用する汎用推論用チップがAIチップ
というに自分の中では定義しようと思います。
まとめ
今回は話題のAIチップに関して考察し、自分の意見をまとめました。色々なご意見等があるかと思いますが、一個人の意見として見ていただければと思います。