明けましておめでとうございます.18のhiraです.
僕はコンピュータ工学をやっているつもりなのですが,近年は1つのプロセッサの性能向上が限界に達しつつあり,代わりにマルチコアだったり,AIや行列計算用の専用プロセッサを組み合わせることが主流となっています.
ところが専用プロセッサは少量他品種であり,そのために複雑な回路を設計することは今まで困難でした.
ここに現れたのがGoogleが後援するOpenMPWプログラムです.これはGoogleColab上でDSLXというVerilog(回路のプログラミング)っぽい言語でコードを書くと,それが実際のカスタムプロセッサに変換され,さらに提携しているファブで製造までされるという企画です!しかも内部表現としてXORなどの論理演算の数や,その演算同士のつながりのグラフが得られます.
(設計にはこちらのOpenMPWチュートリアルを参考にしました)
となればやりたいことは1つですね.『三体』の人海戦術の手旗信号による人列コンピュータには何人必要か.三体問題専用プロセッサを作って検証してみましょう!
この記事で作製したMATLABファイル,GoogleColabのipynbファイルはリンクのGithubにありますのでご参照ください.
(注: 以下の記事には『三体』のネタバレを含みます)