2018-09-01から1ヶ月間の記事一覧
Googleの量子コンピュータフレームワークであるCirqを使っており、簡単な回路なら記述できるようになった。 次に疑問点として沸いてくるのは、Cirqはどのようにして量子状態のシミュレーションを行っているのかというところだ。 Pythonのコードを見るのは苦…
フルスクラッチで量子コンピュータ・シミュレータを作る話、骨格となる部分はおおよそ完成し、量子ビットを取り扱う方法を考える。 量子ビットを作成する方法の検討 量子ビットは、1量子ビットをPythonの1変数として宣言できるようにしたい。 例えば、以下の…
フルスクラッチで量子コンピュータ・シミュレータを作る話、骨格となる部分はおおよそ完成してきたので次はインタフェースの部分を調整する。 現在は量子回路を生成する部分はC++で記述しており、量子回路を書き換えるたびにリコンパイルが発生して格好悪い…
量子コンピュータの勉強を続けており、Cirqの資料をひたすら読み進めている。 以下の資料を読みながら勉強中である。 Cir: Tutorial Tutorial — Cirq 0.1 documentation Cirqのチュートリアルは以下に日本語訳と解説がなされており、非常にありがたい。 qiit…
TinyEMUはQEMUを開発したFabrice Bellard氏が開発したRISC-Vシミュレータだ。 さらに彼はRISC-VのLinuxを起動するためのbuildrootも用意したらしい。RISC-VのMLにアナウンスがあった。 TinyEMU とりあえず超高速のシミュレータでRISC-V Linuxを起動すること…
量子プログラミングについて少しずつ分かってきたので、もう少しステップを進めていきたい。 自作の量子コンピュータ・シミュレータの拡張を考えるためにも、GoogleやMicrosoftが発表している量子コンピュータのフレームワークについて勉強し、そこでいろい…
前回は半加算器が完成した。という訳で、これを拡張させて全加算器を作成し、さらにこれを数珠つなぎにして3ビットの加算回路を作ろう。 量子回路で全加算器を作ろう 量子回路を使って全加算器を作るにはどうしたらよいのか、少し検索するとすぐ回路を見つけ…
RISC-V Day Tokyo 2018が10/18(木) に開催されます。私はRISC-Vを支える技術周辺、エコシステム周りを発表する予定です。 15分しかしゃべらないのですが、興味のある方はどうぞ。 tmt.knect365.com やっぱりメインはRISC-V Readerの日本語訳の配布、そしてDa…
前回は1量子ビットをC++でモデル化したのだが、それだけではほとんど何も表現出来ないので複数量子ビットに拡張したい。 複数量子ビットが表現できるようになれば、まずは例として加算器を動かしてみよう。 半加算器と全加算器が実現できればかなり面白い。 …
次世代計算機講座に参加して、量子コンピュータについて俄然興味がわいてきた。 手っ取り早く量子コンピュータを試すためには、最近になっていろいろ手段が出てきている。 MicrosoftからはQ#、GoogleからはフレームワークとしてCirqがリリースされている。 …
NVDLAというか、畳み込み演算をどのようにハードウェアで実現するかということをさらに掘り下げている。 NVDLA : Unit Description Unit Description — NVDLA Documentation NVDLAのConvolution DMAは、以下のような画像に対して入力画像とカーネルを畳み込…
NVDLAの内部構造についてもう少し詳しく解析したいのだが、割としっかりと解説してあるページがあったので読み進めていこう。 参考ににしたのは以下。っていうかNVDLA本家のページである。 今回はConvolutionのためのモジュール。Convolution DMA(CDMA)であ…
09/15に早稲田大学で行われた次世代計算機講座に参加した。 量子コンピュータについは何冊か本を読んでわかっているつもりだったのだが、独学の部分がほとんどなのでいろんな講演を聞いてみたいと思い参加した。 最初の京都大学の先生の話は量子コンピュータ…
GitHub上に公開している自作RISC-Vシミュレータは、命令フェッチ、命令デコーダ、命令実行の部分が分けて実装してある。 命令デコーダは500種類程度ある命令を1つに特定し、その情報に基づいて命令を実行するのだが、その命令の実装はそれぞれの命令で分割し…
NVDLAの内部構造についてもう少し詳しく解析したいのだが、割としっかりと解説してあるページがあったので読み進めていこう。 参考ににしたのは以下。っていうかNVDLA本家のページである。 Unit Description (NVDLA) Unit Description — NVDLA Documentation…
自作RISC-Vシミュレータがある程度落ち着いてきたので、キリがいいところでGitHubで公開することにした。 github.com まあSpike(riscv-isa-sim)の劣化Cloneだと言ってしまえばそれまでなので、あまり意味はないのだけれど。。。 図. 自作RISC-Vシミュレータ…
図は http://nvdla.org/vp.html より抜粋。 NVDLA Virtual Platformを使ってMNISTやCIFAR-10を動作させた。 おおむね動作するようになったのだが、詳細をきちんと解析しなければ単純にアプリケーションを使って遊んだだけになってしまう。 具体的にNVDLAの内…
RISC-V Tortureは、生成したテストパタンをシミュレータで実行し、最後にシグニチャを出力する。 シグニチャを他の実装(Rocket-Chipなど)との結果と比較して正しく実行できたかを判定している。 SpikeおよびRocket-Chipでシグニチャを生成するためには+signa…
RISC-Vの実装を作るとまずはテストパタンを生成してテストを流してみたくなるのだが、RISC-Vにはテスト用のパタンがいくつか用意されている。 RISC-V Tortureのダウンロードとインストール RISC-V TortureのConfiguration Tortureの生成パタンの構成を変えた…
前回、NVDLA Virtual PlatformでMNISTを動作させることができた。同じように、NVDLAでCIFAR-10も動作させることができるはずだ。 PGMは1色の画像しか認識できないので、PGMでCIFAR-10の画像を渡すことはできない。そこで、JPEG形式でNVDLAにデータを渡して推…
前回はNVDLAを使ってCaffeのモデルを実行してみた。 ただし実行結果が分からないので何とか解析できるようにしたい。 nvdla_runtimeの実行オプションには--rawdumpオプションがあるので、これを使えば実行後の結果をダンプできるらしい。 # ./nvdla_runtime …
前回はCaffeをインストールして、LeNetを実行した結果をnvdla_compilerに食わせて、NVDLAのバイナリファイルを作成した。 これを実行するためには、NVDLA Virtual Platformを実行してLinuxを立ち上げ、そこでnvdlaを動作させるランタイムプログラムを実行し…
去年よりも開催が1か月早くて焦っています。 2018/09/12(水)に開催されるDesign Solution Forumにて、RISC-V/IoTのトラックの1つとして発表させて頂くことになりました。 13:30~14:10 で、タイトルは "試しながら学ぶオープンソースプロセッサRISC-V の世界…
限りなく内容の無い、メモのような日記になってしまったが。。。 RISC-Vアーキテクチャを使ったセキュリティ技術の開発で、Keystoneというプロジェクトがあるらしい。 Hisa Ando氏の記事で知った。 KeystoneでRISC-Vをセキュア化 20180901 Keystone Open-sou…
NVDLAの動かし方についてもう少しプログラミングモデルを解き明かしていきたいが、いかんせん内部レジスタの仕様を読み進めながらでは効率が悪くて良くない。 それに実際のニューラルネットワークを使いながらインタフェースを見ていかないと、意味が分から…
RISC-Vの自作シミュレータでLinuxを立ち上げることに成功したが、まだかなりシミュレーション速度が遅いことが心配だ。 原因はすでに解析済み。メモリアクセスが何度も発生しているためにそこが最適化できていない。 以下は前回Google Perftoolsで解析したシ…
NVDLAの内部構成調査の続き。前回はNVDLAのBDMAについて調べたが、次は実際にConvolutionの操作を見ていかなければならない。 sanity3のテストパタンを見ると、大量のレジスタを設定してるのだが、それをいちいち調べていくのは大変だ。 まずは、NVDLAの基本…