ワイヤストリッパ

今更ですが、ワイヤストリッパを買いました。これ凄く便利ですねぇ。もっと早く買えばよかった。
で、やはり今更知ったのが、太さを表す単位が AWG とやら言うのがあるってこと。
しかも、数字が大きいほど細いらしいです。
で、今まで使っていたのを調べてると、最近買った太くて使いにくいやつ(CMOD HDMI とかに使っているやつ)が AWG 24 だそうです。
そして、micro:bit と SD カードをつないでいたのが AWG 30 で、その時に使った電源ケーブルが AWG 26 の様でした。
そこら辺から考えると次買うべきは AWG 28 のような気がしています。
f0054075_22482458.jpg

[PR]
# by tom01h | 2018-05-24 22:54 | Trackback | Comments(0)

CUDA9.2+CuPy4

特に必要があった訳ではないのですが、CUDAとCuPyを新しくしました。
CUDAは普通にアップデートしただけです。
CuPyは古いバージョンを削除してから新しいのを入れようと思ったのですが、うまくCUDAを見つけてくれなくてインストール出来ません。結局Anacondaを削除して、最新のを再インストールしてからCuPyをインストールすることでうまく出来ました。
で、最近は使っていなかったのでよく覚えていないのですが、自作のBNNでは4~50%くらいのGPU使用率だったのが、CUDAのおかげかCuPyのおかげかは分かりませんが、GPU使用率が8~90%になりました。多分、処理速度も2倍近くになっていると思います。前のことはあまり覚えていませんが…

[PR]
# by tom01h | 2018-05-22 22:59 | PCとか | Trackback | Comments(0)

台湾に来ております

