FPGA

20Q2.07A

非同期式回路と FPGA 〜「作ってみる編」(2)

みなさん、こんにちは。このコースでは、ある簡単な例題を非同期式回路として FPGA 上に実装し、ツールを適切に使うことで、正しく動作するものを作る、ということ目指しています。前回は、非同期式回路の超入門ということで、非同期式回路のイメージをざっくりと紹介しました。 今回は、非同期式回路の実行制御のかなめとなるハンドシェイクについて少し詳しく紹介したいと思います。 ハンドシェイクとは ハンドシェイクという用語は、情報通信分野の通信プロトコルなどでよく使われる用語だと思います。そ...
20Q2.01A

FPGA で始めるエッジディープラーニング (4)

みなさんこんにちは。この記事は、ACRiブログのDeep Learningコースの第4回目です。 前回の記事では、畳み込み層の C 実装、結果確認を行いました。今回の記事では、残りの未実装レイヤーである全結合層、プーリング層、活性化関数 ReLU の実装をしていきます。 各層の実装 全結合層 全結合層は入力ベクトル X に対して重み行列 W をかけ、その後バイアス B を加算する処理です。第2回の記事の図を以下に再掲しますが、この図の通りに計算が行えれば良いです。 ...
20Q2.05A

ホームサービスロボットにおける FPGA の応用例 (2): ロボットと FPGA の統合その1

前回は FPGA の応用先であるホームサービスロボットを紹介しました。また、FPGA を応用することによるメリットを述べました。 今回は、ロボットのシステムの核となる ROS と FPGA の統合方法について紹介します。 ロボットと FPGA の統合に対する要求 ロボットと FPGA の統合に対する要求を以下に挙げます。 ロボットに既に搭載される計算機・ソフトウェアシステムと簡単に統合できることその計算機の負荷をオフロードできることその計算機より高効率 (高速処理・低消...
20Q2.04B

Synthesijer と高位合成ツールの作り方 (2)

みなさんこんにちは。この「Synthesijer と高位合成ツールの作り方」のシリーズでは、全5回を通じて Synthesijer をベースに FPGA 向けの簡単な高位合成処理系を作る方法を紹介していきます。例は Java ですが、お気に入りの言語向けの処理系を開発する足がかりとして利用できるように書いていくもりです。 前回は、高位合成ツールとは何かについて説明し、また、このシリーズのベースとする Synthesijer を簡単に紹介をしました。今回は、Synthesijer のコンセ...
20Q2.03B

広がり続ける FPGA の応用と人工知能への活用 (2)

こんにちは! 前回は FPGA を活用して AI を実現するとどのようなメリットがあるか、いくつかの応用事例を交えて概観しました。 今回は FPGA がそうしたメリットを実現できるしくみについて解説します。そして後半には今までの課題とそれを解消するべく登場した開発環境について触れたいと思います。 FPGA はなぜ低遅延、高スループット、低消費電力を実現できるのか 前回のブログで FPGA を活用して AI を実現するメリットを5つ挙げました。そのうち特に遅延時間とスループット...
20Q2.02A

IP の世界からこんにちは (2)

IP インテグレータを用いた回路やシステムの設計について学ぶコースの第2回です。前回は、IP インテグレータの概要と、いくつかの既存の IP コアの例を見てきました。今回は、自作の IP コアをこれら既存の IP コアと組み合わせて使うために、IP パッケージャというツールの使い方を学びます。 今回の内容に関する Xilinx 社の公式ドキュメントの文書番号はUG1118となります。詳細な仕様などは上記ドキュメントを参照してください。 IP コア作成の下準備 IP コア作成の...
20Q2.01A

FPGA で始めるエッジディープラーニング (3)

みなさんこんにちは。この記事は、ACRi ブログの Deep Learning コースの第3回目です。 前回の記事では、MNIST データセットに対するネットワークモデルの作成・学習を行いました。この記事からは FPGA 上で推論処理を動かすために、まずは C++ で推論処理コードを記載していきます。 C++ 実装の初回のこの記事では、畳み込み層をターゲットに C++ 実装を始めます。具体的な内容は、(1) 畳み込み層の実装、(2) 動作確認 (C 検証、C/RTL 協調検証) で...
20Q2.10B

NNgen と FPGA で作るニューラルネットワーク・アクセラレータ (1)

はじめに 皆さん、こんにちは。本コースを担当する東京大学の高前田です。 私たちの研究室、CASYS (Laboratory for Computer Architecture and Systems) では、コンピュータアーキテクチャ (コンピュータの構造や設計技術、コンピュータそのものの在り方) を中心に、FPGA や専用ハードウェアによるカスタムコンピューティング、機械学習処理などの計算対象アルゴリズムとハードウェアの協調設計、ハードウェア設計を支援する高位合成コンパイラなど、...
20Q2.09B

MIG を使って DRAM メモリを動かそう (1)

みなさんこんにちは。この「MIG を使って DRAM メモリを動かそう」のシリーズでは、全5回を通じて Xilinx Memory Interface Generator (MIG) という IP コアをベースに Xilinx FPGA で DRAM メモリを動かす方法を紹介していきます。説明では教育向けに設計された Arty A7-35T FPGA ボードを用いますが、他の FPGA ボードにも同様に適用できます。 第1回の今回は、FPGA 設計で DRAM を利用する必要性について説...
20Q2.08A

新しいコンピューティング・システムとしての FPGA (1) ~ 注目されはじめた FPGA

みなさん、こんにちは。ACRi ブログ第2期の8番目のコースを担当する宮島と申します。私たち、理化学研究所 計算科学研究センター (R-CCS) プロセッサ研究チームでは、次世代の計算機システムに FPGA を利用できないかと考え、研究開発を行っています。 本コースでは、複数の FPGA を用いた計算機システムの構成と、私達が研究開発が行っているカスタム・コンピューティング・システムについて紹介していきます。第1回の記事では、FPGA を計算機システムに用いる理由とコンセプトを紹介します...
20Q2.07A

非同期式回路と FPGA 〜「作ってみる編」(1)

みなさんこんにちは。このコースでは、「非同期式回路」というものはいったいどんなものなのか、FPGA に実装したらどうなるのか、ということを非常に大雑把に紹介していきたいと思います。ある簡単な例題を非同期式回路として FPGA 上に実装し、ツールを適切に使うことで、正しく動作するものを作ってみる、ということ目指したいと考えています。 まず、第一回は「非同期式回路の超入門」と題し、非同期式回路のざっくりとしたイメージを紹介します。 非同期式回路の超入門 非同期式回路とはいったいど...
20Q2.01A

FPGA で始めるエッジディープラーニング (2)

みなさんこんにちは。この記事は、ACRi ブログの Deep Learning コースの第2回目です。 前回の記事では、Deep Learning とは何か、FPGA で Deep Learning するメリットについて話しました。このコースのこれ以降の記事では、FPGA をターゲットとした Deep Learning 用デザインの開発を始めていきます。特にこの記事では、まずは Python 上で学習コードを動作させ、FPGA 上で動かすためのネットワークモデルを作成します。 これ...
20Q2.05A

ホームサービスロボットにおける FPGA の応用例 (1): ホームサービスロボットとは

みなさんこんにちは。私達、九州工業大学 大学院 生命体工学研究科の脳型計算機システム研究室、および、ロボットプロジェクトチーム Hibikino-Musashi@Home では、普段、FPGA をニューラルネットワークに応用するための基礎研究から、ホームサービスロボットや自動運転車等の応用研究まで、幅広い研究分野に取り組んでいます。 本コースでは私達が取り組んでいるホームサービスロボットの事例を参考に、FPGA をロボットのような大規模なシステムの中でどのように活用できるか考えていきたい...
20Q2.04B

Synthesijer と高位合成ツールの作り方 (1)

みなさんこんにちは。この「Synthesijer と高位合成ツールの作り方」のシリーズでは、全5回を通じて Synthesijer をベースに FPGA 向けの簡単な高位合成処理系を作る方法を紹介していきます。例は Java ですが、お気に入りの言語向けの処理系を開発する足がかりとして利用できるように書いていくもりです。 第1回の今回は、高位合成ツールとは何かについて説明し、また、このシリーズのベースとする Synthesijer を紹介します。 高位合成ツールとは? FPG...
20Q2.03B

広がり続ける FPGA の応用と人工知能への活用 (1)

みなさん、こんにちは!最近は人工知能や AI、機械学習、ディープラーニングといった言葉をいろいろな場面で目にする機会が多くなりましたね。それと同時にもしかするとみなさんが今まであまり馴染みのなかった FPGA という単語に触れる機会も増えてきたのではないでしょうか。 本コースではこれから活躍が一層期待されるこれら2つのテクノロジーについてわかりやすく解説し、実際に使えるまでを目指したいと思います。 人工知能 (AI) を FPGA で実現する! AI を概観する 「人間...
20Q2.02A

IP の世界からこんにちは (1)

愛知工業大学の藤枝です。2020年第1クォーター (20Q1) のコース「シリアル通信で Hello, FPGA」に引き続き、FPGA 上のディジタル回路設計の基本を学ぶコースを担当します。 このコースでは、「シリアル通信で Hello, FPGA」で作成した文字送信回路をパッケージ化して、他の回路やチップ内のプロセッサと組み合せて使う方法について学びます。先のコースの最後で、作り込んだ回路のパーツは貴重な財産 (Interectural Property) である……と書きましたが、ま...
20Q2.01A

FPGA で始めるエッジディープラーニング (1)

みなさんこんにちは。このコースでは近年 AI に使われていることでも話題のディープラーニングを、FPGA を用いて実装する技術について紹介していきます。 このコースでは、ディープラーニングと FPGA 双方の理解を深めることを目標とし、以下の手順で FPGA 上で実際に動作するデザインを作成していきます。 C/C++ でディープラーニングによる推論を行うコード作成高位合成 (HLS: High Level Synthesis) により C/C++ コードをハードウェア記述言語に変換...
コース紹介

ACRi ブログの 20Q1 のコース紹介

ACRi ブログへようこそ。このブログはアダプティブコンピューティング研究推進体が運営しています。 アダプティブデバイスの FPGA を活用するシステム、活用基盤、研究成果などの記事を発信していきます。 アダプティブコンピューティング研究推進体 参加組織 (2020年5月) この記事では、2020年4月に始まったコースを紹介します。 ACRi ブログは、3か月 (クォーター) 単位で新しいコース (連載とも呼びます) を提供していきます。2020年の第1クォーター (20Q1...
20Q1.10B

FPGA オリジナルボード作成 ~ 失敗しないためのコンフィギュレーション回路

数年前、ある学会で「FPGA の基板を設計して実験装置を作ったけど、コンフィグがうまくいかなくて半年動いていない」というような話を聞きました。壮大な実験の中のメインとなる装置を作っているという研究報告的な発表だったのですが、よくそんな無駄な時間を過ごしているなと驚愕したものです。しかも周りで聞いている人たちも何も答えられない・・ 今回は失敗しないためのコンフィギュレーション回路について説明します。なお、語呂や語感のためにコンフィグといったりコンフィギュレーションといったり表記が揺れますが...
20Q1.09A

Vivado でのブロック図設計

作成する回路が大きくなってくると、回路を機能毎にモジュール化し、そのモジュール間の接続関係をブロック図で描くと分かりやすくなります。複数のモジュールを1つにまとめた階層構造にすることも可能です。 モジュール化する際のポイントは、その機能の中で後から変更したい機能をパラメータ化して、モジュールの外から入力できるようにすることです。例えば LED の点滅回路では、点滅周期を設定できるようにするなどが考えられます。 ここでは Vivado のインストールと使いかた (2) で作成した L...
タイトルとURLをコピーしました