FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

2015-01-01から1年間の記事一覧

年末だしブログの情報を回収してワードクラウドを作ろう

ブログを始めたのは、今年の1月4日だ。今年は、およそ350記事を書いた。ほぼ一日に一本ブログを書いていたことになる。 自分の中では、今年の目標である「インターネットへのアウトプット」はある程度達成できるようになったと思う。 来年は、さらにインター…

templateを使って演算命令を共通化する

ISS

ISSで64ビット対応をしていると、32ビットですでに実装しているのに、同じものを64ビットで再度実装しなければならないことがある。 加減算ならまだしも、ロードストアや複雑な演算で同様なルーチンを何個もコピーしていると面倒なので、templateを使って共…

Vagrantをupしても失敗する場合の対処法調査

最近自宅で使用しているVagrantで、vagrant up中に以下のようなエラーメッセージが表示されるようになった。 $ vagrant.exe up Bringing machine 'default' up with 'virtualbox' provider... ==> default: Clearing any previously set forwarded ports... …

チェストとラックを買った(自分へのクリスマスプレゼントで)

ずっと気になっている、我が家にはデッドスペースがある。それは、ベッドの下である。ずっと空いているだけで、何も入っていない。本当は洋服ケースを入れたいのだが、わずかに数センチ低く、入り切らないのだ。 そこでいろいろ調べてみると、どうやらベッド…

ISSでいくつものアーキテクチャをC++で実装するときに気をつけること(気をつけていきたいこと)

今日は、64ビットモードでのシミュレーションをサポートするために、汎用レジスタの64ビット拡張と、環境の修正をした。 github.com リポジトリ名はRISC-Vを名乗ってはいるが、結局は現在RISC-V(32bit)、MIPS32、MIPS64が混在するシミュレータになっている。…

浮動小数点用のベンチマークについて調査

浮動小数点演算機能をISSに実装するにあたり、どのような検証方法、ベンチマークの測定方法があるのかを調査してみよう。 整数系のベンチマークプログラムには、有名なDhrystone、Coremarkがあるが、これらのベンチマークには浮動小数点が入っていない。 Dhr…

MIPSアーキテクチャ64bitへの対応を検討する(ISSのデコード回路の追加3)

前回の続き。MIPS64R6用のデコードテーブルが完成したので、次に実行用の関数を追加していった。 github.com まだ、以下のような実行関数のスケルトンを作成したに過ぎない。これらのをまた実装していくことになるのかー。 大変だ。 void InstEnv::MIPS64_IN…

MIPSアーキテクチャ64bitへの対応を検討する(ISSのデコード回路の追加2)

msyksphinz.hatenablog.com やっとこさ、全ての命令のデコードテーブルを書き終えた。 全ての命令406種類のテーブルを作成。これにはsingle,doubleの各種タイプも含んでいる。 github.com ただし、これはMIPS64アーキテクチャリファレンスに載っている命令を…

マニュアルや自分の翻訳を本にしておきたいなら、「製本サービス」を利用すればいいんじゃないかな

エンジニアは普段たくさんのマニュアルを見る。それは非常に分厚いものだったり、会社のプリンタでは印刷できない。 また、僕は一時期趣味で翻訳をやっていたのだが、翻訳した結果が量があったりすると、自分のプリンタでは印刷し切らないので、紙にしたいと…

MIPSアーキテクチャ64bitへの対応を検討する(ISSのデコード回路の追加)

ベンチマークがビルドできるようになったので、ISSのデコード回路に新しい64ビット命令を追加していこう。 msyksphinz.hatenablog.com 今回、せっかくなので64ビットアーキテクチャ用に新しいデコードテーブルを用意することにした。 github.com 新しいデコ…

スターウォーズ エピソード7を見てきた

はっきり言って僕は映画を殆ど見ない。映画館にも殆ど行かない。ジブリすら殆ど見てない(ゲド戦記は楽しかった)。 でも、スターウォーズは別だ。スターウォーズは映画ではなくてサーガなのだ!(信者) 旧三部作は世代ではなくて、特別編が初めてのスターウォ…

MIPSアーキテクチャ64bitへの対応を検討する(ベンチマークのビルド)

MIPSには、大昔から64ビットのアーキテクチャ仕様であるMIPS64が存在する。この対応を考えてみよう。 ベンチマークプログラムの64ビット命令対応 まずは、ベンチマークの移植から考えてみる。 まず、MIPS64R6の対応するコードを出すためには、イマジネーショ…

機械学習理論入門を(何とか)読了

機械学習理論入門を何とか読み終えた。最後の章のベイズ推定については、とりあえず読んでみたものの、ちゃんと理解できているかは相当あやしい。 結構大変そうなのでTensorFlowへの移植も今回はパス。とりあえずサンプルプログラムだけ実行してみた。 相変…

単純選択ソートとバイトニックソートを高位合成したときのアクセスパタンを調べる

単純選択ソートとバイトニックソートを、C言語で記述し、高位合成した。 msyksphinz.hatenablog.com 単純選択ソートのデータアクセスパタン 単純選択ソートは一つずつ最小値を選んでいくソーティング方法であるから、 インデックスiの最小値を探索してソーテ…

高位合成でソーティングネットワークを試す(バイトニックソートの合成試行)

バイトニックソートは、マージソートの並列と言われており、並列プログラミングにおいては良く使われている(らしい)。 前回の単純選択ソートは、シーケンシャルに最小値を選んで、それを順番に交換していくのだった。 では、ソフトウェアの世界において並列…

TOEIC受けてきました

