Skip to content

Instantly share code, notes, and snippets.

@buko106
Last active January 24, 2018 02:21
Show Gist options
  • Save buko106/707a66515ea277f8dbc80dc5a1cd7807 to your computer and use it in GitHub Desktop.
Save buko106/707a66515ea277f8dbc80dc5a1cd7807 to your computer and use it in GitHub Desktop.
CPU実験2016進捗報告会ログ

2016年10月4日(第1回)進捗報告会

TAがいないので質疑はないです

G班

  • 進捗ないです

  • RISC-Vを参考にします

  • とりあえず単一命令サイクルを目指す

A班

  • MIPSサブセット

  • コンパイラのエラーが可愛くなった

  • ISA(整数のみ)ができた

C班

  • MIPSサブセット

  • プログラムローダーを作る予定

(TA)役に立つと思いますが実装は大変。

(TA)コンテストサーバーとの親和性が悪いです。

  • min-camlのテストが走った

(質疑)どういう意味ですか->コンパイラがはいたMIPSアセンブリが自作シミュレータで走った

F班

  • MIPSサブセット

  • OoO+リオーダバッファ

(TA)リオーダバッファはいらないかも

(TA)OoOするとメモリ周りが複雑になるとおいます

  • シミュレータはすごい

  • コンパイラ、ライブラリは進捗なし

E班

  • OoO実行をサポートする

  • ブートローダーの作成

*(2ndで)3次元ベクトル演算に特化

  • MIPSサブセット

(TA)Memory mapped I/Oにすればstrictにサブセットにもできますよ。

B班

  • MIPSサブセット

  • 10月上旬までにコンパイラ-> MinCamlの概要把握、コア->算術演算を、ライブラリ->アセンブラとシミュレータを書く

D班

  • MIPSサブセット+in,out+sin,cosなど(IPコア使用)

(TA)比較命令と分岐命令がセットでもいいんじゃない?コンパイラ係の負担が違うかも

  • 線表を書こうとしたら書けなかった

  • シリアル通信をやってみた。

  • 差動信号の扱い方がわからず苦しんだ。IBUFDS,IBUFGDSは何が違うのか(両方共うごいた)

(TA)左は使ったことあるけど右はない、Gはグローバルの意では

(TA)勉強してきます

  • 周波数が書いてないクロックがある

(TA)外部とつなぐSMA専用のやつかな。まあシリアルには使わないでしょう。

  • コンテストの通信のレートは115200固定?

(TA)好きに早くしても良いですが、USBケーブルの限界があるかもしれません。動く限りOKです。

H班

  • 役割分担をした

  • google docs , slack , bitbucketを使って進捗を共有します

  • MIPS32サブセット

  • sin,cosはハードウェア実装のほうがよい?

(TA)ライブラリでも、IPでも良いですが、sin,cosは呼ばれる回数が少ないのでコンテストでの速度寄与は少な買ったと思います。

(TA)mulはシフトでできるし、2倍とか4倍とかしか無いのでシフトでいけますよ

TAによる総評

  • しっかりコミュニケーションをとること。使わない命令を実装してもコア係の作業が線形に増えるだけです。

  • slackで煽られすぎてslackの通知音恐怖症になった人が過去います

2016年10月11日(第2回)進捗報告会

E班

  • 1st の完動目標11月上旬

  • 命令セット確定、タスクの明確化をしました

  • シミュレータ(C++)の概形が完成(10/23までに完成)

  • ライブラリもsinなどOCamlで書き始めた

質疑

  • ライブラリをOCamlで書くとっているが、それはコンパイラ係が実装したmin-camlの構文の範囲内いうことですか?

その意思疎通はとれていない、今後連携する。

  • (TA)発表のフォーマットが見やすかったので、このような形式だとわかりやすいです。

B班

  • コア係がwikiを作った

  • githubで連携するようにした

  • シミュレータの基本部分ができた

質疑

  • githubはpublicですか

publicです。

  • wikiは見られますか

コア係がいないのでわかりません。

A班

  • 目標としていた再帰fibはまだ動いていない

  • ISAの不備がわかってきた

  • 命令の動作を明確にした(MIPSとの違いを明確にした)

  • loopbackが動いていない

  • 基本コア命令の実装(実機確認まだ)(まあ動くでしょ〜〜〜〜)

  • 来週までに再帰fib

  • コンテスト用のminrt.ml(を少し書き換えたもの)がコンパイルできた

  • シミュレータ係はインタプリタができたがバグっている

  • アセンブラの進捗は0

  • githubのグループを作った(プルリク大歓迎)

