About Hidemi

主にFPGAに関する技術アイデアのための備忘録を展開しています。

Free HTML5 Template

興味のあること

  • 萌系アニメ
  • FPGA
  • 画像処理
  • 通信(Ethenret)
  • 高位合成

Features

画像処理をする高位合成処理系などの統合開発環境を構築を進めています。

高位合成処理

新フェーズを計画中。

統合環境

高位合成からFPGA化、Linuxディストリビューションからクロス開発環境までトータルで使いやすいプラットフォーム環境の開発を進めています。

クラウドFPGA

クラウド経由でFPGAを使用する実験を計画中。JavaScriptでクラウドに配置されているFPGAの書き換えを可能にしてリモートでアクセス可能にする機能を計画中。

Webで開発

Webブラウザ上でブロックモデリング開発を計画中。Webブラウザ→Vivado→FPGAの流れを計画中。

@hidemi_ishihara

Twtitterで呟いています。ブログに書く必要のないネタや速報はTwitterで、サポートもTwitterでご質問くださいませ。
https://twitter.com/hidemi_ishihara

RSS配信

RSS配信を復活しました。最新の5件分を配信中です。こちらのURLをRSSリーダに登録してください。
http://www.sweetcafe.jp/?rss

Blog

Vivado 2017.1の使ってみた感じ

ログからもう少し詳細に何が増減しているか確認した。

2017.1ではLUT as Logicが14増加し、LUT as Memoryで見てみると、Shift Registerが2017.1で12減少となっている。

その分、Slice Registerで7増加となっている。

LUTで構成したシフトレジスタが組込み回路で構成され、FFが消費されたものと考えられる。

これの影響かわからないが、Slackは0.35ns程度良くなっている。

Viaado 2016.4

+----------------------------+------+-------+-----------+-------+
|          Site Type         | Used | Fixed | Available | Util% |
+----------------------------+------+-------+-----------+-------+
| Slice LUTs                 | 3020 |     0 |     53200 |  5.68 |
|   LUT as Logic             | 2820 |     0 |     53200 |  5.30 |
|   LUT as Memory            |  200 |     0 |     17400 |  1.15 |
|     LUT as Distributed RAM |   10 |     0 |           |       |
|     LUT as Shift Register  |  190 |     0 |           |       |
| Slice Registers            | 3398 |     0 |    106400 |  3.19 |
|   Register as Flip Flop    | 3398 |     0 |    106400 |  3.19 |
|   Register as Latch        |    0 |     0 |    106400 |  0.00 |
| F7 Muxes                   |    2 |     0 |     26600 | <0.01 |
| F8 Muxes                   |    0 |     0 |     13300 |  0.00 |
+----------------------------+------+-------+-----------+-------+

Vivado 2017.1

+----------------------------+------+-------+-----------+-------+
|          Site Type         | Used | Fixed | Available | Util% |
+----------------------------+------+-------+-----------+-------+
| Slice LUTs                 | 3022 |     0 |     53200 |  5.68 |
|   LUT as Logic             | 2834 |     0 |     53200 |  5.33 |
|   LUT as Memory            |  188 |     0 |     17400 |  1.08 |
|     LUT as Distributed RAM |   10 |     0 |           |       |
|     LUT as Shift Register  |  178 |     0 |           |       |
| Slice Registers            | 3405 |     0 |    106400 |  3.20 |
|   Register as Flip Flop    | 3405 |     0 |    106400 |  3.20 |
|   Register as Latch        |    0 |     0 |    106400 |  0.00 |
| F7 Muxes                   |    1 |     0 |     26600 | <0.01 |
| F8 Muxes                   |    0 |     0 |     13300 |  0.00 |
+----------------------------+------+-------+-----------+-------+

配置配線

Impremeted Designを見ると、Vivado 2016.4では少し広がりを見せていたところがVivado 2017.1ではまとまるようになっている雰囲気が見受けられる。

配置配線の効率は向上しているものと見受けられる。

Xilinxのデバイスは横方向には遅延が少なく、縦方向に遅延が大きい。

従って、タイミング収束のために横方向に伸びがちなのだが、Vivado 2017.1では論理合成の精度も上がって、横方向に伸びなくなったのだろう。

まとめ

