2007年04月02日

CPU実験wiki公開

Here

toriaezu : ugokasu

2007年03月17日

CPU実験終了

最終タイムはコンパイラコード 19.628 sec, ハンドアセンブラコード 18.797 secでした。両方記録更新しました。


20秒切れて本当によかった。お疲れ様でした。最高の班で最高の結果でした。4/2までの短い春休みを楽しもうと思います。

P.S
班のwiki等は準備が整ったら公開しようと思います。今日の発表資料・発表模様の動画(thanks to pascalさん)等は、メールを下されば&面識があれば個人的にお送りさせて頂こうと思います。聞き逃された方は、是非どうぞ(笑)

2007年03月13日

20.910秒

確定申告の準備してたら秒数が減っていた。

さて、もうブログは16日の最終発表会が終わるまで更新しません。

発表会で20秒切れたかどうか、発表します。

2007年03月09日

21.291秒

うーん。

2007年03月08日

22.432秒

ヒートシンクは公式に認められた。

Early Restart DCache(id:yama6), CompilerのBranch周りの最適化(id:ushioda)が主。

僕はひたすら安定するDCMを探していた。

そして分岐予測を真剣に検討開始。

Bimodal Branch Predictor or GShare?

23.984秒

ヒートシンク無し。

19.6nsで制約を書けたらヒートシンク無しでも動いた。

P.S.

やっぱりまだいるらしい。うーむ。起きたら23.814秒。

2007年03月07日

ヒートシンクソリューション

ノリでFPGAにヒートシンクを載せてみたら100MHzで動いてしまった。

このボード(VertexⅡ)になってからは歴代1位のタイムです。

さて、後9日で20秒切れるかどうか。

P.S.
もちろんヒートシンク抜きで動くようにタイミング調節しますよ。

2007年01月28日

CPU実験: NOP地獄

CPU実験3回目の中間発表が有りました。発表用のパワポを作るためにデータをグラフ化してみたのでここに貼り付けてみます。CPU実験に入ってからというものあまり外部にアウトプットが無いので今、どういう事をしているのかつらつらと書いてみる事にします。

CPU実験: NOP地獄の続きを読む

2007年01月14日

命令スケジューリング

久びさのCPU実験エントリです。2007年、僕は準コンパイラ係りとして頑張ります。VHDL?なにそれ。OCaml ! Ocaml !

ush compilerに基本ブロック内スケジューリングを実装しました。「コンパイラの構成と最適化 12.4.1 基本ブロック内の命令スケジューリング」に載っているものを実装しました。

命令スケジューリングの続きを読む

2006年11月11日

CPU実験(15)

動いた!まえださんにPS3の発売日に間に合わせる!と宣言してたら同じ日になってしまった。丁度1ヶ月ー。その後nyaasanを加えてレイトレ動作飲み。深夜辺りの記憶が無い。色々ばぐっていたような気がする。ご迷惑をかけた皆様、ごめんなさい(笑)

参照:
- naoki
- yama
- ush
- nuはまだ満足していないらしい(笑)

2006年11月09日

CPU実験(14)

グロ画像ゲット。

追記:

おお。約780秒。

参考:

yamaさん, ushさん

2006年11月08日

CPU実験(13)

USB制御回路にバグが有る。

sldファイルを正常に送れない模様。

黒画像は出たけど、これはちょっとはまりそう。

2006年11月07日

CPU実験(12)

今日中に動くかと思われたが、制御系のバグがまだ有る模様。

あと2,3個バグを取れば絶対動くはず。

あと fadd を1 clockで返せるかもしれないアイデアを思いついたので、レイトレが動いたら試してみよう。

2006年11月05日

CPU実験(11)

「かけざんが上手くわけられない」

と寝言を言っていたらしい。

病気だ。

迷走しまくっている5班も、シミュレーター上でようやく絵が出たらしく良い感じに競争になってきたかも。

2006年11月04日

CPU実験(10)

Pipelined FPUがとりあえず出来た。

  • fadd / sub
  • fmul
  • itof
  • ftoi
  • finv
  • fsinv

nuさんがfinv, fsinvを書いてくれた。fadd / sub, fmul, finv, fsinvだけだと、「Text-based Post-Place & Route Static Timing Report」によると100MHzで動くらしい。ftoi, itofは意外とHW量食う事が分かったので将来的に無くす方向で。精度チェックもした。とりあえず50MHzで動かすので全然問題は無い。ほんとかな。

しかし10 ns / stageで動かすのは相当骨が折れた。先輩が100HMzで動かしてなかったら努力しなかったと思う。今はFPUだけだが、CPU本体と合わせると配線遅延もあるしまだまだチューニングがいる気がする。先人は偉大だ...。