質疑

  • 命令メモリ、ヒープ、スタックってどうやって置けばいいんですか

命令メモリと他のメモリは分けるのが伝統ですね。ヒープのアドレスはコンパイル時に決まるでしょ

  • 呼び出し規約はどうやって決めれば

好きに決めたらいいんじゃないですか。CPU実験に限って言えばコンパイラ係にのみ関係するのでは。

(アーキテクチャに強く依存するような場合を除く)

  • 少しminrt.mlを書き換えたとはどういうことですか

複数のfileを結合したり、レギュレーションで許可されている書き換えをしたという意味です。

G班

  • コア係がいない(進捗は無いらしい)

  • Vivadoをインストールしたらしい

  • コンパイラ係はコンパイラ実験の課題をすすめた。

  • 簡単なアセンブラを作った

  • RISC-Vへの理解を深めた(班全体の集合知として)

質疑

  • コア係の進捗を聞きたい

僕が聞きたい

  • (TA)この機会にgit(hub)の使いかたを覚えましょう。

  • (TA)サイクルacculateなシミュレータですか?

たぶんそう

F班

  • ToDo

質疑

  • ToDo

H班

  • アーキテクチャの詳細を決定

  • レジスタGPR16+FPR16

  • r0,r14,r15は特殊レジスタに予約

  • コード共有をBitbucketからGithubに移動しました

  • stackメモリへのpush,pop命令を実装

  • コンパイラ係は課題をすすめた(エラーや行番号の表示など)

  • simulatorでfibが動いた

  • ライブラリはsqrt,sin,cosで制約を満たすものを作った。

質疑

  • ライブラリを書いた言語は何ですか

OCamlです

  • 制約を満たすとはどういうことですか

faddなどから来る誤差が大丈夫か評価した、ちょっと間違っているかもしれない。

D班

  • ISAの3つの命令セットが実行できるようになった

  • プログラムローダーができた

  • 32bitのFPUをIPで生成した

  • コンパイラができたらminrt.mlをコンパイルして命令の容量を知りたい

疑問

  • パック配列とアンパック配列は何が違うのか

(TA)合成できる方を使えばいいんじゃないですか

  • Power good LEDが赤になっている(緑の時もあるが)

(TA)基板にデフォルトから入っているセルフテストは動きましたか?

  • CORDICやDDR4のモジュールを生成してGenerate Bitstreamはできたが、書き込み時にVivadoのバージョンが対応していないいうようなエラーが出て書き込みが失敗する(MIG関連)

(TA)そのエラーに関してエラーメッセージを送ってもらえますか。バージョンの問題であれば2016のhogehogeもライセンスがあるはずなので、こちらで対応できそう。

同じようなことでバージョンを上げる必要があるIPを使いたい等があれば、TAまで連絡をください。

C班

  • コンパイラ:シミュレータシミュレータ-> /min-caml/testが全部動いた

  • レイトレ(contest.sld)は動いたが、ほとんど真っ暗な画像(グラデーションがある)が出力された

  • コンパイラは最適化の勉強をしたい。

  • コア係はだめです。

質疑

  • (TA)ball.sldなどを動かしてみると良いと思います、実行時間も早いので。

2016年10月18日(第3回)進捗報告会

A班

  • シミュレータ上でコンパイルした再帰fibが動いた

  • そろそろ浮動小数点命令も考えなきゃ

  • コア係進捗ダメです、入出力命令の動作確認ができた

  • powerpcをもとにバックエンドを書いた

  • アセンブラとの仕様のすり合わせがまだ

  • シミュレータはアセンブリを読んで動くようになった

  • 仮のステップ実行ができた(ブレークポイントがまだ)

質疑

  • (TA)巻き戻し実行はどう実装するんですか。コストが重いので需要がなければ要らないのでは

わかりました。

H班

  • 呼び出し規約を決めました

  • コンパイラはあまり進めてない

  • ライブラリはsqrt sin cos atanが(min-caml)できた、ftoiやitofも作りましたがそこは調整が必要。

質疑

D班

  • コア係進捗なし

  • コンパイラはvirtual.ml以下を書き換えた

  • fibのコンパイルができたが、もっと凄いのをやるとバグる

  • intの大きな即値に対応できていない、など課題がたくさん

  • Mipsの比較演算の結果の格納場所の使いかたがわからない

