C++

21Q1.04A

HPC アプリを FPGA 上で加速! (2) CG 法の FPGA への移植

みなさん、こんにちは。広島市立大学の窪田です。1回目のブログでは、「HPC アプリを...」というタイトルにもかかわらず、Vitis の template しか扱いませんでしたが、今回は、HPC アプリとして連立一次方程式の求解法である CG 法を取り上げ FPGA 向けに移植する手順を説明します。通常の CPU で動作する逐次版と FPGA へ移植したバージョンを github から取得できるようにしています。C/C++ 言語のプログラムを最小限の変更で Xilinx の FPGA 向けに移...
20Q2.01A

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

みなさんこんにちは。この記事は、ACRi ブログの Deep Learning コースの第5回目です。 前回の記事までで、畳み込み層、全結合層、プーリング層、活性化関数 ReLU の全ての C 実装が完成しました。今回の記事では、これらの層を結合して推論関数全体を作っていきます。 モデルの実装 第2回で作成した推論モデルの図を以下に再掲します。 最初に 1x28x28 の画像を入力し、その後 Conv2d -> ReLU -> MaxPool2d と...
20Q2.01A

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

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

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

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