さて、ISEのバグではまっていらっしゃるnaokiさんの尻を叩けばを手伝えば来週中にレイトレが動くか!?

2006年11月03日

CPU実験(9)

100MHzの世界が見えてきた

FPUも100MHzが見えてきた。

CPUはISEのバグを踏んだらしい

CompilerはregisterAllocationで悶絶している。

本当は今週中に絵を張りたかったのだが...来週こそ。

寝れないとEmacsを立ち上げる人間しか周りにいない。

TV見るぐらいなら、Emacs立ち上げる。

そのための、alias e='emacs -nw'なのです。

2006年10月27日

CPU実験(8)

レイトレ用アーキテクチャでfibが動いた。後はFPUが動けば絵が出そうな気がする。

という訳で頑張ってはいるのだが、全然速くならない。原因は分かっていて、VHDLという言語の理解の浅さに起因する。どうも実際に落とされる回路をイメージしながら書かないとカリカリに高速化出来ないよ。まぁとりあえず遅くても動くのを作ったら、ちょっと手を止めてXilinxのマニュアルを精読して(特にLibraries GuideとXST Guide)、高速化するための前提知識を蓄えよう。

2006年10月23日

CPU実験(7)

中間発表でした。うちの班はシミュレーター上でレイトレ完動、実機でSRAMを使ったfibが動作という感じでした。なんか発表してたら皆ひいててちょっと焦った(笑)

2006年10月21日

CPU実験(6)

見た目完動。しかしOCamlで動かしたものとdiffを取るとまだ微妙に違う。

CPU実験(5)

ushさんがitof, ftoiにバグを発見。絵が出た!まだ床がちょっと違うが、とりあえずやった!

2006年10月20日

CPU実験(4)

なんで右下だけなの。

CPU実験(3)

ushさんの尽力により、処理だけは最後までは走ったらしい(base.sld on simulator)。でも真っ黒。

CPU実験(3)の続きを読む

2006年10月18日

CPU実験(2)

素因数分解日本記録保持者であられる所のnuさんにより、手押しクロックとLEDが構築された(左下の基盤)。デバッグ効率あがりまくり、らしい。地下に高橋名人がいらっしゃったので今度是非、手押しクロック秒間16連射を見せてもらいたいと思う。

僕はushさんと一緒にcompiler & simulator & assemblerのバグ潰し。4億インストラクションのアッカーマン関数が動いたらしい。シミュレーターでレイトレが走りそう。

月曜日に発表があるのでパワーポイントという凄いソフトを買おうかな、と思っている。学科で配布されないのはどうしたものか。ぷろぐらむなんて書けなくてもこれが使いこなせれば食っていけるといううわさなのに。

2006年10月17日

お泊り

先週は何日、夜を学校で過ごしたっけか。とりあえず昼夜逆転しててもぅ意味不明。昨日は体調悪い & 眠すぎで午後の授業さぼって家で寝た。気づいたら朝。生活リズムが元に戻った。

2006年10月14日

CPU実験を語る会

CPU実験を語る会

is2005の先輩方が色々とノウハウを発表してくださいました。他にも院生の人達と色々話したり。かなり楽しかった。多少黒い話もありましたが(笑)。色々夢も有るのですが、とりあえず堅実に1つ1つ実装して行く方針です。

しかし今週は4日ほど泊まり込んでしまっています。24日の発表までにとりあえずシミュレーター上でのレイトレ完動、そして出来たら今月中にFPUを実装しきってしまいたいと思います(これはきつそう)。もう昼か夜か分からない。

2006年10月10日

CPU実験(1)

始まってます。面白すぎる。

とりあえずfibを動かそうという感じでチームが動いています。僕の作業としてはasm, simulatorを書いて、compilerの吐いたfibやgcdを動かしました。fib用命令セットがあまりにもしょぼかった & 仕様が甘かったので、本日レイトレ用の命令セットをきっちり策定。opcode formatも決めたかったのですが、HW屋さんが忙しそうなので夕方ぐらいからFPUを作り始めました。

基本的にIEEE 754 単精度に沿って、非正規化数は無視する方針です。Zero・NaN・Infinite等は考えて無いのですが、とりあえず1.0 + 2.0等が動いたみたいです。きちんとしたテストを通すのはかなりしんどそうです...。

2006年09月22日

CPU実験までもうすぐ

CPU実験

裏で班員確保の為の工作が行われている模様...

ルイーダの酒場って絶対に殺伐としてるよな。あいつとは冒険に出たくないとか。まぁラスボスを倒せるかどうかは8割方ここで決まるから仕方ないか。