(TA)ヘネパタに書いてあった気がします。

E班

  • コア係、進捗なし

  • コンパイラはfibなどの簡単な命令を吐けるようになった

  • ライブラリはsin cosの仮のものを書いた

B班

  • コア係:ICPC?に行ってきた

  • コンパイラ係:ICPC?に行ってきた

  • アセンブラはラベルを用いたジャンプに対応した。

  • シミュレータはステップ実行、巻き戻しなどを実装した。

G班

  • 進捗だめです。

  • コンパイラは今週くらいからemit.mlをいじりたい

  • シミュレータ上でアセンブラが大体実行できた。

  • sinのライブラリ実装が大体いい値を示した。

C班

  • 前回はもやが出たが、今回はシミュレータ完動した

実行命令数を知りたいなぁ

  • シミュレータがめちゃくちゃ遅い(1日かかった)

  • コア係は大会に出た。

  • コンパイラ係はテストが大事(テストの自動化ツール(OUnitなど)があるので、単体のテストをしっかりやるべき)

F班

  • ミーティングをして細かいところを詰めた

  • 10/24に完動?(嘘だろ…)

  • ライブラリをmin-camlで書くことになった

  • コアはリザーベーションステーション周りを設計した

  • シミュレータは全命令を実装して、追加機能の実装に移った。

質疑

  • (TA)OoOをシミュレートするという話がありますが、僕の経験からとても大変なので頑張ってください。

2016年10月25日(第4回)進捗報告会

E班

  • プログラムローダーとデコーダのシミュレーションができた
  • 来週の目標は(少なくともシミュレーション上で)OoO再帰fib完動
  • コンパイラは浮動小数点に対応
  • 来週の目標はminrtのコンパイル
  • シミュレータはアセンブリバイナリの両対応
  • ステップ実行、break pointの実装完了
  • float系の命令の処理の確認
  • ライブラリはitof,ftoiを書き始めた、sin,cosを書いた(バグが直った) 質疑

(TA)fibとmin-rtの間を埋めるプログラムとしてマンデルブロがあるので、使ってみると良いです

  • シミュレータ上で完全に動くものを作ってから基板に取り組むという流れでよいでしょうか

(TA) 別に良いのでは(好みだと思います)

C班

  • コンパイラ係はアセンブラを書きました
  • 機械語シミュレータを作成中
  • コアはプログラムローダーを書いた

F班

  • 完動するはずだったがしなかった
  • リザベーションステーションを書いたがフルスクラッチ
  • ライブラリ係はアセンブラを書いている(大体出来た)
  • シミュレータは他の進捗待ちで、とくに進捗なし

質疑

(TA)リザベーションステーションの設計がちゃんと書いてあって良いと思います

G班

  • コア係は、進捗を生むといって姿を消した。
  • シミュレータが動いた
  • コンパイラはRISC-V用にEmit.mlを弄りたかったが、間に合わなかった

A班

  • 全体としてはダメです
  • 浮動小数点のISAが決まった
  • シミュレーションでプログラムローダーが動いた
  • コンパイラは来週までに浮動小数点周りのバックエンドを作る
  • シミュレータはバイナリ実行とbreak point、浮動小数点命令に対応した
  • アセンブラは来週までにデータの積み込みを実装したい

D班

  • シミュレータ係はアセンブラ作成中、来週にはシミュレータの改良をしたい
  • コア係、大きいサイズのファイルの送受信で生じるデータ誤りを直した
  • コンパイラ、来週までにレイトレをコンパイルしたい

質疑

  • Vivadoのバージョンを上げたが問題が解決されていない(IPコアのモジュールのなかのMIGのインターフェースがうまく動かない)

(TA)こちらでも調べてみますが、あなたがそれだけ調べてもわからないことがTAだからといって一瞬でわかるということは無いとは思います

B班

  • コア係は出席ができなかった。10月中に通信周りを決めたい
  • メモリ空間の使いかたを決めないといけない、乗除算をなくしたい
  • シミュレータは統計を取る部分を強化したい
  • コンパイラ係と連携できるといいなぁ
  • アセンブラはいくつかの命令と擬似命令を実装した。そろそろfibがアセンブルできそう

質疑

  • 進捗管理を皆さんどうやっていますか

(TA)コア係が学校に来たほうが良い