Vivadoはバージョン間でのプロジェクト移行で問題が出るケースが多くあるが、最新版のVivadoで合成を実行するほうが良い結果を得られることがわかる。

Vivado 2016.2→2016.3以上間のプロジェクト移行には最大限の注意が必要だが、Vivado 2016.3以降のプロジェクトであれば、2017.1に移行しない理由は現時点では見当たらない。

2017年04月24日 22時59分17秒 - Permament Link

Vivado 2017.1のTiming Summaryエラー

Vivado 2017.1のImplimantationのReport Timing SummaryでJavaのエラーが発生して、結果が表示されない不具合が発生した。

ベース環境はUbuntu 16.04LTSである。

#-------------------------------------------------------------------------------
# Vivado v2017.1 (64-bit)
# SW Build 1846317 on Fri Apr 14 18:54:47 MDT 2017
# IP Build 1846188 on Fri Apr 14 20:52:08 MDT 2017
# Current time: 4/24/17 8:28:34 AM JST
# Process ID: 2194
# OS: Linux
#
# This report is an indication that an internal application error occurred.
# This information is useful for debugging. Please open a case with Xilinx
# Technical Support with this file and a testcase attached.
#-------------------------------------------------------------------------------
java.lang.UnsupportedOperationException: This is supposed to be overridden by subclasses.
    at com.google.protobuf.GeneratedMessage.getUnknownFields(GeneratedMessage.java:262)
    at ui.data.device.d.l.getSerializedSize(SourceFile:8409)
    at com.google.protobuf.AbstractMessageLite.toByteArray(AbstractMessageLite.java:67)
    at ui.data.device.H.axB(SourceFile:531)
    at ui.data.device.H.axy(SourceFile:454)
    at ui.data.device.H.axl(SourceFile:276)
    at ui.data.device.E.j(SourceFile:122)
    at ui.data.device.E.<init>(SourceFile:63)
    at ui.data.ah.lN(SourceFile:1347)
    at ui.data.ah.cP(SourceFile:217)
    at ui.data.ah.<init>(SourceFile:146)
    at ui.data.aW.<init>(SourceFile:38)
    at ui.project.a.edJ(SourceFile:252)
    at ui.project.a.init(SourceFile:236)
    at ui.project.r.a(SourceFile:1080)
    at ui.frmwork.a.k.d(SourceFile:41)
    at ui.frmwork.HTclEventBroker.i(SourceFile:259)
    at ui.frmwork.HTclEventBroker.fireTclEvent(SourceFile:330)
    at ui.frmwork.designcmds.HTCDesignCommands_openRun(Native Method)
    at ui.a.t.b(SourceFile:230)
    at ui.views.O.n.K(SourceFile:221)
    at ui.b.c.bB.construct(SourceFile:763)
    at ui.frmwork.D.run(SourceFile:201)
    at java.lang.Thread.run(Thread.java:745)

Javaは削除している状態なのでVivado 2017.1付属のJavaを使用しているものと思われる。

ただ、Vivado 2017.1の環境変数を有効にした状態で次のようにjavaを検索しても何も見つからない。

$ which java
$ which javac
$ which jre

せめて、Timing Summaryは表示してくれないと合成後の結果がわからないので原因を探り始めた。

原因を探るキーワードは次の項目である。

java.lang.UnsupportedOperationException: This is supposed to be overridden by subclasses.

どうも、protobubの不具合らしいWebページが多数引っかかる。

そこでVivado 2017.1のインストールフォルダを眺めて見ると・・・

$ find ./|grep java
<<<割愛>>>
./tps/lnx64/jre/bin/javaws
./tps/lnx64/jre/bin/java
<<<割愛>>>
./lib/classes/protobuf-java-3.1.0.jar
./lib/classes/protobuf-java-2.4.0a.jar

protobufがあるねぇ。

不具合はこれかね?

ひとまず、protobufをインストールしてみよう。

$ sudo sudo apt install protobuf-compiler
$ protoc --version
libprotoc 2.6.1

これではprotobuf-javaはインストールされないので本当は次のようにインストールする。

$ sudo apt install libprotobuf-java

これでも不具合は解消されない。

そこでここからは勘と当てずっぽうで不具合解消を試みる。

