FPGA開発日記

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

2016-07-01から1ヶ月間の記事一覧

"TensorFlowはじめました" はじめました

「TensorFlowはじめました」という電子書籍の情報が流れてきたので、安いし、おもしろそうなので買ってみた。 別に表紙につられた訳ではない。同人誌的なもので、表紙と中身のギャップは慣れっ子だ。 tatsu-zine.com あまり機械学習の詳細な理論の本ではない…

xv6がブートしてから最初のプロセスが立ち上がるまでの仕組み

xv6

xv6は最初にブートがかかってから、暫くメモリや外部周辺機器の初期化を行うが、そのあとどのようにして最初のプログラムが立ち上がるのだろうか? まずは、ブートローダが起動を完了すると、mpmain()に入る。 // Bootstrap processor starts running C code…

Protocol Bufferとは何なのか(3. シリアライズ化のためのアルゴリズム)

msyksphinz.hatenablog.com msyksphinz.hatenablog.com Protocol Bufferの使い方は何となく分かったが、途中で生成されるバイナリファイルの仕組みについて良く分かっていない。 圧縮してあるのかと思いきや、そんな訳でもない。そこまで圧縮率は高く無いし…

4th RISC-V Workshopの資料が公開 & 5th WorkshopはGoogle@Mountain View!

RISC-Vの4th Workshop が7月12日 - 7月13日で開催された。その資料が公開されたので早速チェックしている。 riscv.org ざっと目を通しているが、とりあえず目を引いたのはこちら。 NVIDIAがRISC-Vを評価し、次世代CPUとして検討した結果 https://riscv.org/w…

Pokemon Goを支える技術: Protocol Bufferとは何なのか(2)

msyksphinz.hatenablog.com 前回、Protocol Bufferを使って通信したいメッセージのテンプレートを作成するところまで行った。 次に、このテンプレートを使ってプログラム間の通信を行ってみる。 通信と言っても、テキストファイルを読み出した上でプロトコル…

Pokemon Goを支える技術: Protocol Bufferとは何なのか

Pokemon Goが日本上陸となり、猫も杓子もポケモンゲットとなっているが、私はポケモン世代にも関わらず、モンスターや生き物に全く興味を抱かなかった少年時代であったため、知っているポケモンはピカチュウくらいしかいない。 そんな中、Pokemon Go上陸した…

「Unix考古学 Truth of the Legend」を(どうにかこうにか)読了

Unix考古学 Truth of the Legend作者: 藤田昭人出版社/メーカー: KADOKAWA発売日: 2016/04/28メディア: 単行本この商品を含むブログ (4件) を見る msyksphinz.hatenablog.com 私は活字を読むのがとても苦手なので、小説とか伝記とか、長い文章を読むのが苦手…

RISC-V命令セットシミュレータの途中状態を保存する(セッション保存)機能の実装(メモリ内容の保存と回復)

ISS

msyksphinz.hatenablog.com 前回で、CPUの汎用レジスタやシステムレジスタなどの部分において情報を保存する機能は実装した。 次に、メモリの情報について保存する機能について考えていく。 基本的には前回の記事でも書いたように、メモリのストアされた部分…

RISC-V命令セットシミュレータの途中状態を保存する(セッション保存)機能の検討と実装

ISS

RISC-V/MIPS対応ISSを作っているのだが、これを使ってxv6などの比較的長いシミュレーション実行時間が必要なプログラムを動作させようとしている。 これらのOSの問題点は、ブートするまでが非常に長く、せっかくブートしたと思っても検証プログラムを流すの…

"RISC-Vについて"ページを更新、およびソフトバンクARM買収によるRISC-Vの立場について僕の(個人的な)意見

CPU

今日はすごいアクセス数が来ると思ったら、ソフトバンクのARM買収により代替手法としてのRISC-Vについていくつかのツイートで言及されたためか、RISC-V関連のアクセスが急上昇したため、コメントも含めて"RISC-Vについて"のページを更新しておいた。 msyksph…

Chainer, TensorFlow, CNTKで関数フィッティングの方法を比較する

これまで、様々なツールを用いて機械学習の勉強をしてきた。ツールが出る度に試しているのでミーハーなことこの上無いのだが、一応代表的なツールは見てきたつもりだ。 その中で入門として使ってきたのが、関数フィッティングだった。様々な関数を、多項式に…

