比例道

月に1回更新します

FPGA

リアルタイムAIにはFPGA,MSが深層学習アクセラレーター

Starix10を使っているんだって. FPGAを使うんならリコンフィギャラブル性能を生かさなきゃだめだよ.まだまだだね. MSはソフトを作るのはへたくそだけど,ハード(マウスとか)作るのはけっこううまいんだよね.もうソフトウェアを作るのは止めてハード専…

PythonはFPGAアクセラレーションの裾野を広げるか

@ITに表題の記事が掲載された.ちょっとPythonを褒めすぎだなあ.Pythonでまともなハードウェアが出来るようになるまであと10年はかかると思うよ.

BNN-PYNQのHardware design rebuilt

PYNQの回路設計を見たくてubuntu16.04LTSのマシンで/bnn/src/networkで./make-hw.sh cnv-pynq pynq aとやったら,Vivadoがないよとおこられた.やっぱりぃ.仕方ないのでWebPACKをインストール中.WebPACKはタダで良かった.

ARMの元は6502

ZYNQを使い始めた関係でARMを無視できなくなった.マイコンなんてどれも同じだろうと思っているが,ARMのなんたるかを知りたくてインターフェース誌のバックナンバーを読んだ.2012年2月号に分かりやすい記事が載っていた.ARMは6502に代わるプロセッサが欲…

ラズパイ2(3?)もらう

CQ出版社から小さな荷物が届いた。何かに当選したようだ。中身はラズベリーパイだった。ボードは2なんだがSOCを2836からラズパイ3と同じ2837に張り替えてあるカスタム品だ。これはうれしい。何か作って遊ぼう。 それとは別にZYNQ7000用のSDSoCのノードロック…

今さらSDSoC

15年くらい前は高位合成に興味があって高価なツールなんか使っていたんだが、自分でHDL書くのに遠く及ばないことが分かって、興味を失っていた。ところが、XilinxのTCが余っていたのでSDSoCのトレーニングを受けてきた。実はVivado HLSとSDSoCの違いすら分か…

googleのNNチップTPUは2006年から始まった

googleもニューラルネットには2012年以前から興味を持っていたようだ.先見の明だな.しかし,チップの開発が加速したのは2013年から.やっぱりヒントン教授の成果に後押しされたようだ.googleのチップはTPUという.最初に作られたTPUは推論しかできなかっ…

PYNQ-Z1はACアダプタ付きを買うのが吉

PYNQ-Z1をUSB給電で動かそうとしたが,5V/2.1Aの500円ACアダプタでは動かなかった.電流計では0.6A流れたがボードは起動しなかった.たぶん電流不足.40ドル余計に出せば12V/3Aの専用ACアダプタと動作イメージが書き込まれたキングストンの8GB SDカードが付…

PYNQ-Z1のjupyter notebookは時計を合わせれば動く

PYNQ-Z1はpynqを1.4にアップデートしたら全て動くようになったのだが,今日電源を入れてみるとまたjupyter notebookが動かない.もしやと思い付き,時計を合わせたら動くようになった.jupyter notebookかpythonは時計が合ってないと変な動きをするみたいだ…

PYNQ-Z1がアップデートできない

ホームの下のscripts/update_pynq.shを実行すると A branch named 'master' already exists というエラーになる.直すにはupdate_pynq.shを編集して --track が2箇所あるので削除すれば良い.

PYNQ-Z1にプロキシ設定

シェルからsetコマンドやexportコマンドで設定してもなぜか効かなかった.結局/etc/profileを編集した. root@pynq:# vi /etc/profile MY_PROXY_URL=“http://proxy.hoge.jp:3128\” HTTP_PROXY=$MY_PROXY_URL HTTPS_PROXY=$MY_PROXY_URL FTP_PROXY=$MY_PROXY_…

PYNQ-Z1のシリアルターミナル

PYNQ-Z1のIPアドレスはデフォルトではDHCPで与えられる.クラスBなのでIP Scannerなんか使うと犯罪になる.困ったなと思ったらPYNQ-Z1にはシリアルポートにターミナルを繋げられることをGetting Startedで知った.USB端子はシリアル端子も兼ねていた.PCに繋…

jupyter notebookを使う

BNN-PYNQを使うためにPYNQ-Z1ボードを購入した.使い方はココに解説がある.いきなり使う前にjupyter notebookを使ってみようという訳で,ココを参考にリモートからブラウザで使えるようにした. jupyter notebookはキーボードショートカットを覚えないと素…

いいこと言うなあ

アプリケーションの高速化手法は、通常のCPUにも並列処理をするSIMD(Single Instruction Multiple Data)命令、MIMD(Multiple Instruction Multiple Data)命令があるし、GPUで高速化するやり方もある。FPGA、CPU、GPUの3通りの手法の最適化を検討できて、…

PYNQ-Z1 Board買うか

昨日,株とFXでお小遣いを得たので,PYNQ-Z1 Boardを買おうと思う.こいつで動くPYNQプロジェクトはdeep learingの推論だけなんだよな.私がやりたいのは学習だ.そのためにはPYNQ-Z1ではロジックセルもメモリも全然足りない(たぶん二桁以上足りない).で…