$ find /opt/Xilinx/Vivado/2017.1/|grep protobuf
/opt/Xilinx/Vivado/2017.1/lib/lnx64.o/libprotobuf.so.7
/opt/Xilinx/Vivado/2017.1/lib/lnx64.o/libprotobuf.so
/opt/Xilinx/Vivado/2017.1/lib/classes/protobuf-java-3.1.0.jar
/opt/Xilinx/Vivado/2017.1/lib/classes/protobuf-java-2.4.0a.jar

protobuf-java-3.1.0.jarなんてあるよ。

これじゃね?

試しにjarの拡張子を変更してみる。

sudo mv protobuf-java-3.1.0.jar protobuf-java-3.1.0.jar.tt

そして、ImplimentationからReport Timing Summaryを実行したら、サマリーが表示された。

結果が表示されたところでVivado 2016.4と比較したところ若干、Slackが良くなっている。

だが、何をインストールしたんだ?

2017年04月24日 22時57分38秒 - Permament Link

TensorFlow ハード部#2

4/21(金)にgoogleで開催された「TensorFlow ハード部#2」に行ってきた。

「Tensor Processing Unit (TPU) のアーキテクチャとパフォーマンス」

登壇者:佐藤さん@google

  • ニューラルネットワークに特化している。。
  • 推論に特化している。
  • シンプルでシングルスレッドに特化している。
  • CISCで設計した。
  • INT8×65,535マトリックスで計算する
項目
CPU スカラー型
GPU ベクター型
TPU マトリックス型
  • Systolic Array = Pipeline

「TensorFlow XLAは、中で何をやっているのか?」

登壇者:@Vengineerさん

かなり駆け足でしたが内容は面白かったです。

感想は全体をじっくり見てから・・・

懇親タイム

なつたんさんにてくのたんの名刺を貰いました。

と、いうかgoogleさんも太っ腹です。

聞いたところ、会社に申請が通れば2,000円/人×参加者のスポンサーになってくれるとか・・・

「TensorFlowでマルチGPUトレーニング(仮)」

登壇者:村上さん@nVivia

nVidiaと自分の社会人歴が一緒というのが判明(^-^;

前半はnVivia製品の紹介でしたが長めの紹介だったけどうーん、何かが抜けてるような気がする。

後半がGPUとディープラーニングについてでした。

「FPGA環境でのalexnet」

登壇者:篠塚@Intel

Intel FPGAでAlexnetでnVidiaさんがいろいろ出してしまったために出遅れ感が大きく見えてしまった。

Intel FPGAは低電力化しかメリットがないIntel FPGAはヤバイという発表に見えました。

「Kerasで組み込み向けフレームワークを作ろう」

登壇者:なつたんさん@パソナテック

なつたんさん、すげぇ!の一言です。

大企業が抱える闇の部分をサクサクと切り込んでいました。

Python無し、ベタCでできるようにフレームワークを作成。

とにかく、ベタCで組込みに特化したというのが良かった。

最後は「PythonとCができればいいよ」と「Python無しでよかったんじゃないんかぁ〜!」といい感じでした。

って、Pythonが無くても良いのは大企業だったんですね。

まとめ

質問者は質問内容を即座に吟味して質問したほうがいいですね。

今回の質問者の質問はみんなの前で質問するような内容ではありませんでした。

個人的な質問が多かったなぁ、みんなの前で質問するならまず、使ってから質問しましょうよ。

そしたら、出てこない質問ばかりですから・・・

それか、懇親会で直接質問すべきです。

今回、ハード部に参加して感じたのは特化することは大切だなぁと再認識した。

2017年04月22日 21時18分00秒 - Permament Link

LattePanda into 100均フォトフレ

今日はVivado 2017.1をインストールしながら、LattePandaを100均のフォトフレームに収める工作を行った。

ざっと、フォトフレームの裏側はこんな感じ。

表側はこんな感じ。

秋月IGZOフレームを作成した時は表面はガラスにしたけど、今回はプラ板にした。

2017年04月20日 23時38分19秒 - Permament Link

プリキュア映画近辺のCG WORLD

プリキュア映画近辺のCG WORLDはプリキュアを取り上げるんだよね。

東映動画の3DCGってディズニーとかの3DCGよりも好きなんだよねぇ。

2017年04月17日 00時58分10秒 - Permament Link