2016-05-01から1ヶ月間の記事一覧
前回のBazelの試行で詰まったのは、例えば.cppファイルをrubyか何かのスクリプトで自動生成するとき、そのルールをどうやって記述すればいいの?ということだった。 そのあたりを突き詰めて考えてみる。 Bazelによるカスタムルールの作成方法 例えば、A.rbと…
前回にBazelの勉強をちょっとだけして、そういえば中途半端に終わらせてしまっていた。 msyksphinz.hatenablog.com 前回のBazel初期評価では、比較的小さめのプロジェクトではビルド開始に必要な時間が長くなってしまうこと、高速ビルドの利点を生かせないこ…
RISC-V向けISSでは、32ビットモードと64bitモードを1つのオプションで混在できるようにしている。 ここ最近、32ビットモードでベンチマークを走らせてどうしても動かない場所があったのだが、突き詰めていくとアドレス計算と符号拡張のところにバグを仕込ん…
RISC-V対応のパイプラインプロセッサをちまちま作ってみている。基本的な命令発行制御などはできるようになってきたが、プロセッサとしてベンチマークなどを動作させるために必要になってくるのは、やはりシステムレジスタの実装だ。 RISC-Vのシステムレジス…
前回、サンプルの日本語のトレーニングが終了したので、今度は通常の日本語を入力して、上手く解析できるか挑戦してみる。 msyksphinz.hatenablog.com 例えば、以下のような日本語を解析してみる。SyntaxNetでは、日本語の入力ではCONLL形式での入力が必須(o…
SyntaxNetを使ったチュートリアルで、おおよそSyntaxNetへの学習のさせ方が分かってきた(ただしコマンドを並べているだけだけど...)。 msyksphinz.hatenablog.com msyksphinz.hatenablog.com ここまで来たら、どうにかして日本語の構文を学習させてみたい。U…
前々から勉強のために翻訳している、"Understanding the detailed Architecture of AMD's 64bit Core"の第3章「Opteron's Data Cache and Load/Store Unit」をとりあえず翻訳完了した。 かなり誤訳とか、分かりにくいところがあると思うが、そこはボチボチ直…
前回に続き、今度は実際にチュートリアルを使用して構文解析に挑戦する。 英単語のタグ付けまでが完了しており、その時のモデルパラメータは128-0.08-3600-0.9-1として登録してある。 まずはローカルトレーニングだ。ローカルトレーニングは、以下のコマンド…
SyntaxNetを使い、英文の各単語にタグ付けを行うところまで完了した。これにより、サンプルの英文に対して、各単語がどのような意味を持つのか(名詞、動詞など)を解析し、表示できるようになった。 msyksphinz.hatenablog.com msyksphinz.hatenablog.com msy…
通常のデジタル回路設計において、特定のブロックとの信号をやり取りするのに、ReadyとValidを使うことができる。 Validは送信元がデータ送信を示すのに利用し、Readyは送信先のユニットがデータ受け入れ可能であることを示す。 ReadyとValidの制御について…
前回で、SyntaxNetを用いた文法の学習と、簡単なテストは完了した。 msyksphinz.hatenablog.com これ、普通のテキストを入力して学習させることは可能だろうか?挑戦してみよう。 前回使った、トレーニングのモデルを応用すれば簡単に実現できそうな気がする…
msyksphinz.hatenablog.com 前回の続き。 前回は、一応インストールが完了し、基本的な学習方法を調査したのだが、実際に試行してみるとエラーが出てきたのだった。 1. カテゴリ分類時のエラーを除去するための再ビルド エラーとなったのは、学習対象の Univ…
前回はSyntaxNetを使って何か構文解析を試行しようとして、上手くいかなくて終了したのだった。 msyksphinz.hatenablog.com よくよく読んでみると、CONLLというフォーマットの資料を利用して構文解析ツールのトレーニングをしてやる必要があるらしい。 CONLL…
前回はSyntaxNetのインストールと最初の試行で終了したが、今回は中身について簡単に見て行こう。 msyksphinz.hatenablog.com とは言っても、まだチュートリアルを完全に読了できていないので試行錯誤にはなるが。 SyntaxNetが構文解析をする仕組み チュート…
またしてもTensorFlow系の派生形ツールが登場した。SyntaxNetというツールらしい。 いわゆる自然言語構文を解析するツールで、解析精度はGoogleいわくかなり高い。 Google Open Source Blog: Announcing SyntaxNet: The World’s Most Accurate Parser Goes O…
画像: UCB-BAR: RISC-V Instruction Set Architecture より。 ISSにRISC-Vのタイマー機能を搭載したら、pt系のパタンが軒並み落ちるようになった。 もともとあまりカバーしていなかった部分なので、これを機にパタンが通るように修正しようとしたのだが、だ…
画像: UCB-BAR: RISC-V Instruction Set Architecture より。 RISC-Vにおいて、アトミック命令としてAMO命令群が存在している。これは、 メモリリード データ操作 メモリライト、レジスタアクセス をアトミックに実行する。例えば、AMOSWAP命令は amoswap.w …
RISC-Vには64bitの乗算など、通常の計算の範囲では追いつけないような演算も含まれている。 例えば、MUL命令やMULHSU命令などは、64bitのデータ同士の演算であり、MULHは演算結果の128bitのうち上位の64bitを返してきたりする。 これらの演算をサポートする…
画像: UCB-BAR: RISC-V Instruction Set Architecture より。 久しぶりにISSのメンテナンスをしていたのだが、結構落ちているパタンがある。これをメンテしていると、いろいろ考えなければならないところがあって実装をちょっとずつ変更していった。 整数の…
画像: UCB-BAR: RISC-V Instruction Set Architecture より。 これまでいくつかのパタンでRISC-VのISSでPASSしていなかったものがあるのだが、今日は久しぶりにその修正をしていた。 RISC-Vには、例外が発生した場合の処理について、いくつかのパタンが存在…
現在、自作ISSのビルド環境としてはCMakeを利用している。 CMakeの良いところは、 マルチプラットフォーム (ただしISSの開発においては特にこの利点が生かされているわけではない) テキストファイルによるビルド環境管理 (オプション、ファイル一覧などをテ…
前回の続き。前回はMIPS用に開発環境を構築したが、今回はx86用に開発環境を構築しよう。 msyksphinz.hatenablog.com いろいろと試行していたが、結局ライブラリ類はどのように用意すればよいのかわからなくて試行錯誤していたのだが、検索していると良いも…
前回プロセッサにおけるアウトオブオーダの考え方について(リネームレジスタの例外時の処理について) - FPGA開発日記の続き。引き続きプロセッサのアウトオブオーダの仕組みについてまとめていく。 リオーダバッファとは リオーダバッファは、アウトオブオー…
RISC-VのCPUを作るにあたり、どのように検証するかということだが、基本的にISSとの一致検証を行うことになる。 この場合、まずはRTLの生成したトレースファイルとISSのトレースファイルを一致させることになる。 ISSのトレースファイルは、普通のログファイ…
一日の大半はコンピュータを触って過ごしているので、肩がこるのはもちろん、ディスプレイの位置も良くないのか、首が痛くなることが多い。 また、僕の家の机はあまり広くないので、ディスプレイとキーボードを置くと机が埋まってしまう。 そこで、前から欲…