Chainerを使って関数フィッティングに挑戦する(2.多項式へのフィッティング)

Chainerで様々な関数をフィッティングさせるニューラルネットワークを作っているのだが、前回、うまいことフィッティングできず線形な関数になってしまったので、その調査をしていた。 msyksphinz.hatenablog.com まず、現在のニューラルネットワークがどの…

Chainerを使って関数フィッティングに挑戦する(1. ニューラルネットワークの構築方法)

Chainerでのニューラルネットワーク構築方法について実践的な方法を勉強するために、ニューラルネットワークを使って関数フィッティングに挑戦してみる。 以前、CNTKやTensorFlowを使って同様のニューラルネットワーク構築を行なったことがある。 msyksphinz…

ChainerでシンプルなNeural Networkを作る勉強(テストセットの検算)

前回、シンプルなMNISTのネットワークを作成したが、本当にこれで正解が出せているんだろうか? 実際にニューラルネットワークの出力結果を見て、チェックしてみたい。 ニューラルネットワークの出力結果と、テストセットの回答を比較する ニューラルネット…

ChainerでシンプルなNeural Networkを作る勉強(シンプルなMNISTを作る)

Chainerを使ってシンプルなMNISTのためのネットワークを作る勉強を進めている。 参考にしたのは、以下のサイトなど、いくつかのサイトを回って、どうやってネットワークを構築すれば良いのかを調べた。 qiita.com hi-king.hatenablog.com いくつかのサイトを…

TensorFlowとChainerのDeep MNISTのサンプルコード比較

あまり機械学習に詳しくないのだが、とりあえずChainerを動かしてMNISTのサンプルコードを動かすことはできた。 一方でTensorFlowでもMNISTを動作させたことがある。コード的に両方ともPythonを使っており似通っているが、どのように違うのか比較してみると…

MNISTによるChainerのファーストインプレッション

Chainerのインストール環境が整ったので、まずはChainerのチュートリアルを実行した。 msyksphinz.hatenablog.com ニューラルネットワークのチュートリアルといえばやっぱりMNISTだ。TensorFlowでもMNISTは最初に実行するチュートリアルになっている。 qiita…

RISC-Vにおける可変長引数関数cprintf()のデバッグ

xv6

msyksphinz.hatenablog.com RISC-V向けにxv6を移植するのに、cprintf()がないとどうにもうまく行かないので、とりあえず即席でcprintf()の引数を調整するアセンブラを作成した。 前回の記事で試行し、失敗したものを多少修正。可変長引数の場合は引数の位置…

x86のVGA操作について

xv6

xv6の動作検証を行っている最中に、VGAの制御を行っている場所を見付けた。console.cでは、UARTの操作をしているだけだなく、VGAディスプレイに表示する機能もサポートしている。 void consputc(int c) { if(c == BACKSPACE){ uartputc('\b'); uartputc(' ')…

Cの可変長引数はどのようにしてコンパイルされるのか

GCC

xv6のcprintfに詰まってしまっているので、気分転換に可変長引数をどのようにしてGCCはコンパイルしているのかについて調査してみた。 調査対象にしたアーキテクチャはMIPSとRISC-Vだ。 msyksphinz.hatenablog.com テストプログラム テストプログラムとして…

Windows 10でCygwinやMsys2を使うときに「ゲームバー」を無効化する方法

Windows 10で追加された機能として、ゲームを録画や編集したりするためのツールとして「ゲームバー」というのがある。 ゲームバーが起動する条件は何なのかいまいち不明だが、Windows 10でCygwinやMsys2を使っていると、ちょいちょいゲームバーが自動的に出…

VagrantでNeural NetworkフレームワークChainerの環境を自動的に構築する

いろいろあって機械学習用フレームワークChainerの環境を構築したくなってきた。今までTensorFlowなどの環境はVagrantを使って構築していたが、今回はChainerでも同様の環境を作りたい。 まずはChainerのインストール方法について調査した。 Chainerのインス…

Windows 10の再インストールとVagrantの再インストール

自宅で使っているデスクトップPCのVagrantがうまく動作しなくなった。 ちょっと前に、Windows 7からWindows 10にしていたのだが、アップグレードの影響か?一部うまく動作してくれていないところがあった。 msyksphinz.hatenablog.com msyksphinz.hatenablog…