H班

  • ISAに浮動小数点用のロードストア命令が増えた
  • ボードがおかしかったが、FPGAが新しくなってループバックが動いた
  • プログラムローダーのシミュレーションができた。
  • 大きい即値はラベルで呼び出すことにした(つまりノイマン型になった)
  • シミュレータは機械語を読めるようになった
  • アセンブラを書いた(動くかはわからない)

2016年11月1日(第5回)進捗報告会

E班

  • 再帰fibに必要そうなものをメモリ以外書いた
  • min-rtのコンパイルができた
  • アセンブラシミュレータは進捗良い

A班

  • 再帰fibが動いていない

  • コアは3回めのフルスクラッチをした

  • 各モジュールの配線レベルの設計が終わった

  • 来週こそ再帰fibで動かしてやるぞ

    (TA)ただのレイテンシ5のコアですね
    
  • コンパイラはひと通り完成した

  • シミュレータアセンブラの仕様を勘違いしていて、クロージャ付近でバグが出た

  • 来週こそシミュレータ完動

  • シミュレータはライブラリがあれば動く

  • コンパイラで実現が難しいレジスタにあるアドレスへジャンプ&リンクする命令をアセンブラで処理できるようにしたい

(TA)アセンブラのバグには気をつけてください。まずコンパイラ、シミュレータが疑われるので、アセンブラは忘れられがち。

F班

  • 今日ミーティングをして立て直すつもり
  • 来週はプログラムローダーを作りたい
  • アセンブラができたが、アセンブリの仕様変更・コンパイラの進捗不足で進捗わるい
  • だれもシミュレータを使っていないのでバグがわからない

G班(イーグルジャンプ班)

  • コア係は、やるぞ〜〜という気持ちになってきた
  • 単一サイクルでやろうとするとBRAMを使えない感じなので、分散RAMなどでfibをやろうと思います。
  • 分散RAMが望んだインプリメンテーションになるか怪しいので、プリミティブを自分で書く必要があるかもしれない。
  • ALUについて方針転換。DSPがたくさんあるので全部の演算を走らせてマルチプレクサで選ぶ方向性にしてみたい。

(TA)そっちのほうが良い気がします

  • コンパイラ、ライブラリ係は休憩中です。

D班

  • コンパイラはあまり進んでいない。minrtの文法を受理できるように改造中
  • アセンブラが大体出来た。シミュレータでfibを動かすのが目標
  • コアは基本的に単一サイクルで、ロード命令は2clock、fdivは4clock
  • sin,cos以外は基本的に実装できた。31.25MHz
  • アセンブラができたらfibを動かす
  • コンパイラができたらminrtを動かす
  • リモート合成ができるようになりたい。

(TA)sshでバッチモードで入れるかを試してみてください。

  • 出力ppmファイルのサイズが大きくなった?

(TA)128*128で良い気がします

  • IP catalogとcreate designの違い

(TA)create designは自動配線などがあるはずです。使っていいかは持ち帰って返答します。

H班

  • コンパイラはminrtを元のコードのままコンパイルできた。
  • 4倍、2で割る命令を追加した
  • min-camlの最新版がpushされたのでマージした
  • 今後はコードを分析して、必要メモリ量や命令の統計を取る
  • シミュレータはバグを修正した。ステップ実行を実装した。
  • 命令セットの追加分に対応中
  • アセンブラは分岐に対応中

B班

  • コアは出席した(何もしていない)
  • 11月から本気出す
  • コンパイラはlexerとparserをいじった
  • 中間言語の文法を少し書き換えた
  • コンパイラは細かいところを決めたい(浮動小数点、メモリ空間の使いかた)
  • シミュレータは進捗なし
  • 分岐の統計を取れるようにしたい
  • アセンブラのバグをとった

C班

  • lambda liftingを実装した
  • パフォーマンスが悪化した。レジスタ割り当てや呼び出し規約を変えたら、また使えるかもしれない
  • レジスタ割り当てに数週間使う予定
  • シミュレータは動的命令数の統計をとっている

質疑

  • 割り当てのアルゴリズムは何を考えていますか

まだ考えていませんが、グラフ彩色などをやってみたい。

2016年11月15日(第6回)進捗報告会

A班

  • コア係は今週のよていをたてた
  • コンパイラはTravisCIをはじめた(まだx86バックエンドで動かしている)
  • ライブラリはsin,con.atanをかいた。0付近の誤差が大きい

