LabVIEW FPGA をコンパイルサーバで高速にコンパイルする。

ストレージにデータを書き込むと言うところを開発していますが、いずれは通る FPGA 実装の道。

今日は LabVIEW FPGA のコンパイルを他のマシンで行なわせる、「コンパイルサーバ」の設定を少し。

高速な PC に LabVIEW FPGA をインストールしておけば、FPGA 搭載マシンが遅くても速くコンパイルが出来るというものです。

前も試してはまったところなので、忘れないようにメモメモ。

必要性

コンパイルサーバの必要性は如何に?

はい。それは FlexRIO などのデバイスが入っているマシンのコントローラ ( PXIe-1082 ) が AMD Turion という遅い CPU だからです。

いつも使っているマシンは HP Pavillion ~ Core i7 860 なので、こちらの方が早くコンパイルが終わるので、コンパイルだけはこのマシンを使うようにします。

概念

Compile Server だか Worker だか色々出てきますが、流れとしては以下のような物です。

通常 LabVIEW + FPGA モジュールをインストールすると、LabVIEW, Compile Server, Worker, ISE が同じマシンにインストールされます。

で、LabVIEW 上で FPGA ビルドを行なうと同一マシン上の Compile Server にコンパイルが委託され Worker→ISE と経由してコンパイルが行なわれます。

※ ISE は、Xilinx の FPGA 開発&コンパイル環境。

clip_image001

で、LabVIEW FPGA はコンパイル作業を、他のマシンの Compile Server に投げる事が出来ます。

投げた先のマシンが速ければコンパイルも早く終わるというからくりですね。

設定

説明をちゃんと読めば設定は簡単ですが、この手の開発環境の説明はどこにあるのやら、というのが通例ですので、適切な説明を見つけられないと一日無駄にすることになります。

  • Compile を行なう側(速いマシン)

まず Compile を行なう側のマシンで、他からのコンパイルを受け入れる設定をしておきます。

スタートメニューから、"National Instruments"→"FPGA"→"LabVIEW FPGA Server Configuration" を選択すると、以下のツールが起動するので "Allow~" にチェックを入れて OK ボタンを押します。

clip_image002

次に Compile を受け入れる "Compile Worker" を起動しておきます。

スタートメニューから、"National Instruments"→"FPGA"→"LabVIEW FPGA Compile Worker" を選ぶと以下のツールが起動します。

clip_image003

他にも設定はありますが、とりあえず気にせず進みましょう。

  • コンパイルを依頼する側(遅いマシン)

次はコンパイルを依頼する側の設定です。

適当な VI のメニューから 「ツール」→「FPGA モジュールオプション」を選択すると、以下のダイアログが開きます。

ここの "ホスト名" から「コンパイルサーバを追加」を選択し、ホスト名に Compile を行なうマシンのホスト名か IP アドレスを入力します。

ユーザ名とパスワードは Compile サーバ側で設定することが出来る物で、設定しておくと同僚が勝手に私のマシンでコンパイルを行なうような事が出来なくなります。

ここは広い心でデフォルトのまま使う事にします。

ユーザ名のデフォルトは "admin"

パスワードのデフォルトは空欄

です。

clip_image004

あとは、FPGA のビルドを行なうと以下のように、コンパイルサーバに接続してコンパイルが行なわれると思います。

clip_image005

コンパイルしているマシンの方では、Worker のステータスが以下のように変わります。

clip_image006

エラーの場合

コンパイル時に「通信エラー」などと表示されて、コンパイルが出来ない場合があります。

この場合は、

  1. コンパイルする側で Compile Worker が起動していない
  2. コンパイルする側の ファイアウォールが有効になっている
  3. ユーザ名とパスワードが間違っている
  4. そもそもネットワークにつながっていない
    のどれかと思います。 上2つが一番多いと思います。ファイアウォールは無効にして試してみてください。
image

がんばりましょう。

参考資料

Compiling an FPGA VI Remotely (FPGA Module)
http://zone.ni.com/reference/en-XX/help/371599G-01/lvfpgahelp/compiling_fpga_vi_remotely/

Configure Remove Compile Server
http://zone.ni.com/reference/en-XX/help/371599G-01/lvfpgadialog/cloud_config_remote/

Understanding the LabVIEW FPGA Compile System (FPGA Module)
http://zone.ni.com/reference/en-XX/help/371599G-01/lvfpgaconcepts/compiling_fpga_vis/

コメント