xiangze's sparse blog

機械学習、ベイズ統計、コンピュータビジョンと関連する数学について

FPGA

VTAの実装三者三様(Xilinx,Intel,Scala)

VTAのFPGAによる回路実装を比べてみます。 どれもあまり触ったことがないのでこれを機に細かいところを学んでいきます。 概観 VTAの回路モジュール図 instruction fetch module load module store module input/output/weight buffer load/compute store com…

FPGAの原理と構成を読んだ

FPGAブームが来ています*1 。最近年を追うごとにFPGAに関する書籍やネット上の情報が多くなり、またC言語ベースでの高位合成技術の進展やLinuxベースのシステムが作られ、FPGAはソフトウェア開発者にとっての敷居が低く使いやすくなってきています。しかし入…

簡潔データ構造のFPGA実装について

HDLアドベントカレンダー2015の記事です。 FPGAにwavelet treeを用いた簡潔データ構造を実装したという論文を紹介します。PDPTA'15(International Conference on Parallel and Distributed Processing Techniques and Applications)という学会で発表されたよ…

Torch7のCNNのFPGA実装は可能か(絵に描いた餅編)

waifu2xの登場で注目されるTorchですが、様々なアーキテクチャでの実装を標榜しているようです。 http://torch.ch/ ではFPGA backendsと書かれていますが、誰かが実装したという話は聞いたことがありません。ので検討してみました。

FPGAで競技プログラミング

ルーターで競技プログラミングという記事をみて、色々なアーキテクチャで競技プログラミングができることを知りました(採点はしてくれませんが)。 紹介されていたTopcoder SRM 596のDiv 1の250点問題をFPGAで解くモジュールを作成してみました。

QsysとverilogのTIPS

Altera社のツールQSysについての細かい事項メモ generate文の2重ループが使える。 ただしgenerate文にはラベルが必要 例: genvar i,j; generate for(i=0;i<16;i=i+1)begin :rep_tmpx assign tmpx[i]=(idx==i)?(i<<1):0; end for(j=0;j<16;j=j+1)begin :rep_…

QsysでのAvalon busへの独自回路追加

AlteraのSoC開発ツールQsysではAvalon busに独自に作成した回路モジュールを接続することができます。 その際にAvalon busの仕様にあるinput,output信号をモジュールでは定義する必要があります。Qsysでの設定手順と一緒にまとめます。 この記事は基本的には…

FPGA(DE2)でHello World

組み込み系やハードウェア開発の最初の一歩としてボード上のLEDをチカチカさせるというのがありますが、 あまりもプリミティブすぎて面白みがない、モチベーションがわきづらいという意見があります。 そこでソフトウェアの言語や環境の入門でよくある"Hello…