製品情報

他社GPUからSiMa.aiに置き換えてみた![環境構築編①]

SiMa.ai(以降SiMa)はGPU(グラフィックス処理ユニット)を提供するα社の性能に匹敵する、エッジでのAIに強みを持ったデバイスです。そんなSiMaのMLSoC(Machine Learning System-on-Chip)を実際に使ってみたいという声も上がっています。今回は、α社のGPUで動作していたモデルをSiMaに移植し、実際に動かす方法をご紹介いたします。

全体の目次

移植の手順は以下の通りです。

Step-1:概要編

Step-2:準備編

Step-3:環境構築編

Step-4:実装編

本章「環境構築編①」のゴール

  • SiMaの開発キットとホストマシンの接続手順がわかる

なお、今回デモ動画結果は以下です。

α社動画

SiMa動画

本章「環境構築編」の目次

開発・評価をするためのボードとホストマシンの環境構築について
3ページに分けてご紹介いたします。

1-1. SiMa開発キットの環境構築

ホストマシンとSiMa の開発キットをシリアル接続する

UART USB経由でSiMaボードとホストマシンを接続していきます。
ホストマシンでは、SiMa公式の推奨するターミナルエミュレータ minicomを使用します。

※minicom:Unix系オペレーティングシステム(Linux、macOSなど)で動作するターミナルエミュレータで、特に、シリアル通信(シリアルポート経由の通信)を行うためのツールです。主にシリアルコンソールを通じてマイクロコントローラー、組み込みシステム、ルーターなどに接続し、操作するのに便利なツールです。

必要なツールのインストール

minicomのインストール

minicomのインストールのために、以下コマンドを実行してください。

sima-user@sima-user-machine:~$ sudo apt-get install minicom
シリアルデバイスの検出
デバイスの確認

ホストマシンとボード間のシリアルケーブルを接続する前に、
ホスト上のシリアルデバイス接続確認をするために、以下コマンドを実行してください。

sima-user@sima-user-machine:~$ ls /dev/ttyUSB*
    ls: cannot access '/dev/ttyUSB*': No such file or directory

既存のデバイスのリストが表示されるか、存在しない場合は上記のメッセージが表示されます。

SiMaボードのシリアルポート2を接続

今度は、付属のUSB to 6 pin USB FTDIケーブルを使って、ボードのシリアルポート2をホストマシンに接続します。
接続先はDebug COM port for HOSTで、ケーブルと端子の矢印方向が合うように接続してください。

再度、ホストマシン上のシリアルデバイス接続確認のために、以下コマンドを実行してください。

sima-user@sima-user-machine:~$ ls /dev/ttyUSB*
    /dev/ttyUSB0

これでシリアルデバイスが確認できました。

接続してもシリアルデバイスが確認できない場合、以下コマンドを試してみてください。
一度接続されるが、すぐに切断されているログが表示されることがあります。

sima-user@sima-user-machine:~$ sudo dmesg | grep ttyUSB

環境により「brltty」という点字ディスプレイをサポートするアプリケーションがシリアル接続を試みてインターフェースを奪ってしまうことがあり、不要な場合はこれを無効化するか削除することで解消することがあるようです。

# 無効化する場合のコマンド

sima-user@sima-user-machine:~$ sudo systemctl disable brltty.service
sima-user@sima-user-machine:~$ sudo systemctl stop brltty.service

# 削除する場合のコマンド

sima-user@sima-user-machine:~$ sudo apt remove brltty
シリアルポートへの接続
適切なシリアルデバイスへの接続

minicomにより、ホストマシンの最も番号が小さいデバイスに接続するように設定します。基本的には/dev/ttyUSB0ですが、他のデバイスが接続されている場合はボードのシリアルポート2を接続した後に新しく表示されるデバイスに接続します。例えば、ボードを接続する前に/dev/ttyUSB0がすでに表示されている場合は、正しいシリアルポートは/dev/ttyUSB1となります。
適切なシリアルポートに接続するために、以下コマンドを実行してください。

sima-user@sima-user-machine:~$ sudo minicom -D /dev/ttyUSB2 -b 115200, 8n1 -w

実行後はまずホストマシンのログイン名とパスワードを要求されます。その後の画面で電源を投入し自動ブートが進んだのちに、開発キットのログイン名とパスワードを要求されるため、ログイン名「sima」パスワード「edgeai」を入力してください。

ハードウェアフロー制御をオフ

minicomでハードウェアフロー制御をオフにするために、以下手順を実行してください。

  1. キーボードの「Ctrl+A」を押し、続いて「Z」を押します。
  2. 「Configure minicom」を選択します。
  3. 「Serial port setup」を開きます。
  4. 「Hardware Flow Control」を選択し、ONからOFFに変更します。

※ 選択肢を選ぶ際には選択肢横に表示されているアルファベットのキーを押すことで、選択することができます。

これでシリアルポートに接続が出来ました。
次はSSH接続設定を行っていきます。

SiMaボードのネットワーク接続方法とSSH接続設定

ボードとホストマシン間のネットワーク共有
オフラインでのボード接続

SiMaボードをEthernet(有線LAN)を使ってホストマシンに接続します。
接続先はEthernet Port 0(PCIe コネクタと遠い方のポート。詳しくは上の配置図を確認してください。)

シリアルでの接続より、Ethernet経由でのSSH接続の方が基本的には高速に通信が可能なため、オフライン環境でホストマシンとSiMaボードを接続します。ただし、オフライン環境ではSiMaボードが再起動するたびにIPアドレスを再設定しないといけません。これも回避するためにファームウェアコンフィギュレーターを使用して、自動的に192.168.2.20のIPアドレスを割り当てるよう設定を行っていきます。