f0054075_23584221.jpgf0054075_23580167.jpg
[PR]
# by tom01h | 2018-05-21 23:56 | Trackback | Comments(0)
BNN アクセラレータのメモリマップ型でスクラッチパッド RAM 統合型が完成したので、FPGA に載せて見たいと思います。
統合前は、ソフトウェア推論には大量のデータメモリが必要で、アクセラレータ付きの時は大きなアクセラレータ内蔵メモリが必要でした。どちらにも対応できるデザインは使用メモリが大きすぎたので ARTY A7 には乗りません でした。
今回の変更で、ソフトウェアが自由にメモリの使用量を分割できるようになったので、メモリの小さな(と言っても 220KB あるけど) ARTY A7 にも載せる事が出来ます。
f0054075_13312677.png
がしかし… 結構大変でした。
結局はデザインのバグだった(FPGA用にメモリのRTLだけは別に作っているので…)のですが、Vivado のバージョンアップを疑ってみたり、自作の IP に readmemh で初期化するメモリがあってそこではまったりといろいろ時間がかかりました。
後者(readmemh)の問題は、下みたいなファイルをインクルードする方法に変えました。ところで、バイト制御付きの RAM を推論する方法ってないんですかね?
reg [7:0] ram [0:8*1024-1] = {
8'h17,
8'h00};
しかし、Vivado ってやっぱりなんか使いにくいです。
mbed (yotta だけど) とか使ってみた後だと余計にそう感じます。
ちなみに、ARTY Z7 なら余裕です。
f0054075_21234408.png
github 更新しました。

[PR]
# by tom01h | 2018-05-20 22:10 | PCとか | Trackback | Comments(0)

キャンプ用のいす

クレジットカードのポイントが有効期限を過ぎますってメールが来たので交換してもらいました。
f0054075_15134954.jpg

[PR]
# by tom01h | 2018-05-19 16:12 | Trackback | Comments(0)
BNN アクセラレータはかなり高速なのですが、それにデータをくべる CPU が鈍足なので性能を生かしきれいていません。
回路の量はさほど気にはしていないのですが、メモリアクセス幅が 1024bit っていうのは、無駄遣いするのはちょっとなぁと思います。そんなわけで、アクセラレータを時分割動作に変更しようと思います。
具体的には、現状 32bit 幅の回路を 32個インスタンスしていますが、これを 8個に減らして 4サイクル繰り返し動作にします。メモリアクセス幅は 256bit になります。実際は、8サイクル動作(128bit)にしても大した性能低下はないと思っているのですが、将来 CPU が高速化することを夢見て…
f0054075_16510081.png
上が 32bit 分のアクティベーションを作る波形です。上から、クロック、BNNのリクエスト、データRAMアクセスリクエスト、ユニットビジーの負論理、BNN動作中、の信号です。まだスカスカです。
左から、最初に1個が BNN 初期化、3+3+4 の波が 9画素分の畳み込みとプーリング、それを4回繰り返した後にノーマライズとアクティベーションのちょっと長めの波が来ます。
この変更で、今までウェイト制御を気にせずに済ませていたメモリアクセス論理(ペリフェラルだけは気にしていたけど)にウェイト制御を追加しました。
セットアップも含めた1枚の画像を推論するプログラムの実行時間が 1637165 サイクルから 1639325 サイクルになりました。
ちなみに自由度は減りますが、カーネルサイズ3x3固定、入力チャンネル数32bitに固定したらこれくらいにはなります。
f0054075_17263859.png

[PR]
# by tom01h | 2018-05-18 22:20 | PCとか | Trackback | Comments(0)
micro:bit の setAnalogValue と getAnalogValue を使ってオペアンプの実験をしたいと思い、いろいろと買い集めてみました。
f0054075_19480836.jpg
まずはオペアンプを使う前に、アナログ出力とアナログ入力を直結して実験します。
が、いきなり思ったように動きません。アナログ出力って PWM で出力できるっていうだけで、電圧がアナログになるんじゃないんですね。
ローパスフィルターなるものでアナログ電圧に変換できるのかな?
CRローパスフィルタPWM計算ツール っていう便利なページで計算できるようです。
とりあえず、setAnalogPeriod とか使って PWM の周期を短くしないといけなそうですね。
それと、コンデンサ買うか…

[PR]
# by tom01h | 2018-05-17 22:56 | Trackback | Comments(0)
メモリマップの BNN アクセラレータがそこそこ動いているようなので、データスクラッチパッド RAM と統合したいと思います。
128KB のメモリを普通のデータ RAM としてアクセスするときは 0x80100000-0x80120000 でアクセスします。
BNN アクセラレータは 1ワードが 1024bit なのですが、32bit ストア命令でアクセスしたいので 1024bit 毎に アドレスが 4だけ増加します。割り当てアドレスは 0x80180000-0x80181000 かな?
今回は BNN メモリに 80KB 割り当てることにしたので、RAM として使えるのが 0x80100000-0x8010c000 で、BNN メモリは 0x80180600-0x80181000 になります。
せっかくなので、BNN メモリは ELF ファイルに書かれた値で kozos ブートローダが初期化するようにしたい思います。ちなみに BNN メモリは、0x8010c000-0x80120000 を使って、通常のメモリライトで初期化可能です。
ld.scr には
MEMORY
{
ramp(rw) : o = 0x8010c000, l = 0x00014000 /* 80KB */
SECTIONS
{
.param : {
_param_start = . ;
*(.param)_eparam = . ;
} > ramp
と書いて、param.s にこんな感じでデータを並べます。
.section .param,"aw"
.word 0x26698990
こうしておくと、プログラムのロードと一緒に BNN アクセラレータのパラメータの初期化が出来ます。
github 更新しました。
今のところ zero-riscy がのんびり動くので大丈夫なのですが、そろそろウェイト制御を追加したいと思います。

[PR]
# by tom01h | 2018-05-15 22:46 | PCとか | Trackback | Comments(0)
zero-riscy の BNN アクセラレーションは、今までは追加命令として実装していましたが、メモリマップされたIPに変更しようと思います。
まずは、8bit 行列積ユニットと一体だった BNN アクセラレータを分離しました。
かなりいい加減な形で新 IP を置いていますが、何とか動いているようなので、github を更新しました。
この先はデータSRAMと合体して、パラメタメモリとデータメモリを共有する予定です。

[PR]
# by tom01h | 2018-05-12 23:59 | PCとか | Trackback | Comments(0)

トラ技

オペアンプなるものの使い方が知りたくて買ってみました。
負電源がないと動かないのかなぁ?
まぁ、基本から勉強するか。
f0054075_20073543.jpg

[PR]
# by tom01h | 2018-05-11 22:07 | 本・映画など | Trackback | Comments(0)