作業記録2021岡
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[組込みシステム 2021]]
* 研究内容 [#n77ed59f]
-文章生成の際に用いるLSTMレイヤーをFPGAに実装して高速化を...
* 予定 [#oaf94962]
** 月曜日 [#z703505a]
** 火曜日 [#nd5bd6d2]
-10:30~ 高木グループミーティング
** 水曜日 [#o9e19f6f]
** 木曜日 [#m0f305e8]
** 金曜日 [#v0ea9be6]
-13:00~ 全体ミーティング
** 土曜日 [#ac60ca2d]
** 日曜日 [#r96ca17e]
* 参考文献 [#s78c9ef6]
-ニューラルネットワークの基礎1
https://tutorials.chainer.org/ja/13_Basics_of_Neural_Netw...
-ニューラルネットワークの基礎2
https://qiita.com/tky823/items/ffc367e52c4a04cffa1d
-NumPyで乱数生成
https://note.nkmk.me/python-numpy-random/
-C言語でRNN
https://pjreddie.com/darknet/rnns-in-darknet/
-PythonでRNN(Sin関数予想)
https://omathin.com/2020/05/06/rnn-basic/#rnn%E3%82%92%E5...
-LSTM
https://medium.datadriveninvestor.com/how-do-lstm-network...
-PYNQを動かす
https://qiita.com/jin0g/items/8e59b5abb003df3b847d
-ZYNQリファレンスマニュアル
https://reference.digilentinc.com/_media/reference/progra...
-PYNQリファレンスマニュアル
https://dpoauwgwqsy2x.cloudfront.net/Download/PYNQ_Z2_Use...
-PYNQのいろいろ乗っているところ
https://pynq.readthedocs.io/en/v2.6.1/index.html
-Wikiのデータセットを使うなら使うかもしれない
https://github.com/attardi/wikiextractor
-ゼロから作るDeep Learning ❷――自然言語処理編
https://www.oreilly.co.jp/books/9784873118369/
-HLSのプラグマ一覧
https://japan.xilinx.com/html_docs/xilinx2019_1/sdaccel_d...
-HLSのレポートの意味
http://yoshikawa-lab.sunnyday.jp/2018/11/16/%E3%80%90viva...
-高速なプログラムを書く
https://www.cc.u-tokyo.ac.jp/public/VOL10/No4/200807tunin...
* 参考論文 [#xe38e6c0]
-https://arxiv.org/pdf/1511.05552v4.pdf
-https://vast.cs.ucla.edu/sites/default/files/publication...
-https://onlinelibrary.wiley.com/doi/full/10.1111/exsy.12...
-https://e-lab.github.io/data/papers/ISCAS2017RNN.pdf
-https://arxiv.org/pdf/2101.02667.pdf
* メモ [#k4bc2f6e]
&color(red,white){&size(35){''しょうもないヒューマンエラ...
-ここには一時的に書いておきたいメモを書く
-重みだけ16bit→lstm_aptestのsolution2(1はtanhのままのやつ)
-いろいろ16bitで並列化増やす→lstm_apbase2019のsolution1
-部分ループアンローリング→lstm_apbase2019のsolution2(タイ...
-sigmoidとtanhの近似→lstm_ap2019のsolution1
-多層→lstm_loopのsolution1
-できればやりたいこと
--計算のタイリングを試してみる
--もう少し並列化をうまくしたい(dataflow)
--シグモイド関数を場合分けして線形関数に近似する
-その他メモ
--pop_streamは別々の配列で行うもしくはひとつの配列にまと...
--vivado長いこと立ち上げていると重い説
--Vivadoのレポートも確認して実行時間をチェックしよう!
* 作業記録 [#uad1a8b7]
**1/25 [#wb9918b2]
-%%部分ループアンローリングのやつのバグを直したらメモリが...
--''ヒューマンエラー''でしたとさ。大丈夫?
**1/19 [#ncc1dfda]
-部分ループアンローリングのやつがタイミング違反(?)していた
--一応速度はアンローリング前と比較して速くなっている
--高位合成したIPがダメそう
-行列演算の外側ループをパイプライン化してみたけど旨味がな...
**1/13 [#ie3d4abd]
-sigmoid関数も近似すると誤差がやばそう、比較するのはあり
**1/7 [#h438f2bd]
-HLSで定義する関数の引数は配列にしたほうがよいかもしれない
-ビット数を削減すると演算するたびに誤差が生じて最終的にそ...
**1/5 [#s9b3d0cf]
-高木先生が直してくれたやつをここにもメモっとく
-Export RTL でエラーを吐くやつ対策
--Solution -> Solution Settings...
--General の config_export を edit
--version のところに x.y.z の形 (0.99.2 など) で数字を 3 ...
---x: major version, y: minor version, z: revision で、z ...
--あとVivadoのバージョンは2019.1で確認できたけど2017.1だ...
-プチ気づいたこと
--exp関数はVivado2017.1だとそのまま使えるけど2019.1ではma...
--なんか昔2019.1でエラーを吐いたから2017.1使ってたけどエ...
**12/24 [#ca066ab2]
-やったこと
--HLSの合成結果でメモリが足りていてもVivadoで怒られること...
---float型の配列を16ビット固定小数型の配列にしてさらにメ...
---その分計算の誤差は大きくなるけどね
--tanh関数を場合分けして線形関数に近似した
---ハードウェア資源がかなり節約された上実行時間も少し短縮
---もちろん計算の誤差は多少増える
**12/21 [#qbd4eb2e]
-ハードウェア資源を節約したのにVivado君がBRAMが足りないと...
--何か自分の知らない世界があるかもしれない
--指数関数を近似すれば解決するかもしれないししないかもし...
**12/20 [#o95db915]
-tanhを指数関数に置き換えてうまいことしたらハードウェア資...
**12/15 [#pe577910]
-ちょっとしたまとめ
--HLSで関数を定義する→追加のメモリを食う→メモリが不足する
--tanh関数をマクローリン展開で近似しようと思ったけど-1か...
--関数を複数作るとVivadoでのビットストリーム作成がめちゃ...
--理想:f、g、i、oでdataflowを使ってそれぞれで無理のない...
--約1.2倍→約1.6倍に高速化された、原因はよくわかりません!
**12/14 [#z87b09e6]
-lm-sensorsでさらっと見てみたけどPYNQに温度を計るセンサー...
**12/10 [#jd20e039]
-いろいろやってわかったことまとめ
--DMA通信で送る配列の数は少ないほうがいい
---例えば要素100の配列2つを送るより要素200の配列にまとめ...
---ピンポン伝送方式がうまく行かなかったのはこれが原因だと...
--多分PYNQバッファを用意するallocateが時間を食ってる
---これは一回実行するだけなのでループ回数が増えたら気にな...
--LSTMレイヤ"単体"で見ると速度は勝った
---実際のサンプルプログラムに載せる際にうまいこと載せない...
--重み行列の要素数を変えてみた
---(100,400)や(200,800)だと普通だけど(128,512)だとEstimat...
---キリのいい要素数じゃないとダメ?(一応128は2の冪乗なん...
---要素数を増やしてみたけど速度向上は見られなかった(並列...
**12/3 [#qf9e7994]
-なんか送った配列を分割してpop_streamするのができない、な...
''12/6追記''
-適切にpop_streamできていない(一番わかり易い例だとlast)、...
**12/2 [#m7cf9e5f]
-自分の知る限りだとs_axiliteは配列の要素数が2の冪乗じゃな...
-Vivado HLS の合成レポートでLatencyが小さいからといって実...
**12/1 [#a4a3434f]
-2の冪乗のビット数にしないとEstimatedが赤くなる
''12/10追記''
-そうでもないらしい
**11/25 [#ebb78625]
-ビット幅を削減して処理の高速化をしていると思っていたけど...
**11/18 [#zd27b0cc]
-これ(https://www.cspp.cc.u-tokyo.ac.jp/hanawa/class/spc2...
-LSTMレイヤーを実装してみた
--CPUと比べて約4倍遅い
---無駄な処理を減らす(意味のない変数の引渡しとか)
---PYNQバッファへの値の書き込みも時間かかってそう?
---Affineレイヤーも実装してなんとか勝つ
**11/12 [#g93588f1]
-重み行列をHLSにそのまま突っ込んだら実行時間がかなり短く...
**11/11 [#s6c51aad]
-元のコードを再読し、具体的な計算の流れを理解した。あとta...
**11/9 [#z5e54170]
-ビット数を減らして計算した、速度はそのままにBRAMの容量を...
**11/5 [#o6552f65]
-11/2にできなかった自作IPの出力を別の自作IPの入力にするこ...
--FIFO挟んだら動いた、またかよ
''11/11追記''
-FIFOなくても動いたのでよくわかりませんけど
**11/4 [#o7c0f5f9]
-二入力一出力の関数をDMA通信してみた
--Jupyter側で実行したところ二回に一回はエラーを吐く(交互)
--一応計算結果は正しい
--dma.recvchannel.wait()を書くと無限ループにはまって終わ...
--Vivadoのブロックデザインの設計が間違っている可能性大(し...
**11/2 [#y5159105]
-いろいろやった
--DMA通信の並列化に成功、40msで実行できる自作IPの実行中に...
--FIFOなくてもエラー出なかった、この前はできなかったけど...
--自作IPの出力を別の自作IPの入力にできるか試したが失敗
---データがうまく渡せていない?
---別にひとつのIPに処理をまとめたらいいかもしれない
**10/29 [#l7c30e14]
-https://japan.xilinx.com/support/documentation/applicati...
--以下やったこと
---Vivadoのバーションを2017.1にした(C Synthesisの謎エラー...
---Vivado2017.1の権限を777にした(Export RTLのvivado関連エ...
---ブロックデザイン作成時にFIFOを挟んだ(DMA channel not s...
--とりあえず32×32の行列乗算に成功、最適化をしていないので...
**10/27 [#kf8946e4]
-https://japan.xilinx.com/support/documentation/applicati...
--vivadoのバージョンを変えてやってみる?
**10/21 [#j0d237fc]
-メモ更新、現状のわからないところをまとめた
**10/12 [#p9248cfc]
-ap_axis<32,1,1,1>だとfloatの値を渡してもintで認識してし...
**10/8 [#r203454d]
-これをやってみた→https://pynq.readthedocs.io/en/v2.6.1/o...
--公式のチュートリアルだけど動かなかった。%%原因調査中。%%
''10/12追記''
-multiply.constant = 3がダメらしい
-add_ip.write(0x10, N)にしたらいけた
**10/6 [#db2c0a22]
-BRAM問題を解決する神のサイト→https://www.acri.c.titech.a...
-実行時間がCPUと比べて負けている
-DMA通信を使う(?)
**10/5 [#e57e8e0b]
-PYNQのアドレス(?)がわかるファイル:(Vivado HLSのプロジェ...
**10/4 [#m3e96e14]
-メモ欄を修正、現状をわかりやすくした
**9/28 [#yb308e9c]
-Softmax関数を高位合成してみた
--実行時間がCPUより長かった
--最適化を行うorそもそもSoftmax関数がそこまで実行時間に影...
--こっちはメモリに余裕があるので工夫の余地はありそう
**9/27 [#zc235057]
-LSTMのアフィン変換を高位合成しようとしたが失敗
--原因:BRAMがオーバーしてる
--DRAMと併用するように修正するかBRAMに乗るように重み行列...
10/1追記
-DMA通信を用いればできるらしいそれなりのデータ数でもでき...
-高位合成とDMA通信の組み合わせの例が見つからない
**9/21 [#a3c225ef]
-とりあえずゼロつく2のサンプルコードを元にしてFPGA向けの...
--日本語の文章を扱えるようにした
**9/15 [#l1c76ca2]
-ゼロつく2読了
**9/13 [#ib57be4b]
-ゼロつく2を2章まで読んだ
--逆伝搬と自然言語処理の方法についての理解が深まった
**9/10 [#z0a56adc]
-メモリのことについて勉強できた
--&ref(add_array.html,,参考資料);
--配列aとbに注目
**9/9 [#h551f859]
&size(20){PYNQを入れてインターネットに接続するまでチュー...
-1.ルート権限に入る
-2.SDカードにPYNQのイメージファイルを入れる
--コマンド:dd if=pynq_z2_v2.6.0.img of=/dev/sdb
--イメージファイルはここ→https://dpoauwgwqsy2x.cloudfront...
--注意:ifとofのパス指定を逆にしてはいけない。デバイスの...
--長い&重い
-3.つけてみる
--コマンド:screen /dev/ttyUSB1 115200
-4.pynqでルート権限に入る
-5.以下のファイルを変更する
--/etc/network/interfaces.d/eth0
ファイルは&ref(eth0.txt,,これ);
--文字化けの内容:IPアドレスを170〜199の間の値で指...
--/etc/systemd/resolved.conf
ファイルは&ref(resolved.conf.txt,,これ);
--文字化けの内容:コメントアウトを外せ!!!!!!!!!...
-6.何かコマンドを打つ
--systemctl restart networking (厳密に合っているかよくわ...
--shutdown -r now (PYNQの再起動でもいけると思う)
-7.実際に接続できるか試してみる
--ping <何かしらのIPアドレス> (例えば研究室内のPCとかyah...
--git clone <GitHubのあれ>
--ブラウザで/etc/network/interfaces.d/eth0で指定したIPア...
完成!!!&worried;
**9/6 [#k46c317a]
-この前のナベアツプログラムが正常に動作した
--高位合成の際にもif文に対するelse文を書いたほうが良さそ...
--ナベアツがしっかりアホになった
**9/3 [#nfca2c7c]
-これをPython(PYNQ)やってみた→https://qiita.com/iwatake22...
--add_ip.write(0x10,i)からadd_ip.read(0x18)を実行するたび...
--ナベアツがあまりアホにならなかった
**9/1 [#e5d7c12f]
-tensorflowは64bitOSにしか対応していないらしいので1からLS...
-ということで参考になりそうなサイト
https://www.anarchive-beta.com/entry/2021/01/10/180000
**8/30 [#k784ff88]
-PYNQにvirtualenv環境を導入(いるかはわからない)
-起動:source ~/tensorflow/bin/activate
-終了:deactivate
**8/20 [#a78f27ad]
-PYNQでインターネットが使えるようになった
--変更したファイル
---/etc/resolv.conf←これは変更しなくてよかった
---/etc/network/interfaces.d/eth0
---/etc/systemd/resolved.conf
''9/9追記''
-入れなおしになったので9/9の作業記録に詳しく記載
-二回も入れなおしました!!!!!!!!!!!!!!!!
**8/18 [#y53d8a4a]
-LSTMで文書生成、コード解読中
http://cedro3.com/ai/keras-lstm-text/
--あとこれも役に立ちそう
https://dajiro.com/entry/2020/04/15/221414
**7/27 [#of2a16a0]
-PYNQあれこれ
https://www.tul.com.tw/productspynq-z2.html
**7/20 [#ed50b502]
-読んでる
https://shop.cqpub.co.jp/hanbai/books/48/48091.htm
**7/13 [#y01212bf]
-Jupyter Notebookを導入
-コマンド:
jupyter notebook --ip=127.0.0.1 --allow-root
**7/8 [#k75daff7]
-ZYBO Z7のリファレンスマニュアルをこっちにも貼っておく
https://reference.digilentinc.com/_media/reference/progra...
**6/24 [#v519a8cb]
-PYNQを使ってみようとした
**6/23 [#y1ce27b9]
-RNNの勾配消失及び爆発と解決策(後で見る)
https://medium.datadriveninvestor.com/how-do-lstm-network...
**6/17 [#o74ab9f8]
-作業記録作成
* おまけ [#xf8a8a02]
-修造カレンダーを机においておくと良いことがある
-高木グループ側の扉のドアノブ(内側)は取れることがあるけど...
-予稿の書き方を参考にします→/home/share/furui/B4/yoko
終了行:
[[組込みシステム 2021]]
* 研究内容 [#n77ed59f]
-文章生成の際に用いるLSTMレイヤーをFPGAに実装して高速化を...
* 予定 [#oaf94962]
** 月曜日 [#z703505a]
** 火曜日 [#nd5bd6d2]
-10:30~ 高木グループミーティング
** 水曜日 [#o9e19f6f]
** 木曜日 [#m0f305e8]
** 金曜日 [#v0ea9be6]
-13:00~ 全体ミーティング
** 土曜日 [#ac60ca2d]
** 日曜日 [#r96ca17e]
* 参考文献 [#s78c9ef6]
-ニューラルネットワークの基礎1
https://tutorials.chainer.org/ja/13_Basics_of_Neural_Netw...
-ニューラルネットワークの基礎2
https://qiita.com/tky823/items/ffc367e52c4a04cffa1d
-NumPyで乱数生成
https://note.nkmk.me/python-numpy-random/
-C言語でRNN
https://pjreddie.com/darknet/rnns-in-darknet/
-PythonでRNN(Sin関数予想)
https://omathin.com/2020/05/06/rnn-basic/#rnn%E3%82%92%E5...
-LSTM
https://medium.datadriveninvestor.com/how-do-lstm-network...
-PYNQを動かす
https://qiita.com/jin0g/items/8e59b5abb003df3b847d
-ZYNQリファレンスマニュアル
https://reference.digilentinc.com/_media/reference/progra...
-PYNQリファレンスマニュアル
https://dpoauwgwqsy2x.cloudfront.net/Download/PYNQ_Z2_Use...
-PYNQのいろいろ乗っているところ
https://pynq.readthedocs.io/en/v2.6.1/index.html
-Wikiのデータセットを使うなら使うかもしれない
https://github.com/attardi/wikiextractor
-ゼロから作るDeep Learning ❷――自然言語処理編
https://www.oreilly.co.jp/books/9784873118369/
-HLSのプラグマ一覧
https://japan.xilinx.com/html_docs/xilinx2019_1/sdaccel_d...
-HLSのレポートの意味
http://yoshikawa-lab.sunnyday.jp/2018/11/16/%E3%80%90viva...
-高速なプログラムを書く
https://www.cc.u-tokyo.ac.jp/public/VOL10/No4/200807tunin...
* 参考論文 [#xe38e6c0]
-https://arxiv.org/pdf/1511.05552v4.pdf
-https://vast.cs.ucla.edu/sites/default/files/publication...
-https://onlinelibrary.wiley.com/doi/full/10.1111/exsy.12...
-https://e-lab.github.io/data/papers/ISCAS2017RNN.pdf
-https://arxiv.org/pdf/2101.02667.pdf
* メモ [#k4bc2f6e]
&color(red,white){&size(35){''しょうもないヒューマンエラ...
-ここには一時的に書いておきたいメモを書く
-重みだけ16bit→lstm_aptestのsolution2(1はtanhのままのやつ)
-いろいろ16bitで並列化増やす→lstm_apbase2019のsolution1
-部分ループアンローリング→lstm_apbase2019のsolution2(タイ...
-sigmoidとtanhの近似→lstm_ap2019のsolution1
-多層→lstm_loopのsolution1
-できればやりたいこと
--計算のタイリングを試してみる
--もう少し並列化をうまくしたい(dataflow)
--シグモイド関数を場合分けして線形関数に近似する
-その他メモ
--pop_streamは別々の配列で行うもしくはひとつの配列にまと...
--vivado長いこと立ち上げていると重い説
--Vivadoのレポートも確認して実行時間をチェックしよう!
* 作業記録 [#uad1a8b7]
**1/25 [#wb9918b2]
-%%部分ループアンローリングのやつのバグを直したらメモリが...
--''ヒューマンエラー''でしたとさ。大丈夫?
**1/19 [#ncc1dfda]
-部分ループアンローリングのやつがタイミング違反(?)していた
--一応速度はアンローリング前と比較して速くなっている
--高位合成したIPがダメそう
-行列演算の外側ループをパイプライン化してみたけど旨味がな...
**1/13 [#ie3d4abd]
-sigmoid関数も近似すると誤差がやばそう、比較するのはあり
**1/7 [#h438f2bd]
-HLSで定義する関数の引数は配列にしたほうがよいかもしれない
-ビット数を削減すると演算するたびに誤差が生じて最終的にそ...
**1/5 [#s9b3d0cf]
-高木先生が直してくれたやつをここにもメモっとく
-Export RTL でエラーを吐くやつ対策
--Solution -> Solution Settings...
--General の config_export を edit
--version のところに x.y.z の形 (0.99.2 など) で数字を 3 ...
---x: major version, y: minor version, z: revision で、z ...
--あとVivadoのバージョンは2019.1で確認できたけど2017.1だ...
-プチ気づいたこと
--exp関数はVivado2017.1だとそのまま使えるけど2019.1ではma...
--なんか昔2019.1でエラーを吐いたから2017.1使ってたけどエ...
**12/24 [#ca066ab2]
-やったこと
--HLSの合成結果でメモリが足りていてもVivadoで怒られること...
---float型の配列を16ビット固定小数型の配列にしてさらにメ...
---その分計算の誤差は大きくなるけどね
--tanh関数を場合分けして線形関数に近似した
---ハードウェア資源がかなり節約された上実行時間も少し短縮
---もちろん計算の誤差は多少増える
**12/21 [#qbd4eb2e]
-ハードウェア資源を節約したのにVivado君がBRAMが足りないと...
--何か自分の知らない世界があるかもしれない
--指数関数を近似すれば解決するかもしれないししないかもし...
**12/20 [#o95db915]
-tanhを指数関数に置き換えてうまいことしたらハードウェア資...
**12/15 [#pe577910]
-ちょっとしたまとめ
--HLSで関数を定義する→追加のメモリを食う→メモリが不足する
--tanh関数をマクローリン展開で近似しようと思ったけど-1か...
--関数を複数作るとVivadoでのビットストリーム作成がめちゃ...
--理想:f、g、i、oでdataflowを使ってそれぞれで無理のない...
--約1.2倍→約1.6倍に高速化された、原因はよくわかりません!
**12/14 [#z87b09e6]
-lm-sensorsでさらっと見てみたけどPYNQに温度を計るセンサー...
**12/10 [#jd20e039]
-いろいろやってわかったことまとめ
--DMA通信で送る配列の数は少ないほうがいい
---例えば要素100の配列2つを送るより要素200の配列にまとめ...
---ピンポン伝送方式がうまく行かなかったのはこれが原因だと...
--多分PYNQバッファを用意するallocateが時間を食ってる
---これは一回実行するだけなのでループ回数が増えたら気にな...
--LSTMレイヤ"単体"で見ると速度は勝った
---実際のサンプルプログラムに載せる際にうまいこと載せない...
--重み行列の要素数を変えてみた
---(100,400)や(200,800)だと普通だけど(128,512)だとEstimat...
---キリのいい要素数じゃないとダメ?(一応128は2の冪乗なん...
---要素数を増やしてみたけど速度向上は見られなかった(並列...
**12/3 [#qf9e7994]
-なんか送った配列を分割してpop_streamするのができない、な...
''12/6追記''
-適切にpop_streamできていない(一番わかり易い例だとlast)、...
**12/2 [#m7cf9e5f]
-自分の知る限りだとs_axiliteは配列の要素数が2の冪乗じゃな...
-Vivado HLS の合成レポートでLatencyが小さいからといって実...
**12/1 [#a4a3434f]
-2の冪乗のビット数にしないとEstimatedが赤くなる
''12/10追記''
-そうでもないらしい
**11/25 [#ebb78625]
-ビット幅を削減して処理の高速化をしていると思っていたけど...
**11/18 [#zd27b0cc]
-これ(https://www.cspp.cc.u-tokyo.ac.jp/hanawa/class/spc2...
-LSTMレイヤーを実装してみた
--CPUと比べて約4倍遅い
---無駄な処理を減らす(意味のない変数の引渡しとか)
---PYNQバッファへの値の書き込みも時間かかってそう?
---Affineレイヤーも実装してなんとか勝つ
**11/12 [#g93588f1]
-重み行列をHLSにそのまま突っ込んだら実行時間がかなり短く...
**11/11 [#s6c51aad]
-元のコードを再読し、具体的な計算の流れを理解した。あとta...
**11/9 [#z5e54170]
-ビット数を減らして計算した、速度はそのままにBRAMの容量を...
**11/5 [#o6552f65]
-11/2にできなかった自作IPの出力を別の自作IPの入力にするこ...
--FIFO挟んだら動いた、またかよ
''11/11追記''
-FIFOなくても動いたのでよくわかりませんけど
**11/4 [#o7c0f5f9]
-二入力一出力の関数をDMA通信してみた
--Jupyter側で実行したところ二回に一回はエラーを吐く(交互)
--一応計算結果は正しい
--dma.recvchannel.wait()を書くと無限ループにはまって終わ...
--Vivadoのブロックデザインの設計が間違っている可能性大(し...
**11/2 [#y5159105]
-いろいろやった
--DMA通信の並列化に成功、40msで実行できる自作IPの実行中に...
--FIFOなくてもエラー出なかった、この前はできなかったけど...
--自作IPの出力を別の自作IPの入力にできるか試したが失敗
---データがうまく渡せていない?
---別にひとつのIPに処理をまとめたらいいかもしれない
**10/29 [#l7c30e14]
-https://japan.xilinx.com/support/documentation/applicati...
--以下やったこと
---Vivadoのバーションを2017.1にした(C Synthesisの謎エラー...
---Vivado2017.1の権限を777にした(Export RTLのvivado関連エ...
---ブロックデザイン作成時にFIFOを挟んだ(DMA channel not s...
--とりあえず32×32の行列乗算に成功、最適化をしていないので...
**10/27 [#kf8946e4]
-https://japan.xilinx.com/support/documentation/applicati...
--vivadoのバージョンを変えてやってみる?
**10/21 [#j0d237fc]
-メモ更新、現状のわからないところをまとめた
**10/12 [#p9248cfc]
-ap_axis<32,1,1,1>だとfloatの値を渡してもintで認識してし...
**10/8 [#r203454d]
-これをやってみた→https://pynq.readthedocs.io/en/v2.6.1/o...
--公式のチュートリアルだけど動かなかった。%%原因調査中。%%
''10/12追記''
-multiply.constant = 3がダメらしい
-add_ip.write(0x10, N)にしたらいけた
**10/6 [#db2c0a22]
-BRAM問題を解決する神のサイト→https://www.acri.c.titech.a...
-実行時間がCPUと比べて負けている
-DMA通信を使う(?)
**10/5 [#e57e8e0b]
-PYNQのアドレス(?)がわかるファイル:(Vivado HLSのプロジェ...
**10/4 [#m3e96e14]
-メモ欄を修正、現状をわかりやすくした
**9/28 [#yb308e9c]
-Softmax関数を高位合成してみた
--実行時間がCPUより長かった
--最適化を行うorそもそもSoftmax関数がそこまで実行時間に影...
--こっちはメモリに余裕があるので工夫の余地はありそう
**9/27 [#zc235057]
-LSTMのアフィン変換を高位合成しようとしたが失敗
--原因:BRAMがオーバーしてる
--DRAMと併用するように修正するかBRAMに乗るように重み行列...
10/1追記
-DMA通信を用いればできるらしいそれなりのデータ数でもでき...
-高位合成とDMA通信の組み合わせの例が見つからない
**9/21 [#a3c225ef]
-とりあえずゼロつく2のサンプルコードを元にしてFPGA向けの...
--日本語の文章を扱えるようにした
**9/15 [#l1c76ca2]
-ゼロつく2読了
**9/13 [#ib57be4b]
-ゼロつく2を2章まで読んだ
--逆伝搬と自然言語処理の方法についての理解が深まった
**9/10 [#z0a56adc]
-メモリのことについて勉強できた
--&ref(add_array.html,,参考資料);
--配列aとbに注目
**9/9 [#h551f859]
&size(20){PYNQを入れてインターネットに接続するまでチュー...
-1.ルート権限に入る
-2.SDカードにPYNQのイメージファイルを入れる
--コマンド:dd if=pynq_z2_v2.6.0.img of=/dev/sdb
--イメージファイルはここ→https://dpoauwgwqsy2x.cloudfront...
--注意:ifとofのパス指定を逆にしてはいけない。デバイスの...
--長い&重い
-3.つけてみる
--コマンド:screen /dev/ttyUSB1 115200
-4.pynqでルート権限に入る
-5.以下のファイルを変更する
--/etc/network/interfaces.d/eth0
ファイルは&ref(eth0.txt,,これ);
--文字化けの内容:IPアドレスを170〜199の間の値で指...
--/etc/systemd/resolved.conf
ファイルは&ref(resolved.conf.txt,,これ);
--文字化けの内容:コメントアウトを外せ!!!!!!!!!...
-6.何かコマンドを打つ
--systemctl restart networking (厳密に合っているかよくわ...
--shutdown -r now (PYNQの再起動でもいけると思う)
-7.実際に接続できるか試してみる
--ping <何かしらのIPアドレス> (例えば研究室内のPCとかyah...
--git clone <GitHubのあれ>
--ブラウザで/etc/network/interfaces.d/eth0で指定したIPア...
完成!!!&worried;
**9/6 [#k46c317a]
-この前のナベアツプログラムが正常に動作した
--高位合成の際にもif文に対するelse文を書いたほうが良さそ...
--ナベアツがしっかりアホになった
**9/3 [#nfca2c7c]
-これをPython(PYNQ)やってみた→https://qiita.com/iwatake22...
--add_ip.write(0x10,i)からadd_ip.read(0x18)を実行するたび...
--ナベアツがあまりアホにならなかった
**9/1 [#e5d7c12f]
-tensorflowは64bitOSにしか対応していないらしいので1からLS...
-ということで参考になりそうなサイト
https://www.anarchive-beta.com/entry/2021/01/10/180000
**8/30 [#k784ff88]
-PYNQにvirtualenv環境を導入(いるかはわからない)
-起動:source ~/tensorflow/bin/activate
-終了:deactivate
**8/20 [#a78f27ad]
-PYNQでインターネットが使えるようになった
--変更したファイル
---/etc/resolv.conf←これは変更しなくてよかった
---/etc/network/interfaces.d/eth0
---/etc/systemd/resolved.conf
''9/9追記''
-入れなおしになったので9/9の作業記録に詳しく記載
-二回も入れなおしました!!!!!!!!!!!!!!!!
**8/18 [#y53d8a4a]
-LSTMで文書生成、コード解読中
http://cedro3.com/ai/keras-lstm-text/
--あとこれも役に立ちそう
https://dajiro.com/entry/2020/04/15/221414
**7/27 [#of2a16a0]
-PYNQあれこれ
https://www.tul.com.tw/productspynq-z2.html
**7/20 [#ed50b502]
-読んでる
https://shop.cqpub.co.jp/hanbai/books/48/48091.htm
**7/13 [#y01212bf]
-Jupyter Notebookを導入
-コマンド:
jupyter notebook --ip=127.0.0.1 --allow-root
**7/8 [#k75daff7]
-ZYBO Z7のリファレンスマニュアルをこっちにも貼っておく
https://reference.digilentinc.com/_media/reference/progra...
**6/24 [#v519a8cb]
-PYNQを使ってみようとした
**6/23 [#y1ce27b9]
-RNNの勾配消失及び爆発と解決策(後で見る)
https://medium.datadriveninvestor.com/how-do-lstm-network...
**6/17 [#o74ab9f8]
-作業記録作成
* おまけ [#xf8a8a02]
-修造カレンダーを机においておくと良いことがある
-高木グループ側の扉のドアノブ(内側)は取れることがあるけど...
-予稿の書き方を参考にします→/home/share/furui/B4/yoko
ページ名: