FC2カウンター FPGAの部屋 2019年12月22日
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

ultra96v2_min2プラットフォームのPeteLinux 2019.2 が動作するUltra96-V2 にSFTP できた

ultra96v2_min2プラットフォームのPeteLinux 2019.2 が動作するUltra96-V2 にSFTP ができました。

ssh を利用してリモートマシンへ SFTP する scp というコマンドがあることが分かった。(「scp – リモートマシンにファイルコピー - Linuxコマンド」参照)
これでやってみようということで、Ultra96-V2 の電源をON して自分のUbuntu 18.04 のパソコンで scp してみた。
scp -r xrc.log 192.168.3.23:/
私のホーム・ディレクトリにある xrc.log というファイルを試しに Ultra96-V2 に送ってみようということだ。
そうすると、

masaaki@192.168.3.23's password:

と聞かれたが、Ultra96-V2 には masaaki というアカウントは作成していない。しかもUltra96-V2 にも root のパスワードも設定されていないということで、Ultra96-V2 のPetaLinux の root アカウントにパスワードを設定した。パスワードは root だ。

root@ultra96v2_min2:~# passwd
New password:
Retype new password:


自分のUbuntu 18.04 のパソコンで root アカウントに移動した。
sudo su
もう一度、scp -r xrc.log 192.168.3.23:/したら、一回パスワードを入れ直しはしたが、SFTP できた。

root@masaaki-H110M4-M01:/home/masaaki# scp -r xrc.log 192.168.3.23:/
The authenticity of host '192.168.3.23 (192.168.3.23)' can't be established.
RSA key fingerprint is SHA256:fgrPyO8FeroMd3/Q+/SDXL1Ejai1vz+P6SdmSGJpM7s.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.3.23' (RSA) to the list of known hosts.
root@192.168.3.23's password: 
Permission denied, please try again.
root@192.168.3.23's password: 
xrc.log                                       100%  685    57.5KB/s   00:00    


Ultra96-V2 側で見ても xrc.log が / ディレクトリに入っているのが分かる。

root@ultra96v2_min2:~# cd /
root@ultra96v2_min2:/# ls
bin boot dev etc home lib media mnt proc run sbin sys tmp usr var xrc.log


SFTP_1_191222.png

SFTP_2_191222.png
  1. 2019年12月22日 08:53 |
  2. PetaLinux
  3. | トラックバック:0
  4. | コメント:0

laplacian_filter1_host.cpp に時間計測コードを追加2

laplacian_filter1_host.cpp に時間計測コードを追加”の続き。

前回は、OpenCL の getProfilingInfo() を使用した時間計測を試みたがセグメンテーション・フォールトで出来なかった。そこで、 gettimeofday() を使用した時間計測コードを作成して時間計測した。ツィッターで @KSuzukiii さんに「enqueueTaskに event渡してないのが気になりました。」というコメントをいただいたので、調べてみるとたしかにそうだった。コードを修正して、やってみると成功したので、OpenCL の getProfilingInfo() を使用した時間計測を行った。

OpenCL の getProfilingInfo() を使用した時間計測のコードを示す。

    cl::Event event;
    uint64_t lapf_start, lapf_end;

    //Launch the Kernel
    q.enqueueTask(krnl_lap_filter, NULL, &event);

    // The result of the previous kernel execution will need to be retrieved in
    // order to view the results. This call will transfer the data from FPGA to
    // source_results vector

    q.enqueueMigrateMemObjects({hw_lapd_buf},CL_MIGRATE_MEM_OBJECT_HOST);

    q.finish();

    // 時間計測
    event.getProfilingInfo<uint64_t>(CL_PROFILING_COMMAND_START, &lapf_start);
    event.getProfilingInfo<uint64_t>(CL_PROFILING_COMMAND_END, &lapf_end);
    auto lapf_time = lapf_end - lapf_start;
    printf("laplacian_filter1: %lu ns\n", lapf_time);


enqueueTask()に event を渡すようにした。
更に、”Ultra96-V2 をUSB-LAN 変換アダプタでネットワークに接続”でUltra96-V2 がネットワークに接続されたので、Vitis からラプラシアン・フィルタ処理を行ってみよう。

Vitis 2019.2 の laplacian_filter1 アプリケーション・プロジェクトを示す。
lap_fitler_19_191222.png

まずは、前準備をする。まだ、SFTP でUltra96-V2 にファイルをアップロードできていないため、MicroSD カードの rootfs の /mnt に test.bmp をコピーした。lap_filter_axim.xclbin, laplacian_filter1.exe はアップロード出来ているので、Vitis は Ultra96-V2 にファイルをアップロードできているのだが。。。
lap_fitler_20_191222.png

lap_fitler_21_191222.png

MicroSD カードを Ultra96-V2 に挿入して電源ON した。
ifconfig を行うと、ネットワークに接続されていることが分かる。
lap_fitler_22_191222.png

最初に、zocl ドライバを insmod でロードしておかないとダメなようなので、それを行う。
insmod /lib/modules/4.19.0-xilinx-v2019.2/extra/zocl.ko
lap_fitler_26_191222.png

Vitis 2019.2 の Assistant ウインドウで lalacian_fiter1_system -> Hardware を右クリックし右クリックメニューからRun -> Run Configuratio を選択した。
lap_fitler_30_191222.png

Debugger_laplacian_filter1 を作成した。
Connection は Ultra96-V2 の IP アドレスを入れた Remote を作成した。
lap_fitler_23_191222.png

lap_fitler_24_191222.png

Run ボタンをクリックしてアプリケーションを起動した。
結果が表示された。
経過時間は 5064440 ns だった。つまり約 5.1 ms だった。gettimeofday() で計測したのとほとんど変わらない。
lap_fitler_27_191222.png

後 3 回実行してみよう。
Vitis 2019.2 の Assistant ウインドウで lalacian_fiter1_system -> Hardware を右クリックし右クリックメニューからRun -> Debugger_laplacian_filter1 を選択した。
lap_fitler_31_191222.png

laplacian_filter1 アプリケーションが起動した。
lap_fitler_28_191222.png

同様に後 2 回実行した。
lap_fitler_29_191222.png

lap_fitler_32_191222.png

平均すると約 5.0 ms だった。

シリアル・コンソールには[drm] メッセージが表示されている。
lap_fitler_33_191222.png

/mnt ディレクトリには、lap_filter_axim.xclbin, laplacian_filter1.exe がアップロードされていた。
lap_fitler_34_191222.png
  1. 2019年12月22日 06:25 |
  2. Vitis
  3. | トラックバック:0
  4. | コメント:0