FPGAでBNN

近頃,特に外国でdeep learningにFPGAを使う動きが加速している.CPUやGPUやスパコンを使うのに比べ,LSIの設計は難易度が高いので,まだFPGAはマイノリティだ.ある人はこんなことを言っていた. 「FPGAを使いこなすスキルを身に付ける一方で、アプリケーシ…

Deep learningをFPGAで

エンジンのエンジニアが何をやっているんだと言われそうだが,Deep learningをFPGAで行うことに取り組んでいる.GPUはもう飽きたし,GPUのエネルギー効率の悪さは地球環境にとって悪だと思う.既に,amazonやgoogle,intelが同じ課題に取り組んでいる.学会…

2月号の電子情報通信学会誌が珍しく面白い

私はメカ屋なので,日本機械学会と日本ロボット学会に所属しているが,電子情報通信学会にもなぜか入っている.先週2月号が送られてきたが,小特集が"FPGAを用いた計算処理の高速化技術"だった.これが面白い.FPGAの設計技術のキモは40年前のマイコンプログ…

レベルの低い国立機関

私は客員研究員でおじゃましているんだが,横の会議室で怒鳴り声がする.金が足りない,話が違うと叫びあっている.LSIの製造を丸投げで下請け会社に発注したが,仕様をどんどん変更するものだから,当初の見積より金額がかさんでしまい,その金を出せ,出さ…

Vivadoキャンペーン価格と為替

去年も今の時期になるとVivadoの安売りキャンペーンをやっていた.もうすぐライセンスが切れるので,キャンペーンを使ってVivadoの更新をすることにした.お得なのだ.付き合いのある代理店が2社あるので,両方にキャンペーン価格を聞いてみた.同じだろうと…

中国共産党の魔の手がLatticeに伸びる

FPGAの市場はXilinxとAlteraに二分された感があるが,昔はLatticeも低価格FPGAとツールで頑張っていた.買収されると聞いたときは「儲かってないだろうから仕方がないのだろう」と納得したものだ.ところが買収しようとしているファンド(この時点で怪しいと…

相変わらずISEを使っている私

XilinxのVivadoの素晴らしさに触れて感化されたはずだったが,手元にあるのはSPARTAN-6とVirtex-6のボードばかり.結局ISEを使ってしまう.Artix-7の設計で,ボタンとLEDとUARTだけだったが,綺麗にLEDが光る回路を実習したので,それをSPARTAN-6のボードに…

初めてXilinx 7シリーズを使う

特に困ってなかったので,Virtex-6とSpartan-6を使い続けて来たが,タダでArtix-7の評価ボードをもらえたので,初めて7シリーズの設計を行ってみた.7シリーズはISEではなくVivadoだ.Vivadoも初めてだ.概ねISEの知識で使えるのだが,制約ファイルがucfから…

半年ぶりにPlanAhead

やれ過去のプログラムのデバッグ,やれ査読と雑用が続いたが,やっと時間ができたので,FPGAをいじることができた.PlanAheadは半年ぶりに起動する.PlanAheadからSetup ChipScopeを使ってインプリメントして,ChipScopeを使うのは楽ちんだ. 世の中はVivado…

LSI/FPGAの回路アーキテクチャ設計法

森岡澄夫著の本を読んでいる.2012年発行の本なので,もう少し早く読めば良かった.最適な回路アーキテクチャを最初から手戻りなく設計できないってのが身に浸みて理解できた. 9章までと10章からは違う本にしても良い感じ.

シーケンサーのalways文のトリガー

シーケンサーというのはステートマシンのステートの遷移を担当する回路のことだ.always文で書くのだが,clkで仕事させれば良かろうと思い, always @(posedge clk) で作ってみると,動いたり動かなかったり. always @(CURRENT) のようにステートをトリガに…

制約ファイルの伝承

ISEでプロジェクトの下にモジュールをたくさん作ると,生成した回路の出力が予期せぬハイインピーダンスになる現象の理由が分かった.ハイインピーダンスになったときは,ピン指定の制約ファイルが正しく読み込まれていなかったのだ.既に制約ファイルがある…

ISEのバグ

XilinxのISEは最終版14.7を使っている.今日も出力ピンがハイインピーダンスで固定されるという,先日出た現象が起きた.プロジェクトを新規に作り直すと直る.同じプロジェクトに対してモジュールをたくさん作ると発生する現象だ.バグの性質が分かっている…

予期せぬラッチのなぞ

同期設計では「予期せぬラッチ」は禁じ手となっている.だけど,私はそれがなぜなのか知らない.次はこの問題を考えてみようと思う.例によってめちゃくちゃなこと言っているかもしれないので,鵜呑みにしないように. 同期設計では同一クロックで動くFFが組…

ホールドタイムの謎

めちゃくちゃなことを言っているかもしれないので,以下の記述を鵜呑みにしないように. 同期設計では,セットアップ時間よりも早くデータが到着して,そのデータがホールド時間よりも長く維持できていなくてはならないと思っていた.ところが,これが微妙に…