人気ブログランキング | 話題のタグを見る

雑多な趣味の記録帳

tom01h.exblog.jp

Cora の Petalinux で Hello World と tiny-dnn

Cora Z7 で Petalinux が起動できたので、アプリケーションソフトを動かしてみたいと思います。
参考にしたのは ここ 。まずは Hello World から試します。
ホストOS で
$ arm-linux-gnueabi-gcc hello.c -g -o hello -static
Petalinux を入れた SD カードに hello をコピーして
root@Cora-Z7-07S:~# mount /dev/mmcblk0p1 /mnt/
root@Cora-Z7-07S:~# /mnt/hello
Hello Zynq World!!
次は、調子に乗って tiny-dnn を試してみましょう。
まずはホストOSでコンパイルしますが、その前に tiny_dnn/config.h の #define CNN_SINGLE_THREAD を有効にします。そして、
[追記 FPUを使うために ”-mfpu=neon -mtune=cortex-a9 -mcpu=cortex-a9 -mfloat-abi=softfp” を追加する]
$ arm-linux-gnueabi-g++ -O3 -mfpu=neon -mtune=cortex-a9 -mcpu=cortex-a9 -mfloat-abi=softfp -Wall -Wpedantic -Wno-narrowing -Wno-deprecated -DNDEBUG -std=gnu++14 -I ../../ -DDNN_USE_IMAGE_API train.cpp -o train -static
train と data/ を SD カードにコピーして、
root@Cora-Z7-07S:~# mount /dev/mmcblk0p1 /mnt/
root@Cora-Z7-07S:~# /mnt/train --data_path /mnt/data/ --learning_rate 1 --epochs 3 --minibatch_size 16 --backend_type internal
これは… 遅いなんてもんじゃない。667MHz じゃないのかよ~
Intel の 100 倍遅いじゃないか(--)
[追記 FPU を使ったら 5倍速くなった。けど Intel の 20倍遅い…]
Cora の Petalinux で Hello World と tiny-dnn_f0054075_23384691.png
これ、FPGA にオフロードしようと思ったけど、よく考えたら物理アドレス分からないんだねぇ。PL からアプリの配列を触ったりはできないのか。PS からデータをくべるしかないのかな? 7 世代の Zynq は PL から PS には HP ポートあるけど、PS から PL は GP ポートしかないんじゃなかったっけ?

by tom01h | 2018-07-13 21:40