B班

  • コアは充電中(そろそろ放電もしてほしい)
  • コンパイラはlexer.ml~virtual.mlまで完成した
  • シミュレータは逆アセンブルを表示するように
  • 手書き再帰fibがシミュレータで動いた

C班

  • コンパイラはlambda liftingによってspillとclosureがminrtから消えた
  • LLVMのフロントエンドを書く予定
  • レジスタ割当はSSA based register allocationを実装予定
  • コアはICPCに行った(タイ)

D班

  • sin,cosを直接Syntax.tにテイラー展開後の式をハードコードした
  • コアはsqrt,ftoi,itof IPを生成した
  • アセンブラができて、シミュレータでfibが動いた
  • コンパイラはminrtがコンパイルできた(ライブラリは外部関数として)

E班

  • コア4命令並列デコード
  • インオーダー実行は完成した
  • 分岐先予測、投機的メモリアクセス
  • 来週の目標はIPコアの取り入れ、テストケースの作成、ユニットごとのテストを通す
  • コンパイラはグローバル変数、配列に対応
  • ライブラリができたので、そろそろminrtの実行・デバッグをしたい
  • シミュレータはIOやライブラリへの対応
  • ライブラリはfloor,atan,sqrtを作成した。誤差の確認中

F班

  • プログラムローダーが実機でうごいた
  • ブロックRAMがシミュレーションで覗けることを確認した
    • (TA) BRAMをのぞけるIPがあるよ
  • コンパイラはアッカーマンがコンパイルできた
  • 浮動小数点数がラベルで表現されているのを即値をその場で作るように改造中
  • ライブラリの進捗が0

G班

  • 単一サイクルのプロトタイプで整数命令からなる簡単なプログラムが動いた
  • コアは
  • myfib.mlをアセンブラに通してみた。シミューレションが間違うので、どっちかが間違っている
  • シミュレータ係は
  • ライブラリ係は全数検査をやっている
  • sin,cosのマクローリン展開で誤差が制約を満たした
  • floor,sqrtの検査中

H班

  • 命令セットを改良して、PRINT命令(シミュレータ用)などを追加した
  • POP,PUSH命令はなくなった
  • コアかかりはICPC
  • 追加した命令、neg,fneg,neg2,fneg2,整数の乗除算、シフト、fabs、read_int、read_float命令

(TA)negはneg2で書けるので分ける必要はないのでは?

  • コンパイラは組平坦化と組の展開を実装した
  • シミュレータは新命令セットに対応
  • 簡単な統計機能が付いた(命令種ごと、分岐のTaken/NotTaken回数)
  • アセンブラの新命令セットへの対応がまだ

2016年11月22日(第7回)進捗報告会

B班

  • コア
    • 進捗だめです
  • コンパイラ
    • emit.mlを書いているので、もう少し
  • アセンブラ
  • シミュレーター
    • 手書きアセンブリを使ってデバッグをしている
  • ライブラリ
    • IO関数などを書いて、コア待ち

E班

  • マンデルブロがシミュレータで動いた
  • minrtがシミュレータで動いた!
  • コア
    • メモリやシリアル周りを書いたが、分岐予測失敗時などの挙動がおかしい
      • 投機的にメモリに書いているらしい
    • デバッグを続けていく予定だが、今月中の完動は無理そう
  • コンパイラ
    • 最適化(詳細未定)
  • アセンブラ
  • シミュレーター
    • 入出力のための関数をつけた
    • 他の係からの要求に答えていく
  • ライブラリ

C班

  • コア
    • パタヘネを読んだ
  • コンパイラ
    • LLVMのフロントエンドができた
    • バックエンドを書き始めた
      • すべてhaskellで書いている
  • アセンブラ
  • シミュレーター
  • ライブラリ

G班

  • コア
  • コンパイラ
    • シミュレータで再帰fibが動いた
  • アセンブラ
  • シミュレーター
    • 再帰fibのバグ(subが足し算だった)
    • step実行が必要だったなぁ
  • ライブラリ
    • sqrt,floorが誤差基準を満たした
  • atanを書いた

F班

  • コア
    • リザベーションステーションがテストに通った
  • コンパイラ
    • ライブラリの進捗を追って最適化していきたい
  • アセンブラ
  • シミュレーター
  • ライブラリ
    • OCamlで実装中(できたらmin-camlに移植)