www.toeic.or.jp いやまあTOEICって大学生が就活用に受けたりだとか、中年会社員が昇進のために受験したりだとかが多いと聞きますけど、僕はそのどちらでもない。 定期的な英語の能力測定として受けてきた。ここ数年は年に1度の受験が定番になっていて、前回…

VivadoHLSでソートアルゴリズムを実装してみる(マージソートと選択ソート)

Vivado HLSの使い方がだいたい分かってきた。では、普通のプログラムを高位合成でHDLで生成させたらどうなるんだろうか? 再帰が含まれているソートアルゴリズムをHDLで合成できる? まずはマージソートを実装してみよう。雰囲気的に、マージソートはハード…

普通のやつらの下を行け(Swift分解編)

別に大したことはできないだが、Swiftのビルド環境を構築した。 msyksphinz.hatenablog.com Swiftのビルド環境ができたことに感動して、いろいろやろうと思ってチュートリアルを見て驚き。最初のプログラムは、 vagrant@vagrant-ubuntu-vivid-64:~/work/hell…

EMアルゴリズムの勉強(「機械学習理論入門」を読む)

ITエンジニアのための機械学習理論入門作者: 中井悦司出版社/メーカー: 技術評論社発売日: 2015/10/17メディア: 単行本(ソフトカバー)この商品を含むブログを見る 機械学習理論入門も、いよいよ終盤にさしかかってきた。EMアルゴリズムの章を無事に読み終…

GCC5.3がリリースされたので評価環境を構築した

GCC5.3がリリースされていた。ぶっちゃけ気がついていなかったよ。。 GCC 5 Release Series - GNU Project - Free Software Foundation (FSF) osdn.jp 早速Vagrantの環境を構築してみた。MIPS用のクロスコンパイル環境だ。 github.com changelog的にはあまり…

プログラミングを鍛える本を買った

世界で闘うプロダクトマネジャーになるための本 ~トップIT企業のPMとして就職する方法~作者: Gayle Laakmann McDowell,Jackie Bavaro,小林啓倫,小山香織出版社/メーカー: マイナビ発売日: 2014/08/22メディア: 単行本(ソフトカバー)この商品を含むブログ (…

Swiftのビルド環境を仮想マシンとして構築する(Vagrantのボックスを構築)

前回の日記で、Swiftのソースビルドがうまく行かなかった。 msyksphinz.hatenablog.com github.com いろいろ調査していると、どうやらディスク容量が足りないのと、メモリ容量が足りないようだった。 最初は1GBのメモリを用意していたが、次に4GBでビルドし…

Swiftがオープンソース化されたのでフルスクラッチビルドに挑戦してみる

Appleのプログラミング言語Swiftがオープンソース化されたそうだ。 developer.apple.com github.com せっかくだし、Vagrantで仮想マシンを作って、環境を構築してみようと思ったのだが、、、 その1. Vagrantで箱を作ってSwiftを構築 Appleでも、OfficialにUb…

Vivado 2015.4 HLSを試す(Interface Synthesis Lab 2)

Interface Synthesis Lab 2: Port I/O Protocolをやっていこう。 http://www.xilinx.com/support/documentation/sw_manuals/xilinx2013_1/ug871-vivado-high-level-synthesis-tutorial.pdf Step1. Create and Open the Project まずは、CUIでvivadoを起動し…

Visual Studio CodeをVagrant経由で使いたい

Visual Studio Codeがオープンソース化されたが、相変わらずソースからビルドしようとしてうまくいかない。 とりあえずは、ビルドされたパッケージを使ってやってみよう。僕の開発環境はVagrant上でUbuntuを構成しているので、そのやりかたを調べてみよう。 …

Vivado 2015.4 HLSを試す(Chap.4 Interface Synthesis)

Vivado HLSのチュートリアルを進めていこう。次はInterface Synthesis(Chapter-4)だ。 http://www.xilinx.com/support/documentation/sw_manuals/xilinx2014_1/ug871-vivado-high-level-synthesis-tutorial.pdf ソースコードのシミュレーション(Cレベル) ま…

Vivado 2015.4 HLSを試す(Lab.2 C Validation with ANSI C Arbitrary Precision)

Vivado 2015.4 のチュートリアルの続きをやっていこう。 http://www.xilinx.com/support/documentation/sw_manuals/xilinx2014_2/ug871-vivado-high-level-synthesis-tutorial.pdf Lab.2 C Validation with ANSI C Arbitrary Precision を挑戦してみる。 Ste…

TensorFlowで画像を処理するための調査(マンデルブロー集合の表示)

TensorFlowでは、いくつかの画像を処理するための機能が備わっている。これをチェックしてみよう。 やりたいこととしては、TensorFlowを使って、画像の認識をしたり、実際の画像から様々なパラメータを抽出できるようになりたい。 まずは、TensorFlowのチュ…

Vivado 2015.4 HLSを試す(C Validation and Debug)

Vivado 2015.4 のチュートリアルの続きをやっていこう。 http://www.xilinx.com/support/documentation/sw_manuals/xilinx2014_2/ug871-vivado-high-level-synthesis-tutorial.pdf まずは、C Validation tutorialのディレクトリに移動し、以下のコマンドを叩…

Vivado 2015.4 HLSを試す(チュートリアル Lab.3)

Vivado HLSのチュートリアルの続きをやっていこう。Introduction Lab.3だ。 今回は、FPGAのデザインに最適になるように、インタフェースの部分を調整するらしい。 まずは、CUI上で論理合成とシミュレーションまでを一通り終わらせる。これがベースデザインと…