CPU実験の変更点(暫定)

あけましておめでとうございます.
この記事にアクセスしてくださった方はご存じかもしれませんが,東京大学理学部情報科学科ではCPU実験という名物授業があります.どんな授業かというと,班員で役割分担をし,mincamlという言語で書かれたプログラムを動かすデバイスをFPGA[1]で1から作るという授業です.詳しい概要については先輩方が書いたブログなどにも書かれているのでそちらをご覧ください.

しかしながら,担当教員の変更と去年に引き続いて例のウイルスの影響を受け,今年から大幅に内容が変更されました.
これが永続的なものかはわかりませんが,記録として残しておきたいと思います.もし,後輩の方が私より前の世代の方のブログを見る際に参考にしていただければと思います.

全般

授業が対面→オンラインと対面のハイブリッド型へ

コンパイラ実験は完全オンラインですが,プロセッサ実験は生徒が対面,オンラインを自由に選べます.しかし,対面授業は他の班の同級生と情報交換ができる貴重な場だった[2]ので多くの人が対面で受けていました.

(地下が利用不可能に)

去年に引き続き,地下が利用不可能となった状態で開発を行いました.
おそらく2022年は使えるはず…?


ハードウェア

配布されるFPGAボードの性能が低下

これは決して予算が削られたわけではなく(たぶん),今までは班に一つ配布されていたものが一人に一つに増やされたためです[3]
これにより以下の変更が発生します.

DDR2メモリの使用が性能的にほぼ必須に

以上より,FPGAのBRAMの容量が減ったため,特に工夫をしなかった場合,容量不足となります.そのため,BRAMをキャッシュとして用い,DDR2メモリをメモリとして扱うことを強いられます.後述しますが,キャッシュの開発も単位要件として追加されたので無理やりBRAMしか使わないようにすることは認められません.


単位要件

コンパイラ実験の課題の割り振りの変更

一部の個人課題がグループ課題になる,必須提出数の増加などがありました.全体的には負担が増した気がします.

FPU係がFPU・メモリ係に変更

メモリの変化により,FPU係にキャッシュシステムを含むメモリ開発の役割が増えました.

キャッシュの開発が必須に

前述したようにDDR2メモリの使用が必須になったため,これだけを使うと速度が著しく低下します.そのため,BRAMをキャッシュとして用いることが必須になりました.

シミュレータ係に実行時間予測のタスクが追加

今までは動作のシミュレーションだけを行うソフトを作れば単位を確定できましたが,それに加えてハードウェアでプログラムを実行した際にかかる時間をある程度の精度で予測することも必須要件に加えられました.これにより,今までは仕事がなくなっていた学期末に仕事が入ります.

発展課題として512×512の画像サイズのレイトレが追加

必須要件は128×128の画像のレンダリングの速度競争ですが,発展としてその4(16)倍の大きさの画像のレンダリングの速度競争が行われます.


書き洩らしがあればご一報願います.

  1. プログラムで自由に回路を変更できるデバイス ↩︎

  2. DiscordやSlackもありますがやっぱり対面のほうが話しやすいです ↩︎

  3. 完全オンラインになっても全員が手元で動作させられるようにするため ↩︎