D班

  • コア
    • 実機でコンパイラ出力の再帰fibが動いた
  • コンパイラ
    • minrtのクロージャ変換後のコードを眺めた
    • lambda liftingをすれば高速化できそう
  • アセンブラ
  • シミュレーター
  • ライブラリ
    • コンパイル前に別途定義したmin-camlのcos,sinを接続させて、が呼び出せるようになった

A班

  • コア
    • 彼女とディズニーランド
    • 再帰fibの実装がだいたいおわり、そろそろ動きそう
  • コンパイラ
    • マンデルブロがシミュレータで動いた
    • 512*512のtron.sldがシミュレータで動いた
    • TravisCIでバックエンドのテストもするようにした
    • いっぱいバグが見つかり、直した
  • アセンブラ
  • シミュレーター
    • コンパイラのデバッグに協力
    • load,storeのアドレスをチェックしてエラーを吐くようにした
    • 統計機能を強化中
  • ライブラリ

H班

  • コア
  • コンパイラ
    • emil.mlを書き足した
  • アセンブラ
    • だいたいできた
  • シミュレーター
    • アセンブラができたのでデバッグを開始
  • ライブラリ

2016年11月29日(第8回)進捗報告会

A班

  • コア
    • 居ない
  • コンパイラ
    • contest.sldが動いた
  • アセンブラ
  • シミュレーター
  • ライブラリ
    • シミュレータ上でsinなどを差し替えて動かしても綺麗な画像が出力された
    • diffはある
      • (TA)diffは出るものです(contestのルールを確認してください)

B班

  • コア
    • そろそろコアの設計を考えていきたい
    • 命令セットを変更してコンディションレジスタを削除
    • アドレッシング・モードを増やした
  • コンパイラ
    • emit.mlを実装中
  • アセンブラ
    • アセンブリ指令に対応(浮動小数点即値に対応)
    • 命令セットの変更に対応予定
  • シミュレーター
    • 命令セットの変更に対応済
  • ライブラリ

C班

  • コア
    • (連絡が)ないです
  • コンパイラ
    • LLVMのバックエンドに苦戦している
  • アセンブラ
  • シミュレーター
  • ライブラリ
    • 書き始めた

D班

  • コア
  • コンパイラ
    • itof,ftoi,sqrt,absなどのハードウェア実装な命令に対応した
  • アセンブラ
  • シミュレーター
    • バグをとり、未実装だった命令を追加した
    • 正しさを確認できたら、統計機能を追加する
  • ライブラリ
    • 算術系のライブラリを書いた
    • これから誤差を確認

E班

  • コア
    • 命令ロード、リネーム、RS、コミットあたりはうまくいっている(ように見える)
    • IOまわりを書き直した
    • 次の報告会までには実機に入れそう
    • CDBの優先度とかをまともにしたり、メモリ周りで大量のハードウェア資源を大量に使っていたのを設計を変えるなどした
  • コンパイラ
    • 浮動小数点のロード、定数畳み込みを一部改善した
    • 来週はグラフ彩色レジスタ割当の実装を始める
  • アセンブラ
  • シミュレーター
    • print_byteに対応した
  • ライブラリ
    • floor完成
    • 来週はsqrtを実装
      • コア実装になるかもしれないが、ライブラリ実装をしてもらう

F班

  • コア
  • コンパイラ
    • 今週中にマンデルブロを動かす予定でシミュレーター係と流れを確認した
    • 分岐周りでバグがまだある
  • アセンブラ
  • シミュレーター
  • ライブラリ
    • 浮動小数点まわりのC言語実装をOCamlで書き換え中

G班

  • コア
    • 風邪を引いたのでサボった
  • コンパイラ
    • 駒場祭にいっていた
    • 浮動小数点まわりの出力命令を書き換えた
    • アッカーマンに関して、アセンブラは通るがシミュレーターがセグフォする
  • アセンブラ
  • シミュレーター
  • ライブラリ
    • atanの誤差が大きいので修正する

H班

  • フィボナッチがコンパイラ、アセンブラ、シミュレータを通って正しく実行できた
  • コア
    • マイクロアーキテクチャの部品を書いたり、ステートを定義したりした
  • コンパイラ
    • 部分評価がきるようになった。ラムダ抽象ができた。多相演算子を実装した。
    • 今年中にすべての仕事を終えるのが目標
  • アセンブラ
  • シミュレーター
    • デバッグ情報の出力オプションを実装した
  • ライブラリ
    • 自分たちのアーキテクチャに対応しました。

2016年12月6日(第9回)進捗報告会

