TPUと整数演算

By 酔漢 - Last updated: 土曜日, 4月 8, 2017

だいぶ前にGoogleがTensorFlow用に作ったAIプロセッサTPUが話題になりました。

TPUは大並列の整数演算プロセッサで、CNNを高速処理するために設計されています。ぱっと見、明らかに認識エンジン側によった設計だと思ったのですが、世間的には多少の驚きがあったようです。

DSPを長く売っていると繰り返し出てくる性能指標が、

演算速度/(コスト×体積×消費電力)

です。組み込みの印象の強いDSPですが、歴史的にはRASモデムや医療装置の計算装置など、多重度の高い機械やFPGA普及以前の並列演算機などによく使われていました(今でも表に出ないだけでそういう用途はある)。キーはなんと言っても消費電力です。X86は常に高い計算能力をたたき出しますが、何しろ発熱が酷いために、施設や装置の熱的上限にぶつかって単位体積あたりの演算能力を上げられません。ブレードサーバーなどの分野に能力より低発熱を謳ったプロセッサが開発されるようになったことはよく知られています。

翻ってTPUを見てみれば、浮動小数点ではなく整数演算を選んだことから組み込みやサーバー用途を狙っていることは明々白々です。外販を考えていないとのことですので、結局はサーバーとしての演算密度を考えてのことなのでしょう。

浮動小数点による認識から結果がずれることになりますが、天下のGoogleが資金を投じているので、整数演算による認識は今後1,2年で研究が活発に行われると思われます。

TPUは整数化に加えて語長の短縮も行われているわけですが、CNNではノイマン型よりもさらにメモリのボトルネックが深刻になります。そのため、語長短縮は速度的にも非常に効果があります。

ネットワークのバイナリ変換といった研究もあり、1,2年の間に単位電力あたりの認識が飛躍的に高まることになるのでしょう。

Filed in 日記

矩形パルス信号について復習した

By 酔漢 - Last updated: 日曜日, 3月 19, 2017

「直感的にはわかっている」水準だった矩形パルス信号とその周波数特性について復習しました。

これまでなら教科書を睨みながらあくびをかみ殺して、というところです。が、今回はJupyter notebookを使うことで問題の周辺をしつこくねちねちと何度も掘り下げることができました。

Read the rest of this entry »

Filed in Jupyter

Google Cloud Platform で Jupyter のサービスを動かす

By 酔漢 - Last updated: 土曜日, 3月 18, 2017

Google の Cloud Platform サービスの中の最小インスタンスであるf1-microが無料化されるというニュースがありました。早速使ってみたところJupyterを外部から使用することに成功しました。f1-microは非常に小さなインスタンスですが、重い作業をさせなければ十分に使うことが出来ます。

以下、設定の仕方などを説明します。なお、これが一番いい方法かどうかは、わかりかねます。

Read the rest of this entry »

Filed in 日記

Quartus Prime 16.1 が Ubuntu 16.04 で動くようになった

By 酔漢 - Last updated: 火曜日, 3月 14, 2017

先日、動かない動かないと書いたQuartus Primeですが、ようやくUbuntu 16.04 からターゲットに書き込めるようになりました。蓋を開けてみれば udev.rules の書き方です。まったくどうしようもなくバッド・ノウハウです。

Read the rest of this entry »

Filed in Quartus

Ubuntu16.04とQuartus Prime の相性が悪い

By 酔漢 - Last updated: 日曜日, 3月 12, 2017

以前、Ubuntu 14.04にQuartus Prime 15.1をインストールし、一通りの機能を使うことが出来ていました。

その後、OSやQuartusのバージョンが上がった際には簡単なテストで済ませていましたが、昨日大きな問題にぶちあたりました。今日一日かけていくつかの組み合わせを試験しましたが、結論から言えばUbuntu 16.04 64bit版とQuartus Primeは相性が悪いです。USB Blasterの利用に制限があるようです。

追記:この問題は解決しました

Read the rest of this entry »

Filed in 日記

Jupyter notebookによるFIRフィルタ特性比較

By 酔漢 - Last updated: 月曜日, 3月 6, 2017

昨日紹介したJupyter notebookがあまりに面白いので、昼休みに遊んでいるうちにFIRフィルタの特性比較ノートブックを作ってしまいました。

このアプリケーションがどのように働くのか、また我々にどのように働きかけるのか、面白いサンプルだと思いますので公開します。 Read the rest of this entry »

Filed in Jupyter

jupyterをいじってみた

By 酔漢 - Last updated: 日曜日, 3月 5, 2017

最近何かと目にするpython実行環境、jupyterを触ってみました。

私がいじり回すのは組み込み分野ですので概ねC/C++言語を使っているのですが、今後はUIを始め速度を要求しない処理はpythonにしようと考えています。pythonはきちんとしたメモリ管理機能やファイルシステムが必要ですが、すでにARM Linuxが組み込みに降りてきています。逆にARM Linuxのネットワークやファイルシステムと言った豊富なミドルウェアをC/C++で使いこなすのは少々骨が折れます。Pythonなら適任でしょう。

そういうわけで、最近はEclipse + Python3 + git でpythonを時々いじっています。さてそこに現れたjupyterは、何がおもしろいのでしょうか。

Read the rest of this entry »

Filed in 日記

embed機能のテスト

By 酔漢 - Last updated: 水曜日, 3月 1, 2017

これはWordpressのembed機能のテストです。そのうち消すかもしれません。便利ですが、できるサイトとできないサイトのばらつきが困りますね。

Read the rest of this entry »

Filed in 日記

BlackfinとCORTEX-M7のDSP性能が同等ですって?

By 酔漢 - Last updated: 日曜日, 2月 26, 2017

CQ出版のInterface誌2017年4号を読みました。

中森章氏の連載記事『400MHz級制御プロセッサ ARM CORTEX-M7初体験』において、信号処理性能に関して「CORTEX-M7は400MHz動作になって、性能的にBlackfin 7xx(400MHz), Blackfin 5xx(750MHz)と肩を並べることができます」という一節を目にしました。しばし頭の中で疑問符がチカチカと点滅したので調べた次第です。

ARMの大変上手な我田引水をそのまま掲載した、ということのようです。

Read the rest of this entry »

Filed in 日記

リミッター

By 酔漢 - Last updated: 日曜日, 2月 19, 2017

『雲仙』フレームワークの「ドッグフードの味見」として作ったシンセサイザーに、リミッターを取り付けました。リミッターはほぼ全てのオーディオ信号処理装置で必要になるモジュールです。

Read the rest of this entry »

Filed in シンセサイザー