※ 特に動画をSiMaボードからストリームで配信しホストマシンで表示する手順が、今後多く発生してきますので最初に設定しておくとよいです。

ネットワーク設定
  1. PC画面右上の「設定」を開き、「ネットワーク」セクションに移動します。
  2. 「有線」のセクションで「+」アイコンをクリックし、新しい設定プロファイルを作成します
    (既存のプロファイルがある場合は編集してください)。
  3. 新しいプロファイルを作成する場合、プロファイル名を「Local」など自由に設定します。
  4. 「IPv4」タブで「Manual」を選択し、以下の情報を入力します。
    「Address」:192.168.2.10、「Netmask」:255.255.255.0、「Gateway」:空欄。

    ※ このあとのステップで使用するカメラのデフォルトのIPアドレスが 192.168.1.x である場合、SiMaのネットワークデバイス上で混同してしまいますので、この時点で 192.168.2.x に割り当てておくとスムーズです。

  5. DNSサーバーを8.8.8.8と8.8.4.4と設定します。
  6. 「Apply」をクリックします。
  7. もし既存の接続を使用している場合は、接続を一度オフにし、再度オンにして変更を適用してください。
  8. ネットワーク設定のために、以下コマンドを実行してください。
    sima-user@sima-user-machine:~$ sudo ifconfig eth0 192.168.2.20 up
    
  9. SSH接続をテストのために、以下コマンドを実行してください。
    初回接続時には、ホストキーの確認メッセージが表示されます。「yes」を入力して、パスワードを入力してください。
    sima-user@sima-user-machine:~$ ssh sima@192.168.2.20
        The authenticity of host '192.168.2.20 (192.168.2.20)' can't be established.
        ED25519 key fingerprint is SHA256:wTptaqbB9zdLlKpWzRKnkb31cZKnvfmZ4ftXgwXU9kw.
        Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
        Warning: Permanently added '192.168.2.20' (ED25519) to the list of known hosts.
        sima@192.168.2.20's password:*******
        Last login: Mon Nov 27 19:58:33 2023
    davinci:~$
    

    ※ この時点でSSH接続がエラーになる場合、SSHサーバーの設定が十分でない可能性もあります。 シリアル接続経由で /etc/ssh/sshd_config の設定ファイルに「PasswordAuthentication yes」の設定があるかなどを、SSHサーバーの設定を確認してみてください。

接続確認のために、ホストのIPアドレス(192.168.2.10)に対して以下コマンドを実行してください。
以下の表示が出ていれば接続ができています。

実行コマンド
davinci:~$ ping 192.168.2.10
期待している表示
   PING 192.168.2.10 (192.168.2.10): 56 data bytes
   64 bytes from 192.168.2.10: seq=0 ttl=64 time=0.598 ms
   64 bytes from 192.168.2.10: seq=1 ttl=64 time=0.703 ms
   64 bytes from 192.168.2.10: seq=2 ttl=64 time=0.639 ms
   ^C
   --- 192.168.2.10 ping statistics ---
   3 packets transmitted, 3 packets received, 0% packet loss
   round-trip min/avg/max = 0.598/0.646/0.703 ms

ホストマシンにSSHサーバーが動作している場合は、SSH接続も可能です。

davinci:~$ ssh sima-user@192.168.2.10
   The authenticity of host '192.168.2.10 (192.168.2.10)' can't be established.
    ED25519 key fingerprint is SHA256:ic7JwZC8CdidIP3UaNBmAZ868j5HMm0oBBSc6IOgBNE.
    This key is not known by any other names
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    Warning: Permanently added '192.168.2.10' (ED25519) to the list of known hosts.
    sima-user@192.168.2.10's password:
    Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 6.6.1-060601-generic x86_64)

    * Documentation:  https://help.ubuntu.com
    * Management:     https://landscape.canonical.com
    * Support:        https://ubuntu.com/advantage

    Expanded Security Maintenance for Applications is not enabled.

    81 updates can be applied immediately.
    8 of these updates are standard security updates.
    To see these additional updates run: apt list --upgradable

    37 additional security updates can be applied with ESM Apps.
    Learn more about enabling ESM Apps service at https://ubuntu.com/esm

    Last login: Mon Dec  4 18:29:29 2023
sima-user@sima-user-machine:~$
IPアドレス自動割り当て設定

上記作業が完了したらボードを再起動させます。
キーボードの「Ctrl+A」を押し、続いて「Q」を押してホストマシンとボードの接続を解除します。その後、再度シリアル接続をします。ボードの起動中に「Hit any key to stop autoboot 」メッセージが表示されたら、任意のキーを押して自動ブートを停止します。
以下コマンドを実行してください。

sima:~$ env set forcenetcfg static; saveenv
sima:~$ boot

ボードが再起動するので、設定が反映されることを確認したらオフライン環境での接続完了です。


次の章では、最新バージョンの確認方法および更新手順についてご紹介いたします。

会社概要

会社名
SiMa Technologies, Inc.
設立
2018年
所在地
アメリカ(シリコンバレー)
事業
画像処理エッジAIに特化したSoCとSDKの提供
この製品に関するお問い合せ先

この製品に関するお問い合せ先

電話でのお問い合せ

第三ソリューション技術部

03-6361-8095

受付時間:平日午前9:00から午後17:00まで

メールでのお問い合せ

お問い合せフォーム