H班

  • コア
    • 足し算が動くコアを書いたが、ものになっていないのでテストをしていない
  • コンパイラ
    • グラフ彩色の実装中
  • アセンブラ
  • シミュレーター
    • 浮動小数点演算まわりの動作確認をした
    • アセンブラがマンデルブロに対応したら、マンデルブロをテストしたい
  • ライブラリ
    • 修正中
    • ライブラリを使ったコードをアセンブラが読めないのでそれを治し

G班

  • コア
  • コンパイラ
    • 浮動小数点周りに手を出した
  • アセンブラ
  • シミュレーター
  • ライブラリ
    • atanが基準を満たした

F班

  • コア
  • コンパイラ
    • マンデルブロがシミュレータで動いた
  • アセンブラ
  • シミュレーター
    • マンデルブロを動かすためのライブラリを組み込みで実装した
  • ライブラリ

E班

  • コア
  • コンパイラ
    • グローバル変数をコンパイル時に割当
    • 整数のload,storeが6割減った
    • 26億命令
    • グラフ彩色をやっていく
  • アセンブラ
  • シミュレーター
    • ジャンプ先の統計をとった
  • ライブラリ
    • sqrtをやるといってまだやっていない

D班

  • コア
    • 実機でマンデルブロが動いた
    • OCamlとのdiffは80/160000ピクセル
      • (TA)シミュレータとのdiffを0にしてください
    • 入力バッファをつけたら動かなくなった
      • ブロックRAMに割り当てられていたようで、入力バッファに書き込んだ直後に読み込むと古い値が読まれていたよう
      • 分散RAMを指定するだけで正しい動作になった
  • コンパイラ
    • global変数はコンパイル時にデータセクションに置くように
    • クロージャ生成の時に、定数変数が関数の中で自由変数にならないようにした
  • アセンブラ
  • シミュレーター
  • ライブラリ
    • sin,cosを改良した

C班

  • コア
    • まともな設計を諦めてクロックを遅くすることにした
    • 再帰fib 20がVivadoのシミュレータで動いた
  • コンパイラ
    • LLVM IRからいい感じの命令列を取り出すことに成功した
    • レジスタ割当てが半分くらい完成した
  • アセンブラ
  • シミュレーター
    • ステップ実行を見やすくした
    • メモリの設計の変更(間違い)に対応した
  • ライブラリ

B班

  • コア
    • 来週までに動かしたい
    • まだほぼ真っ白だけど…
  • コンパイラ
    • fibがコンパイルできたけど、動くか不明
    • アセンブリ言語仕様との食い違いを直している
  • アセンブラ
    • コンパイラと仕様をすりあわせている
  • シミュレーター
    • 「コアは仕事しろ」
  • ライブラリ

A班

  • コア
    • Vivadoのシミュレータで再帰fibが動いた
    • (来週)実機で動いて〜〜
    • そもそも1byte送って返すプログラムが実機で動かなかった
  • コンパイラ
    • (来週)データフロー解析をやっていく気持ち
  • アセンブラ
  • シミュレーター
    • ライブラリのデバッグ用に機能を拡張
      • ジャンプ系の命令を監視
  • ライブラリ
    • 三角関数,sqrtの誤差がレギュレーションを満たした
    • print_charとprint_intができた

2016年12月13(第10回)進捗報告会

D班

  • コア
    • 実機、シミュレータでminrtが動かない
    • sinでnanが発生し無限ループする
      • (TA)ライブラリが間違っているんですか
        • わかっていません
  • コンパイラ
    • 静的な配列と組をデータセクションに配置
    • クロージャと自由変数を減らすことができた
  • アセンブラ
  • シミュレータ
  • ライブラリ

F班

  • コア
    • ストアキューを書いた
  • コンパイラ
    • minrt.mlをコンパイルしたら未対応の点がたくさん出てきた
  • アセンブラ
  • シミュレータ
  • ライブラリ

H班

  • コア
    • ジャンプアンドリンクの命令を2命令に分割した
    • 来週頭には再帰fibを動かしていきない
  • コンパイラ
    • グラフ彩色を実装した
    • 生存解析をしてSave・Restoreを最適化
    • アセンブラ
    • マンデルブロがアセンブルできていない(ライブラリに未対応)
  • シミュレータ
  • ライブラリ

A班

  • コア
    • Vivadoシミュレータで再帰fibが動いているが実機で動かないのが何故か探っている
    • IOはクソ
    • BRAMに直接焼きこむ予定
      • (TA)全体のbitstreamではなく、部分的にBRAMのデータだけ変更する方法があります
  • コンパイラ
    • コントロールフローグラフを作っている
    • 今週中に書き終えたい
  • アセンブラ
  • シミュレータ
  • ライブラリ
    • System Verilogにプログラムを埋め込む補助プログラムほコアのために書いた
    • read_intをmin-rtに追加して動かすとプログラムが止まらない
      • 単体のテストに通っているのだが、なにか間違っている

C班

  • コア
  • コンパイラ
    • グラフ彩色レジスタ割り当てほぼ完成
      • 手抜きの部分がある(効率に関わる)
      • factが動いたがfibが動かないので、デバッグをしていく
  • アセンブラ
  • シミュレータ
  • ライブラリ

G班

  • コア
    • にゃん……
  • コンパイラ
    • シミュレータでマンデルブロが動いた 
    • 様々な出力形式を改善した
      • 浮動小数点数テーブル
      • 浮動小数点数間の値移動
  • アセンブラ
  • シミュレータ
    • 出力命令、浮動小数点数命令に対応
  • ライブラリ

E班

  • コア
    • 困難なバグがとれて、再帰fibがVivadoシミュレータで動いたが実機では動かない
    • 100MHzくらいまでクロックを落としてやっている
    • 実機上で1つ1つのモジュールをテストしていきたい
  • コンパイラ
    • xor,fads,read_int,read_floatを組み込み命令にした
    • グラフ彩色レジスタ割り当てを始めた
  • アセンブラ
  • シミュレータ
  • ライブラリ

B班

  • コア
  • コンパイラ
  • アセンブラ
  • シミュレータ
  • ライブラリ

2016年12月20日(第11回)進捗報告会

A班

  • コア
    • 再帰fibが動いている
    • FPUまわりの設計中
    • プログラムローダーが動かないので、初期化でBRAMに書き込むことにした
  • コンパイラ
    • 現在37億命令なので、20億台を目指していきたい
      • (TA)僕の班の9億を切ったらお寿司ですね。
  • アセンブラ
  • シミュレータ
    • 自作ライブラリを用いて、真のシミュレータ完動を達成した
    • 真のコア待ち状態になった
  • ライブラリ

D班

  • コア
    • 完動しました
    • 264秒(コンテストサーバーを使いました)
    • 単純なアーキテクチャでクロック31.25MHzです。
      • (TA)ぜひ15秒を目指して(寿司)
  • コンパイラ
    • バグを直したら、シミュレータで画像が出た
    • 30億命令
    • 実機でも同じ画像が出たらしい
  • アセンブラ
  • シミュレータ
  • ライブラリ

G班

  • コア
    • 連絡がない
  • コンパイラ
    • minrtがmin-caml構文に違反している部分への対応などに苦心している
  • アセンブラ
  • シミュレータ
  • ライブラリ
    • 誤差基準を満たすものができた
    • sin,cosなどの効率改善に取り組む

C班

  • コア
    • 今日からやる
  • コンパイラ
    • LLVM版のレイトレが動いた
    • 最初に動いたコンパイラより命令数が多い
    • 今後、効率化していく
  • アセンブラ
  • シミュレータ
  • ライブラリ

H班

  • マンデルブロがアセンブルできていません
  • メモリの仕様が変わった(リンクスタックを廃止した)
  • コア
    • 来週頭には再帰fibが動く感じにやっていきたい
    • 代わりににI/O命令周りを整備していた
  • コンパイラ
    • データフロー解析を実装した
  • アセンブラ
  • シミュレータ
  • ライブラリ

B班

  • コア
    • DIV,MULT,FPU命令以外を書いた
    • 書いただけ
  • コンパイラ
    • 全部書いたけどテストはまだ
    • fibのシミュレータは動いた
  • アセンブラ
  • シミュレータ
    • ISA変更に対応したくらい
  • ライブラリ

E班

  • コア
    • インオーダの単位プロセッサの設計に移行
    • 実機で再帰fib,FPU,IOなどのテストをした
  • コンパイラ
  • アセンブラ
  • シミュレータ
  • ライブラリ

F班

  • コア
    • Load Reservation Stationをだいたい書いた
  • コンパイラ
    • クリスマスまでにminrt.mlを正しくコンパイル
  • アセンブラ
  • シミュレータ
    • シミュレーションの高速化を目指している
  • ライブラリ
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment