dpu for convolutional neural network v1.1 dpu ip 製品ガイド …...dpu for convolutional neural...

41
DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 3 5 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資料に よっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情報につきま しては、必ず最新英語版をご参照ください。

Upload: others

Post on 31-Jul-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

DPU for Convolutional

Neural Network v1.1

DPU IP 製品ガイド

PG338 (v1.1) 2019 年 3 月 5 日

この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資料によっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情報につきましては、必ず最新英語版をご参照ください。

Page 2: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

DPU IP 製品ガイド japan.xilinx.com 2

PG338 (v1.1) 2019 年 3 月 5 日

改訂履歴

次の表に、この文書の改訂履歴を示します。

セクション 内容

2019 年 3 月 5 日、バージョン 1.1

付録 A: DPU ターゲット リファレンス デザイン DPU ターゲット リファレンス デザインに関する付録を追加。

2019 年 2 月 28 日、バージョン 1.0

初版 N/A

Page 3: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

DPU IP 製品ガイド japan.xilinx.com 3

PG338 (v1.1) 2019 年 3 月 5 日

目次

改訂履歴 ..................................................................................................................................................................................................... 2

IP の概要 .......................................................................................................................................................................................................... 5

はじめに ....................................................................................................................................................................................................... 5

第 1 章: 概要 .................................................................................................................................................................................................... 6

はじめに ....................................................................................................................................................................................................... 6

開発ツール .................................................................................................................................................................................................. 7

DPU を統合したシステム例 ........................................................................................................................................................................ 8

DNNDK ....................................................................................................................................................................................................... 8

ライセンスおよび注文情報 .......................................................................................................................................................................... 9

第 2 章: 製品仕様 .......................................................................................................................................................................................... 10

ハードウェア アーキテクチャ ..................................................................................................................................................................... 10

DPU_EU (DSP with Enhanced Utilization) ............................................................................................................................................... 11

レジスタ空間 .............................................................................................................................................................................................. 13

割り込み ..................................................................................................................................................................................................... 17

第 3 章: DPU のコンフィギュレーション .......................................................................................................................................................... 18

はじめに ..................................................................................................................................................................................................... 18

コンフィギュレーション オプション ............................................................................................................................................................. 19

各デバイスの DPU 性能 ........................................................................................................................................................................... 21

各モデルの性能 ........................................................................................................................................................................................ 22

必要な I/O 帯域幅 .................................................................................................................................................................................... 22

第 4 章: クロッキングとリセット ....................................................................................................................................................................... 23

はじめに ..................................................................................................................................................................................................... 23

クロック ドメイン .......................................................................................................................................................................................... 23

基準クロックの生成 .................................................................................................................................................................................... 24

リセット ........................................................................................................................................................................................................ 26

第 5 章: 開発フロー ........................................................................................................................................................................................ 27

MPSoC でのコアのカスタマイズと生成 ..................................................................................................................................................... 27

付録 A: DPU ターゲット リファレンス デザイン ............................................................................................................................................... 32

はじめに ..................................................................................................................................................................................................... 32

ハードウェア デザイン フロー .................................................................................................................................................................... 35

ソフトウェア デザイン フロー ...................................................................................................................................................................... 38

Page 4: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

目次

DPU IP 製品ガイド japan.xilinx.com 4

PG338 (v1.1) 2019 年 3 月 5 日

付録 B: 法的通知 ........................................................................................................................................................................................... 41

参考資料 ................................................................................................................................................................................................... 41

重要な法的通知 ........................................................................................................................................................................................ 41

Page 5: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

DPU IP 製品ガイド japan.xilinx.com 5

PG338 (v1.1) 2019 年 3 月 5 日

IP の概要

はじめに

ザイリンクス Deep Learning Processor Unit (DPU) は、たたみ込み

ニューラル ネットワーク (CNN) 専用の構成可能なエンジンです。演

算の並列度は、選択したデバイスおよびアプリケーションに応じて設

定できます。このコアには最適化された高効率な命令セットが用意

されています。また、VGG、ResNet、GoogLeNet、YOLO、SSD、

MobileNet、FPN など、ほとんどのたたみ込みニューラル ネットワー

クをサポートできます。

機能 • コンフィギュレーション レジスタおよびステータス レジスタへの

アクセス用に 1 つのスレーブ AXI インターフェイス。

• 命令アクセス用に 1 つのマスター インターフェイス。

• データ アクセス用に 64 または 128 ビットに構成可能な AXI マ

スター インターフェイスをサポート。

• チャネルごとに個別の構成が可能。

• オプションで割り込み要求生成をサポート。

• DPU の主な機能は次のとおりです。

o 構成可能なハードウェア アーキテクチャ: B512、

B800、B1024、B1152、B1600、B2304、B3136、

および B4096

o 最大 3 つまでのコアを設定可能

o Convolution、Deconvolution

o Max Pooling

o ReLu、Leaky ReLu

o Concat

o Elementwise

o Dilation

o Reorg

o Fully Connected Layer

o Batch Normalization

o Split

この DPU IP について

コアの概要

サポートされる

デバイス ファミリ

Zynq®-7000 SoC および

UltraScale+™ MPSoC ファミリ

サポートされる

ユーザー

インターフェイス

メモリ マップド AXI インターフェイス

リソース 第 3 章: DPU のコンフィギュレーション

参照

コアに含まれるもの

デザイン ファイル 暗号化済み RTL

サンプル デザイ

ン Verilog

制約ファイル ザイリンクス デザイン制約ファイル (.xdc)

サポートされる

ソフトウェア

ドライバー

PetaLinux に付属

テスト済みデザイン フロー

デザイン入力 Vivado® Design Suite

シミュレーション N/A

合成 Vivado 合成

サポート

ザイリンクス サポート ウェブ ページで提供

注記:

1. Linux OS およびドライバー サポートの情報は、DPU TRD また

は DNNDK を参照してください。

2. Zynq-7000 SoC で使用する場合は、ザイリンクス販売代理店に

お問い合わせください。

3. サポートされているツールのバージョンは、『Vivado Design Suite

ユーザー ガイド: リリース ノート、インストールおよびライセンス』

(UG973) を参照してください。

Page 6: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

DPU IP 製品ガイド japan.xilinx.com 6

PG338 (v1.1) 2019 年 3 月 5 日

第 1 章: 概要

はじめに

ザイリンクス Deep Learning Processor Unit (DPU) は、たたみ込みニューラル ネットワーク (CNN) 専用のプログラマブルなエンジンです。

DPU には、レジスタ設定、データ コントローラー、およびたたみ込み演算の各モジュールが含まれます。また、DPU には専用の命令セッ

トが用意されており、多くのたたみ込みニューラル ネットワークを効率よく実行できます。DPU で使用できるたたみ込みニューラル ネット

ワークには、VGG、ResNet、GoogLeNet、YOLO、SSD、MobileNet、FPN などがあります。

DPU IP は、一部の Zynq®-7000 SoC および Zynq UltraScale™+ MPSoC デバイスのプログラマブル ロジック (PL) にブロックとして統合

し、プロセッシング システム (PS) と直接接続できます。DPU を使用する前に、DPU からアクセス可能なメモリ アドレスに命令と入力画像

データを格納しておく必要があります。また、DPU を動作させるには、アプリケーション プロセッシング ユニット (APU) で割り込みを処理

してデータ転送を調整する必要もあります。

図 1に、DPU の最上位ブロック図を示します。

Host

CPU

RAM

High Speed Data Tube

DPU

High

Performance

Scheduler

Instruction

Fetch UnitGlobal Memory Pool

Hybrid Computing Array

PE PE PE PE

X22327-022019

図 1: 最上位ブロック図

Page 7: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

第 1 章: 概要

DPU IP 製品ガイド japan.xilinx.com 7

PG338 (v1.1) 2019 年 3 月 5 日

開発ツール

DPU をプロジェクトに統合するには、ザイリンクス Vivado Design Suite を使用します。Vivado Design Suite 2018.2 またはそれ以降の

バージョンを推奨します。それ以前のバージョンの Vivado も使用できます。詳細は、ザイリンクス販売代理店にお問い合わせください。

デバイス リソース

DPU のロジック リソースは、ザイリンクス UltraScale+ MPSoC および Zynq-7000 デバイスにスケーラブルに最適化されています。リソース

使用量の詳細は、『第 3 章: DPU のコンフィギュレーション』を参照してください。

DPU の実行方法

DPU を動作させるには、ザイリンクス ディープ ニューラル ネットワーク開発キット (DNNDK) ツールチェーンに含まれるドライバーが必要

です。

開発者リソースはザイリンクスのウェブサイトから無償でダウンロードできます。

https://japan.xilinx.com/products/design-tools/ai-inference/ai-developer-hub.html#edge

DNNDK ツールを使用して DPU を実行する基本的な手順は、『DNNDK ユーザー ガイド』(UG1327) を参照してください。基本的な開

発フローは、次の図のとおりです。まず、Vivado を使用してビットストリームを生成します。次に、ビットストリームをターゲット ボードにダウ

ンロードして、DPU ドライバーをインストールします。DPU ドライバーおよび依存関係のあるライブラリのインストール手順は、『DNNDK

ユーザー ガイド』 (UG1327) を参照してください。

Hardware Platform

DPU Driver

Lib

API

Vivado

DPU

Example Third Party

bitf ile

X22328-022019

図 2: 基本的な開発フロー

Page 8: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

第 1 章: 概要

DPU IP 製品ガイド japan.xilinx.com 8

PG338 (v1.1) 2019 年 3 月 5 日

DPU を統合したシステム例

次の図に、ザイリンクス UltraScale+ MPSoC にカメラ入力を接続したシステム例のブロック図を示します。システムに統合された DPU は

AXI インターコネクト経由で画像分類、物体検出、セマンティック セグメンテーションなどの深層学習の推論タスクを実行します。

DPUCamera

AXI Interconnect

Controller DDR

ARM R5

DisplayPort

USB3.0

SATA3.1

PCIe Gen2

GigE

USB2.0

UART

SPI

Quad SPI

NAND

SD

demosaic gammaColor_

conversion

DMAAXI

Interconnect

AXI

Interconnect

MIPI

CIS2

AXI Interconnect

MIPI

CIS2

X22329-022019

図 3: DPU を統合したシステム例

DNNDK

DNNDK (ディープ ニューラル ネットワーク開発キット) は、DPU を使用した推論向けのフルスタック深層学習ツールチェーンです。

図 4に示すように、DNNDK は DECENT (ディープ コンプレッション ツール)、DNNC (ディープ ニューラル ネットワーク コンパイラ)、

ニューラル ネットワーク ランタイム (N2Cube)、および DPU プロファイラーで構成されます。

DECENT N2Cube

DNNC Prof iler

OS

Host CPU DPU

X22330-022019

図 4: DNNDK ツールチェーン

DPU の命令は、DNNDK を使用してオフラインで生成します。図 5に、DPU を使用してターゲット ハードウェア プラットフォーム上で深

層学習アプリケーションを実行する際の階層を示します。

Page 9: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

第 1 章: 概要

DPU IP 製品ガイド japan.xilinx.com 9

PG338 (v1.1) 2019 年 3 月 5 日

Industry-standard

LibrariesLoader

Operating System

Host CPU

Deep Learning App

(DPU-accelerated)

Prof iler Libarary

DPU Driver

DPU

User Space

Kernel Space

Hardware Platform

X22331-022019

図 5: アプリケーション実行階層

ライセンスおよび注文情報

この IP モジュールは、ザイリンクス エンドユーザー ライセンス規約のもと追加コストなしで提供されています。

この IP およびその他の IP モジュールに関する情報は、IP コアのページから入手できます。その他のザイリンクス IP モジュールおよび

ツールの価格や提供状況については、ザイリンクス販売代理店にお問い合わせください。

Page 10: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

DPU IP 製品ガイド japan.xilinx.com 10

PG338 (v1.1) 2019 年 3 月 5 日

第 2 章: 製品仕様

ハードウェア アーキテクチャ

図 6に、DPU のハードウェア アーキテクチャの詳細を示します。起動後、DPU はオフチップ メモリから命令をフェッチおよび解析し、演

算エンジンを動作させます。命令は、高度な最適化機能を持つ DNNDK コンパイラによって生成されます。

中間データ、入力データ、および出力データのバッファーとしてザイリンクス デバイスの大容量オンチップ メモリを使用することにより、高

い効率を実現しています。メモリ帯域幅を抑えるため、なるべく多くのデータを再利用します。演算エンジンには、多段パイプライン デザ

インを使用しています。一般的なアクセラレータ同様、演算アレイ (PE) はザイリンクス デバイスに含まれる乗算器、加算器、アキュムレー

タなどの構築ブロックを最大限に利用します。

Inst

ruction

Sched

ule

r

CPU (DNNDK) Memory Controller

Bus

Fetcher

Decoder

Dispatcher

On

-Chip

Buff

er

Contr

olle

rData Mover

On-Chip BRAM

BRAM Reader/Writer

Com

puting

Engin

e

Conv

Engin

e

Mis

c

Engin

e

PE PE PE

Processing System (PS)

Programmable Logic (PL)

Off-Chip Memory

X22332-022019

図 6: DPU のハードウェア アーキテクチャ

Page 11: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

第 2 章: 製品仕様

DPU IP 製品ガイド japan.xilinx.com 11

PG338 (v1.1) 2019 年 3 月 5 日

DPU_EU (DSP 使用率を高めた DPU)

以前のバージョンの DPU は、汎用ロジックと DSP スライスが同じクロック ドメインで動作していました。ただし技術的には、DSP をより高

い周波数で動作させることが可能です。DPU における DSP スライスの使用率を高める目的で、改良型バージョンとして設計されたのが

DPU_EU です。

「DPU_EU」の EU とは Enhanced Utilization の略であり、DSP スライスの使用率を高めた DPU を意味します。DSP の DDR 手法を利用

して、デバイスで達成可能な性能を高めています。したがって、DPU には汎用ロジック用と DSP スライス用に 2 つの入力クロックが必要

です。図 7に、DPU と DPU_EU の違いを示します。

特に記載のない限り、この資料で「DPU」と称しているものは DPU_EU を指しています。

IMG ram

IMG ram

WGT ram

A

D

B B

RES

+

×

DSP48 Slice

A+D

M

clk1x

IMG ram

IMG ram

WGT ram

A

D

B

+

×

DSP48 Slice

A+D

M

clk2x

WGT ram

RES0

DLY

RES1

OUT0

OUT1

+

A

DLY

D

DLY

B0

Async

B1

Async

D

Async

A

Async

BB

SEL

PCIN

P

PCOUT

PCOUT

RES0

clk1x clk1x

X22333-022019

図 7: DPU と DPU_EU の違い

ポートの説明

次の図に、DPU の最上位インターフェイスを示します。

図 8: DPU_EU IP のポート

Page 12: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

第 2 章: 製品仕様

DPU IP 製品ガイド japan.xilinx.com 12

PG338 (v1.1) 2019 年 3 月 5 日

表 1に、DPU の I/O 信号とその説明を示します。

表 1: DPU の信号の説明

信号名 インターフェイス

タイプ

幅 I/O 説明

S_AXI メモリ マップド AXI

スレーブ インターフェイス

32 I/O レジスタ アクセス用の 32 ビット メモリ マップド

AXI インターフェイス。

s_axi_aclk クロック 1 I S_AXI 用の AXI クロック入力。

s_axi_aresetn リセット 1 I S_AXI のリセット (アクティブ Low)。

dpu_clk_2x クロック 1 I DPU の DSP ユニットで使用する入力クロック。

周波数は m_axi_dpu_aclk の 2 倍です。

dpu_2x_resetn リセット 1 I DSP ユニットのリセット (アクティブ Low)。

m_axi_dpu_aclk クロック 1 I DPU の汎用ロジックで使用する入力クロック。

m_axi_dpu_aresetn リセット 1 I DPU の汎用ロジックのリセット (アクティブ

Low)。

DPUx_M_AXI_INSTR メモリ マップド AXI マス

ター インターフェイス

32 I/O DPU の命令に使用する 32 ビット メモリ マップ

ド AXI インターフェイス。

DPUx_M_AXI_DATA0 メモリ マップド AXI マス

ター インターフェイス

128 I/O DPU のデータ フェッチに使用する

128 ビット メモリ マップド AXI インターフェイ

ス。

DPUx_M_AXI_DATA1 メモリ マップド AXI マス

ター インターフェイス

128 I/O DPU のデータ フェッチに使用する

128 ビット メモリ マップド AXI インターフェイ

ス。

dpu_interrupt 割り込み 1 ~ 3 O DPU からの割り込み出力 (アクティブ High)。

データ幅は、DPU の数によって決まります。

注記:

1. 入力ポートしか必要ない場合は、ブロック図でポートを編集してポート インターフェイス レベルで宣言できます。

Page 13: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

第 2 章: 製品仕様

DPU IP 製品ガイド japan.xilinx.com 13

PG338 (v1.1) 2019 年 3 月 5 日

レジスタ空間

DPU IP は、レジスタをプログラマブル ロジックに実装します。表 2に、DPU IP のレジスタを示します。これらのレジスタには、S_AXI イン

ターフェイス経由でホスト CPU からアクセスできます。

Reg_dpu_reset

DPU IP に統合されたすべての DPU コアのリセットを制御します。このレジスタの下位 3 ビットで、最大 3 つの DPU コアのリセットをそれ

ぞれ制御します。これらのリセット信号はいずれもアクティブ High です。表 2に、Reg_dpu_reset の詳細を示します。

表 2: Reg_dpu_reset

レジスタ アドレス

オフセット

幅 タイプ 説明

Reg_dpu_reset 0x004 32 R/W [0] – DPU コア 0 のリセット

[1] – DPU コア 1 のリセット

[2] – DPU コア 2 のリセット

Reg_dpu_isr

DPU IP に統合されたすべての DPU コアの割り込みステータスを表します。このレジスタの下位 3 ビットで、最大 3 つの DPU コアの割り

込みステータスをそれぞれ示します。表 3に、Reg_dpu_irq の詳細を示します。

表 3: Reg_dpu_isr

レジスタ アドレス

オフセット

幅 タイプ 説明

Reg_dpu_isr 0x608 32 R [0] – DPU コア 0 の割り込みステータス

[1] – DPU コア 1 の割り込みステータス

[2] – DPU コア 2 の割り込みステータス

Page 14: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

第 2 章: 製品仕様

DPU IP 製品ガイド japan.xilinx.com 14

PG338 (v1.1) 2019 年 3 月 5 日

Reg_dpu_start

DPU コアの開始信号です。各 DPU コアに 1 つずつ開始レジスタがあります。表 4に、Reg_dpu_start の詳細を示します。

表 4: Reg_dpu_start

レジスタ アドレス

オフセット

幅 タイプ 説明

Reg_dpu0_start 0x220 32 R/W DPU コア 0 の開始を制御します。

Reg_dpu1_start 0x320 32 R/W DPU コア 1 の開始を制御します。

Reg_dpu2_start 0x420 32 R/W DPU コア 2 の開始を制御します。

Reg_dpu_instr_addr

DPU コアの命令アドレスを示すために使用します。このレジスタには、Reg_dpu0_instr_addr、Reg_dpu1_instr_addr、および

Reg_dpu2_instr_addr の 3 つがあります。表 5に、Reg_dpu_instr_addr の詳細を示します。

表 5: Reg_dpu_instr_addr

レジスタ アドレス

オフセット

幅 タイプ 説明

Reg_dpu0_instr_addr 0x20c 32 R/W [0] – DPU コア 0 に対する外部メモリに格納し

た命令の開始アドレス。

Reg_dpu1_instr_addr 0x30c 32 R/W [0] – DPU コア 1 に対する外部メモリに格納し

た命令の開始アドレス。

Reg_dpu2_instr_addr 0x40c 32 R/W [0] – DPU コア 2 に対する外部メモリに格納し

た命令の開始アドレス。

Reg_dpu_base_addr

DPU の演算に使用する入力画像とパラメーターの外部メモリ アドレスを示すために使用します。DPU のベース アドレスの幅は 40 ビット

で、最大 1TB のアドレス空間をサポートできます。ただしレジスタはすべて 32 ビット幅のため、40 ビット幅のベース アドレスには 2 つの

レジスタが必要です。Reg_dpu0_base_addr0_l は DPU コア 0 のベース アドレス 0 の下位 32 ビットを表し、Reg_dpu0_base_addr0_h は

DPU コア 0 のベース アドレス 0 の上位 8 ビットを表します。

DPU ベース アドレスのグループは各 DPU コアに対して 8 つあり、最大で 3 つの DPU コアに対して 24 の DPU ベース アドレス グルー

プがあります。表 6 に、Reg_dpu_base_addr の詳細を示します。

Page 15: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

第 2 章: 製品仕様

DPU IP 製品ガイド japan.xilinx.com 15

PG338 (v1.1) 2019 年 3 月 5 日

表 6: Reg_dpu_base_addr

レジスタ アドレス

オフセット

幅 タイプ 説明

Reg_dpu0_base_addr0_l 0x224 32 R/W DPU コア 0 のベース アドレス 0 の下位 32 ビット。

Reg_dpu0_base_addr0_h 0x228 32 R/W このレジスタの下位 8 ビットで、DPU コア 0 のベース アドレス 0

の上位 8 ビットを表します。

Reg_dpu0_base_addr1_l 0x22C 32 R/W DPU コア 0 のベース アドレス 1 の下位 32 ビット。

Reg_dpu0_base_addr1_h 0x230 32 R/W このレジスタの下位 8 ビットで、DPU コア 0 のベース アドレス 1

の上位 8 ビットを表します。

Reg_dpu0_base_addr2_l 0x234 32 R/W DPU コア 0 のベース アドレス 2 の下位 32 ビット。

Reg_dpu0_base_addr2_h 0x238 32 R/W このレジスタの下位 8 ビットで、DPU コア 0 のベース アドレス 2

の上位 8 ビットを表します。

Reg_dpu0_base_addr3_l 0x23C 32 R/W DPU コア 0 のベース アドレス 3 の下位 32 ビット。

Reg_dpu0_base_addr3_h 0x240 32 R/W このレジスタの下位 8 ビットで、DPU コア 0 のベース アドレス 3

の上位 8 ビットを表します。

Reg_dpu0_base_addr4_l 0x244 32 R/W DPU コア 0 のベース アドレス 4 の下位 32 ビット。

Reg_dpu0_base_addr4_h 0x248 32 R/W このレジスタの下位 8 ビットで、DPU コア 0 のベース アドレス 4

の上位 8 ビットを表します。

Reg_dpu0_base_addr5_l 0x24C 32 R/W DPU コア 0 のベース アドレス 5 の下位 32 ビット。

Reg_dpu0_base_addr5_h 0x250 32 R/W このレジスタの下位 8 ビットで、DPU コア 0 のベース アドレス 5

の上位 8 ビットを表します。

Reg_dpu0_base_addr6_l 0x254 32 R/W DPU コア 0 のベース アドレス 6 の下位 32 ビット。

Reg_dpu0_base_addr6_h 0x258 32 R/W このレジスタの下位 8 ビットで、DPU コア 0 のベース アドレス 6

の上位 8 ビットを表します。

Reg_dpu0_base_addr7_l 0x25C 32 R/W DPU コア 0 のベース アドレス 7 の下位 32 ビット。

Reg_dpu0_base_addr7_h 0x260 32 R/W このレジスタの下位 8 ビットで、DPU コア 0 のベース アドレス 7

の上位 8 ビットを表します。

Reg_dpu1_base_addr0_l 0x324 32 R/W DPU コア 1 のベース アドレス 0 の下位 32 ビット。

Reg_dpu1_base_addr0_h 0x328 32 R/W このレジスタの下位 8 ビットで、DPU コア 1 のベース アドレス 0

の上位 8 ビットを表します。

Reg_dpu1_base_addr1_l 0x32C 32 R/W DPU コア 1 のベース アドレス 1 の下位 32 ビット。

Reg_dpu1_base_addr1_h 0x330 32 R/W このレジスタの下位 8 ビットで、DPU コア 1 のベース アドレス 1

の上位 8 ビットを表します。

Reg_dpu1_base_addr2_l 0x334 32 R/W DPU コア 1 のベース アドレス 2 の下位 32 ビット。

Reg_dpu1_base_addr2_h 0x338 32 R/W このレジスタの下位 8 ビットで、DPU コア 1 のベース アドレス 2

の上位 8 ビットを表します。

Reg_dpu1_base_addr3_l 0x33C 32 R/W DPU コア 1 のベース アドレス 3 の下位 32 ビット。

Reg_dpu1_base_addr3_h 0x340 32 R/W このレジスタの下位 8 ビットで、DPU コア 1 のベース アドレス 3

の上位 8 ビットを表します。

Reg_dpu1_base_addr4_l 0x344 32 R/W DPU コア 1 のベース アドレス 4 の下位 32 ビット。

Reg_dpu1_base_addr4_h 0x348 32 R/W このレジスタの下位 8 ビットで、DPU コア 1 のベース アドレス 4

の上位 8 ビットを表します。

Page 16: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

第 2 章: 製品仕様

DPU IP 製品ガイド japan.xilinx.com 16

PG338 (v1.1) 2019 年 3 月 5 日

レジスタ アドレス

オフセット

幅 タイプ 説明

Reg_dpu1_base_addr5_l 0x34C 32 R/W DPU コア 1 のベース アドレス 5 の下位 32 ビット。

Reg_dpu1_base_addr5_h 0x350 32 R/W このレジスタの下位 8 ビットで、DPU コア 1 のベース アドレス 5

の上位 8 ビットを表します。

Reg_dpu1_base_addr6_l 0x354 32 R/W DPU コア 1 のベース アドレス 6 の下位 32 ビット。

Reg_dpu1_base_addr6_h 0x358 32 R/W このレジスタの下位 8 ビットで、DPU コア 1 のベース アドレス 6

の上位 8 ビットを表します。

Reg_dpu1_base_addr7_l 0x35C 32 R/W DPU コア 1 のベース アドレス 7 の下位 32 ビット。

Reg_dpu1_base_addr7_h 0x360 32 R/W このレジスタの下位 8 ビットで、DPU コア 1 のベース アドレス 7

の上位 8 ビットを表します。

Reg_dpu2_base_addr1_l 0x42C 32 R/W DPU コア 2 のベース アドレス 1 の下位 32 ビット。

Reg_dpu2_base_addr1_h 0x430 32 R/W このレジスタの下位 8 ビットで、DPU コア 2 のベース アドレス 1

の上位 8 ビットを表します。

Reg_dpu2_base_addr2_l 0x434 32 R/W DPU コア 2 のベース アドレス 2 の下位 32 ビット。

Reg_dpu2_base_addr2_h 0x438 32 R/W このレジスタの下位 8 ビットで、DPU コア 2 のベース アドレス 2

の上位 8 ビットを表します。

Reg_dpu2_base_addr3_l 0x43C 32 R/W DPU コア 2 のベース アドレス 3 の下位 32 ビット。

Reg_dpu2_base_addr3_h 0x440 32 R/W このレジスタの下位 8 ビットで、DPU コア 2 のベース アドレス 3

の上位 8 ビットを表します。

Reg_dpu2_base_addr4_l 0x444 32 R/W DPU コア 2 のベース アドレス 4 の下位 32 ビット。

Reg_dpu2_base_addr4_h 0x448 32 R/W このレジスタの下位 8 ビットで、DPU コア 2 のベース アドレス 4

の上位 8 ビットを表します。

Reg_dpu2_base_addr5_l 0x44C 32 R/W DPU コア 2 のベース アドレス 5 の下位 32 ビット。

Reg_dpu2_base_addr5_h 0x450 32 R/W このレジスタの下位 8 ビットで、DPU コア 2 のベース アドレス 5

の上位 8 ビットを表します。

Reg_dpu2_base_addr6_l 0x454 32 R/W DPU コア 2 のベース アドレス 6 の下位 32 ビット。

Reg_dpu2_base_addr6_h 0x458 32 R/W このレジスタの下位 8 ビットで、DPU コア 2 のベース アドレス 6

の上位 8 ビットを表します。

Reg_dpu2_base_addr7_l 0x45C 32 R/W DPU コア 2 のベース アドレス 7 の下位 32 ビット。

Reg_dpu2_base_addr7_h 0x460 32 R/W このレジスタの下位 8 ビットで、DPU コア 2 のベース アドレス 7

の上位 8 ビットを表します。

Page 17: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

第 2 章: 製品仕様

DPU IP 製品ガイド japan.xilinx.com 17

PG338 (v1.1) 2019 年 3 月 5 日

割り込み

1 つの DPU タスクが完了すると、DPU から割り込みが生成されてタスクの完了を通知します。DPU コア 0 の DPU タスクが開始すると、

Reg_dpu0_start が High (アクティブ) になります。この DPU タスクが完了すると、DPU は割り込みを送信し、Reg_dpu_isr レジスタの

1 ビットが 1 にセットされます。Reg_dpu_isr のどのビットがセットされるかは、DPU コアの番号ごとに決まっています。たとえば DPU コア 1

がタスクを完了し、DPU コア 0 がまだタスクを実行中の場合、Reg_dpu_isr は 2 となります (ビット 0 = 0、ビット 1 = 1)。

dpu_interrupt のデータ幅は、DPU コアの数によって決まります。DPU_NUM パラメーターを 2 に設定すると、DPU IP には 2 つの DPU

コアが統合され、dpu_interrupt 信号のデータ幅は 2 ビットとなります。この場合、下位ビットが DPU コア 0 の割り込みを表し、上位ビット

が DPU コア 1 の割り込みを表します。

DPU と PS の割り込み接続は、デバイス ツリー ファイルに記述されています。このファイルには、PS に接続された DPU の割り込み番号

が示されています。図 9に、推奨する接続を示します。

図 9: DPU 割り込みの推奨接続

注記:

1. DNNDK パッケージを使用して DPU を実行する場合、dpu_interrupt を PS の irq 信号の 10 番目のビットに接続してください。たとえば

DPU_NUM を 2 に設定した場合、2 ビットの dpu_interrupt を PS の irq10 と irq11 に接続します。

2. irq7 ~ irq0 が pl_ps_irq0[7:0] に対応します。

3. irq15 ~ irq8 が pl_ps_irq1[7:0] に対応します。

Page 18: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

DPU IP 製品ガイド japan.xilinx.com 18

PG338 (v1.1) 2019 年 3 月 5 日

第 3 章: DPU のコンフィギュレーション

はじめに

DPU IP には、リソースを最適化したり異なる機能をサポートしたりするためのユーザー設定可能なパラメーターがあります。使用可能な

プログラマブル ロジック リソースに応じて、DSP スライス、LUT、ブロック RAM、および UltraRAM の使用量が最適となるように設定でき

ます。使用する DPU コアの数を指定するオプションもあります。

次に、DPU でサポートされるディープ ニューラル ネットワークと関連パラメーターを示します。

表 7: DPU でサポートされる DNN の機能とパラメーター

機能 説明

Convolution

カーネル サイズ W: 1 ~ 16 H: 1 ~ 16

ストライド W: 1 ~ 4 H: 1 ~ 4

パディング_w 1: kernel_w-1

パディング_h 1: kernel_h-1

入力サイズ 任意の値

入力チャネル 1 ~ 256*channel_parallel

出力チャネル 1 ~ 256*channel_parallel

アクティベーション ReLU および Leaky ReLU

ディレーション dilation * input_channel <= 256 * channel_parallel &&

stride_w == 1 && stride_h == 1

Deconvolution

カーネル サイズ W: 1 ~ 16 H: 1 ~ 16

ストライド_w stride_w * output_channel <= 256 * channel_parallel

ストライド_h 任意の値

パディング_w 1: kernel_w-1

パディング_h 1: kernel_h-1

入力サイズ 任意の値

入力チャネル 1 ~ 256 * channel_parallel

出力チャネル 1 ~ 256 * channel_parallel

アクティベーション ReLU および Leaky ReLU

Max Pooling

カーネル サイズ W: 1 ~ 16 H: 1 ~ 16

ストライド W: 1 ~ 4 H: 1 ~ 4

パディング W: 1 ~ 4 H: 1 ~ 4

Element Wise 入力チャネル 1 ~ 256*channel_parallel

入力サイズ 任意の値

Concat 出力チャネル 1 ~ 256*channel_parallel

Reorg ストライド stride * stride * input_channel <= 256 * channel_parallel

Page 19: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

第 3 章: DPU のコンフィギュレーション

DPU IP 製品ガイド japan.xilinx.com 19

PG338 (v1.1) 2019 年 3 月 5 日

機能 説明

FC 入力チャネル Input_channel <= 2048*channel_parallel

出力チャネル 任意の値

注記:

1. パラメーター channel_parallel は、DPU のアーキテクチャによって決まります。たとえば、DPU-B1152 の channel_parallel は 12 で、

DPU-B4096 の channel_parallel は 16 です。

コンフィギュレーション オプション

DPU IP は、DPU コアの数、DPU たたみ込みアーキテクチャ、DSP カスケード、DSP 使用量、UltraRAM 使用量のオプションを設定して

構成できます。これらのオプションにより、DPU IP で使用する DSP スライス、LUT、ブロック RAM、および UltraRAM の量を調整できま

す。図 10 に、DPU の設定を示します。

図 10: DPU の設定

DPU コアの数

DPU コアは、1 つの IP に 3 つまで含めることができます。複数の DPU コアを使用すると、より高い性能が得られますが、使用するプログ

ラマブル ロジック リソースも多くなります。

4 個以上のコアを統合する必要がある場合は、ザイリンクス販売代理店にお問い合わせください。

DPU のたたみ込みアーキテクチャ

DPU IP は、たたみ込みアーキテクチャを選択できます。このアーキテクチャは、たたみ込みユニットの並列度に関係します。DPU IP

のアーキテクチャには、B512、B800、B1024、B1152、B1600、B2304、B3136、および B4096 を選択できます。

DPU のたたみ込みアーキテクチャには、ピクセル並列度、入力チャネル並列度、出力チャネル並列度の 3 つの次元の並列度がありま

す。入力チャネル並列度は、常に出力チャネル並列度と同じです。必要なプログラマブル ロジック リソースは、たたみ込みアーキテク

チャによって異なります。大規模なたたみ込みアーキテクチャの方が性能は高くなりますが、使用するリソース量も多くなります。表 8に、

各たたみ込みアーキテクチャの並列度を示します。

Page 20: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

第 3 章: DPU のコンフィギュレーション

DPU IP 製品ガイド japan.xilinx.com 20

PG338 (v1.1) 2019 年 3 月 5 日

表 8: 各たたみ込みアーキテクチャの並列度

たたみ込み

アーキテクチャ

ピクセル並列度

(PP)

入力チャネル並列度

(ICP)

出力チャネル並列度

(OCP)

ピーク OPS

(1 クロックあたりの

演算実行回数)

B512 4 8 8 512

B800 4 10 10 800

B1024 8 8 8 1024

B1152 4 12 12 1150

B1600 8 10 10 1600

B2304 8 12 12 2304

B3136 8 14 14 3136

B4096 8 16 16 4096

注記:

1. たたみ込みアレイは、1 クロック サイクルで乗算と累算の 2 演算を完了します。したがって、ピーク OPS = PP*ICP*OCP*2 です。

DSP カスケード

DSP48E スライス カスケード チェーンの最大長を選択できます。通常、カスケード チェーンを長くするとロジック リソースの使用が抑

えられますが、タイミングが悪化することがあります。カスケード チェーンを短くするとファブリック リソースの使用量が増えることがあ

り、小型デバイスではコストが大きくなります。最初は中間値の 4 を選択し、タイミングを満たすことができない場合は、反復により値を

調整することを推奨します。

DSP 使用量

DPU たたみ込みモジュールの累算に DSP48E スライスを使用するかどうかを選択できます。DSP の使用量を最小に設定した場

合、DPU IP はたたみ込みの乗算にのみ DSP スライスを使用します。DSP の使用量を最大に設定した場合は、乗算と累算の両方

に DSP スライスが使用されます。この場合は DSP スライスの使用量が増え、LUT の使用量が減ります。表 9に、DSP の使用量を

最大に設定した場合と最小に設定した場合のロジック使用量をそれぞれ示します。このデータは、ザイリンクス ZCU102 プラット

フォームで Depthwise Conv、Average Pooling、Relu6、および Leaky Relu の機能を使用しない条件でテストしたものです。

表 9: DSP 使用量とリソースの関係

DSP 使用量 = 最大 DSP 使用量 = 最小

アーキ

テクチャ LUT レジスタ BRAM DSP

アーキ

テクチャ LUT レジスタ BRAM DSP

B512 20177 31782 69.5 98 B512 20759 33572 69.5 66

B800 20617 35065 87 142 B800 21050 33752 87 102

B1024 27377 46241 101.5 194 B1024 29155 49823 101.5 130

B1152 28698 46906 117.5 194 B1152 30043 49588 117.5 146

B1600 30877 56267 123 282 B1600 33130 60739 123 202

B2304 34379 67481 161.5 386 B2304 37055 72850 161.5 290

B3136 38555 79867 203.5 506 B3136 41714 86132 203.5 394

B4096 40865 92630 249.5 642 B4096 44583 99791 249.5 514

Page 21: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

第 3 章: DPU のコンフィギュレーション

DPU IP 製品ガイド japan.xilinx.com 21

PG338 (v1.1) 2019 年 3 月 5 日

UltraRAM

一部の Zynq MPSoC デバイスは、オンチップ メモリとしてブロック RAM (BRAM) と UltraRAM の両方を揃えています。DPU IP はデフォ

ルトで BRAM を使用しますが、利用可能なメモリ リソース量によっては、BRAM の代わりに UltraRAM を使用することもできます。図 10

の [UltraRAM Use per DPU] に入力される値は、実際の使用量とは異なることがあります。これは、DPU アーキテクチャによって DPU の

最小キャッシュ ユニットで 2 または 3 個の UltraRAM が必要となるためです。実際の使用量は、図 11の画面に表示されます。

図 11: DPU構成の [Summary]

各デバイスの DPU 性能

表 10 に、各デバイスにおける DPU のピーク性能を示します。

表 10: 各デバイスにおける DPU_EU の性能 (GOPS)

デバイス DPU の構成 周波数 (MHz) ピーク性能

Z7020 B1152x1 200 230GOPS

ZU2 B1152x1 370 426GOPS

ZU3 B2304x1 370 852GOPS

ZU5 B4096x1 350 1.4TOPS

ZU7EV B4096x2 330 2.7TOPS

ZU9 B4096x3 333 4.1TOPS

Page 22: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

第 3 章: DPU のコンフィギュレーション

DPU IP 製品ガイド japan.xilinx.com 22

PG338 (v1.1) 2019 年 3 月 5 日

各モデルの性能

このセクションでは、一部のモデルの性能を参考として示します。表 11に示した結果は、ザイリンクス ZCU102 ボードと DNNDK v2.08 を

使用し、3 つの B4096_EU コアを 333MHz (DSP スライスは 666MHz) で動作させて測定した値です。

表 11: 各モデルの性能

ネットワーク モデル ワークロード

(1 画像あたりの GOPS)

入力画像解像度 フレーム レート

(FPS)

Inception-v1 3.2 224*224 405

ResNet50 7.7 224*224 175

SqueezeNet 0.698 224*224 1048

Tiny-YOLO 6.97 448*448 220

YOLO-V2 82.5 640*640 24

プルーニング済み

YOLO-V2

18.4 640*640 120

YOLO-V3 53.7 512*256 43

プルーニング済み

YOLO-V3

4 512*256 115

注記:

1. プルーニング済みモデルは、ザイリンクスのプルーニング ツールで生成したものです。

必要な I/O 帯域幅

必要な I/O 帯域幅は、DPU で実行するニューラル ネットワークごとに異なります。また、同じニューラル ネットワークでも、レイヤーによっ

て I/O 帯域幅の要件は異なります。1 つの DPU コアをフル スピードで動作させ、いくつかのニューラル ネットワークで必要な I/O 帯域幅

(全レイヤーの平均値) をテストしました。表 12に、3 つのニューラル ネットワークで必要な I/O 帯域幅のピーク値と平均値を示します。こ

の表には、よく使用される 2 つの DPU アーキテクチャ (B1152、B4096) の数値のみを示しています。複数の DPU コアを並列に動作させ

た場合、I/O 帯域幅の制限により、各コアをフル スピードで動作させることができなくなることがあります。

表 12: DPU-B1152 および DPU-B4096 で必要な I/O 帯域幅

ネットワーク モデル DPU-B1152 DPU-4096

ピーク (MB/s) 平均 (MB/s) ピーク (MB/s) 平均 (MB/s)

Inception-v1 1704 890 4626 2474

Resnet50 2052 1017 5298 3132

SSD 1516 684 5724 2049

プルーニング済み

YOLO-V3 2076 986 6453 3290

1 個の DPU コアをフル スピードで動作させる必要がある場合は、ピーク I/O 帯域幅の要件を満たす必要があります。I/O 帯域幅は、主

に AXI マスター インターフェイス (Dpu0_M_AXI_DATA0 および Dpu0_M_AXI_DATA1) 経由でのデータ アクセスに使用します。

Page 23: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

DPU IP 製品ガイド japan.xilinx.com 23

PG338 (v1.1) 2019 年 3 月 5 日

第 4 章: クロッキングとリセット

はじめに

DPU IP には 3 つのクロック ドメイン (レジスタ、データ コントローラー、演算ユニット) があります。3 つの入力クロックは、要件に応じ

てユーザーが設定できます。したがって、3 つの入力クロックに対応するリセットを正しく設定する必要があります。

クロック ドメイン

図 12に、3 つのクロック ドメインを示します。

PL

s_axi_clk

DPU

Register Configure

Data Controller

Calculation Unit

m_axi_dpu_aclk

dpu_2x_aclk

X22334-022019

図 12: DPU のクロック ドメイン

レジスタ クロック

レジスタ設定モジュールには、s_axi_clk 入力を使用します。このモジュールは、S_AXI インターフェイス経由で DPU コンフィギュレー

ション データを受信します。この S_AXI に関連するクロックが s_axi_clock です。DPU のコンフィギュレーション レジスタは非常に低速の

周波数で更新され、これらレジスタのほとんどはタスク開始時に設定されます。s_axi_clock の周波数は、100MHz に設定することを推奨

します。

データ コントローラー クロック

データ コントローラー モジュールの主な役割は、DPU IP のデータフローをスケジューリングすることです。データ コントローラー モ

ジュールは m_axi_dpu_aclk で動作します。DPU と外部メモリ間のデータ転送は、データ コントローラー クロック ドメインで実行されま

す。このため、m_axi_dpu_aclk は DPU IP の AXI_MM マスター インターフェイス用の AXI クロックでもあります。m_axi_dpu_aclk と

AXI_MM マスター クロックを接続する必要があります。

演算クロック

演算ユニット モジュールの DSP スライスは、データ コントローラー モジュールの 2 倍のクロック周波数の dpu_clk_2x ドメインで動作しま

す。したがって、dpu_clk_2x の周波数は m_axi_dpu_aclk の 2 倍とする必要があります。また、これら 2 つの関連クロックはエッジが揃っ

ている必要があります。

Page 24: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

第 4 章: クロッキングとリセット

DPU IP 製品ガイド japan.xilinx.com 24

PG338 (v1.1) 2019 年 3 月 5 日

基準クロックの生成

DPU の入力クロックは 3 つあり、そのうち dpu_clk_2x の周波数は m_axi_dpu_aclk の 2 倍とする必要があります。また、タイミング クロー

ジャを達成するには、これら 2 つのクロックが同期している必要があります。図 13に、推奨する回路デザインを示します。

MMCM

RST

CLKIN

CLKOUT

BUFGCE_DIV

CE

CLR

I

O

BUFGCE_DIV_CLK2_INST

dpu_clk_2x

BUFGCE_DIV

CE

CLR

I

O

BUFGCE_DIV_CLK1_INST

dpu_clk

clk_in1

resetn

X22335-022019

図 13: 推奨回路

この回路は、1 つの MMCM と 2 つの BUFGCE_DIV をインスタンシエートして作成できます。clk_in1 の周波数は任意で、MMCM の出

力クロック CLKOUT の周波数は、dpu_clk_2x と同じにする必要があります。BUFGCE_DIV_CLK1_INST により、dpu_clk_2x の 1/2 の

周波数のクロックを得ます。dpu_clk と dpu_clk_2x は同じクロックによって生成されるため、同期クロックとなります。2 つの BUFGCE_DIV

によって 2 つのクロック間のスキューが大幅に減少し、タイミング クロージャが容易になります。

Clocking Wizard の使用

上記の回路は、Clocking Wizard IP をインスタンシエートして生成できます。このリファレンス デザインでは、s_axi_aclk の周波数は

100MHz に設定され、m_axi_dpu_aclk はザイリンクス UltraScale+ MPSoC デバイスの AXI-HP インターフェイスの最大周波数である

333MHz に設定されています。したがって、dpu_clk_2x の周波数は 666MHz に設定する必要があります。図 14に、[Clocking Options]

タブの推奨設定を示します。[Primitive] で [Auto] をオンにする必要があります。

図 14: Clocking Wizard の [Clocking Options] の推奨設定

Page 25: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

第 4 章: クロッキングとリセット

DPU IP 製品ガイド japan.xilinx.com 25

PG338 (v1.1) 2019 年 3 月 5 日

[Matched Routing]

Clocking Wizard IP の [Output Clocks] で、m_axi_dpu_aclk と dpu_clk_2x の [Matched Routing] をオンにします。[Matched Routing] を

オンにすると、これら 2 つのクロックが BUFGCE_DIV を使用して生成され、クロック間のスキューが大幅に削減されます。図 15に、この

設定画面を示します。

図 15: Clocking Wizard の [Matched Routing]

Page 26: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

第 4 章: クロッキングとリセット

DPU IP 製品ガイド japan.xilinx.com 26

PG338 (v1.1) 2019 年 3 月 5 日

リセット

DPU IP には、3 つの入力クロックのそれぞれに対応した 3 つのリセットがあります。クロックとリセットの各ペアは、同期クロック ドメインで

生成する必要があります。クロックとリセットがペアになっていない場合、DPU は正しく動作しない可能性があります。Processor System

Reset IP をインスタンシエートし、各クロックに適したリセットを生成することを推奨します。図 16に、推奨デザインを示します。

図 16: リセットの推奨デザイン

Page 27: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

DPU IP 製品ガイド japan.xilinx.com 27

PG338 (v1.1) 2019 年 3 月 5 日

第 5 章: 開発フロー

MPSoC でのコアのカスタマイズと生成

次の各セクションでは、Vivado® Design Suite で DPU IP を使用する開発フローについて説明します。

• DPU IP をリポジトリに追加する

• DPU IP をブロック デザインに追加する

• DPU パラメーターを設定する

• DPU をザイリンクス SoC のプロセッシング システムに接続する

• DPU のレジスタ アドレスを割り当てる

• ビットストリームを生成する

• BOOT.BIN を生成する

DPU IP をリポジトリに追加する

Vivado GUI で [Project Manager] の下にある [IP Catalog] をクリックします。IP カタログで右クリックして [Add Repository] (図 17) をク

リックし、DPU IP の場所を選択します。これで、DPU IP が IP カタログに表示されます (図 18)。

図 17: [Add Repository]

Page 28: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

第 5 章: 開発フロー

DPU IP 製品ガイド japan.xilinx.com 28

PG338 (v1.1) 2019 年 3 月 5 日

図 18: DPU IP をリポジトリに追加

DPU IP をブロック デザインに追加する

ブロック デザイン インターフェイスで DPU IP を検索し、DPU IP をブロック デザインに追加します。図 19と図 20 に、手順を示します。

図 19: DPU IP を検索

図 20: DPU IP をブロック デザインに追加

Page 29: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

第 5 章: 開発フロー

DPU IP 製品ガイド japan.xilinx.com 29

PG338 (v1.1) 2019 年 3 月 5 日

DPU パラメーターを設定する

図 21に示す画面で、DPU IP のパラメーターを設定できます。パラメーターの詳細は、第 3 章: DPU のコンフィギュレーションを参照して

ください。

図 21: DPU を設定

DPU をザイリンクス SoC のプロセッシング システムに接続する

設定する DPU コアの数にかかわらず、DPU IP にはスレーブ インターフェイスは 1 つしかありません。各 DPU コアには 3 つのマスター

インターフェイス (命令フェッチ用に 1 つと、データ フェッチ用に 2 つ) があります。DPU IP のマスター インターフェイスの数は、

DPU_NUM パラメーターの設定によって異なります。

DPU とプロセッシング システム (PS) の接続には、任意のインターコネクトを使用できます。この際、DPU が DDR メモリ空間に正しくアク

セスできるようにする必要があります。一般に、AXI データ トランザクションはインターコネクト IP を通過するため、データ トランザクション

の遅延が大きくなります。DPU とインターコネクトの間のデータ転送に遅延があると、DPU の性能が低下します。したがって、DPU の

データ フェッチに使用する各マスター インターフェイスと PS の接続には AXI Interconnect IP を使用せず、直接接続することを推奨しま

す。

図 22に、ザイリンクス UltraScale+ MPSoC の PS と DPU の推奨接続を示します。

Page 30: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

第 5 章: 開発フロー

DPU IP 製品ガイド japan.xilinx.com 30

PG338 (v1.1) 2019 年 3 月 5 日

図 22: MPSoC の PS と DPU の接続

DPU のレジスタ アドレスを割り当てる

DPU の接続が完了したら、次に AXI スレーブ インターフェイスのレジスタ アドレスを割り当てます。DPU には 16MB 以上の空間が必要

です。DPU スレーブ インターフェイスは、ホスト CPU からアクセス可能な任意の開始アドレスに割り当てることができます。

注記: DNNDK パッケージに含まれるビルド済み Linux 環境を使用してカスタム システムを構築する場合は、DPU スレーブ インター

フェイスを M_AXI_HPM0_LPD PS マスターに接続し、DPU ベース アドレスを 0x8F00_000 (16MB のアドレス範囲) に設定する必要が

あります。DNNDK パッケージに含まれるドライバーおよびデバイス ツリー ファイルの DPU レジスタ アドレスは、0x8F00_0000 に固定さ

れています。ドライバーとデバイス ツリー ファイルのアドレスが Vivado で割り当てられたアドレスと同じ場合、DPU スレーブ インター

フェイスを PS の任意のマスター インターフェイスに接続し、DPU に任意のアドレスを割り当てることができます。

図 23に、DNNDK パッケージを使用する場合に推奨する DPU のアドレス割り当てを示します。

Page 31: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

第 5 章: 開発フロー

DPU IP 製品ガイド japan.xilinx.com 31

PG338 (v1.1) 2019 年 3 月 5 日

図 23: DPU アドレスの割り当て

ビットストリームを生成する

Vivado で [Generate Bitstream] をクリックします (図 24)。

図 24: ビットストリームの生成

BOOT.BIN を生成する

BOOT.BIN ファイルは、Vivado SDK または PetaLinux を使用して生成できます。Vivado SDK を使用したブート イメージの作成方法

は、『Zynq UltraScale+ MPSoC: エンベデッド デザイン チュートリアル』 (UG1209) を参照してください。PetaLinux を使用する場合は、

『PetaLinux ツール資料: リファレンス ガイド』 (UG1144) を参照してください。

Page 32: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

DPU IP 製品ガイド japan.xilinx.com 32

PG338 (v1.1) 2019 年 3 月 5 日

付録 A: DPU ターゲット リファレンス デザイン

はじめに

ザイリンクス Deep Learning Processor Unit (DPU) ターゲット リファレンス デザイン (TRD) は、ザイリンクス SoC プラットフォームで DPU を

使用し、ディープ ニューラル ネットワーク アプリケーションを構築および実行する方法を紹介するためのものです。TRD は Vivado® IP

インテグレーター フローを使用してハードウェア デザインをビルドし、ザイリンクス Yocto PetaLinux フローを使用してソフトウェア デザイ

ンをビルドします。この TRD は、Zynq® UltraScale+™ MPSoC プラットフォームを使用して作成しています。Zynq-7000 SoC プラットフォー

ムでも、同じフローで使用できます。

この付録では、リファレンス デザインのアーキテクチャおよび各コンポーネントの機能について説明します。全体の構成は次のとおりで

す。

• 次のセクションの DPU TRD の概要では、Zynq UltraScale+ MPSoC デバイスのアーキテクチャ、リファレンス デザインのアーキ

テクチャ、および主な機能の概要について説明します。

• ハードウェア デザイン フローでは、ザイリンクス Vivado Design Suite を使用してリファレンス ハードウェア デザインを生成する

方法について説明します。

• ソフトウェア デザイン フロー では、PetaLinux 環境でプロジェクトを作成するデザイン フローについて説明します。

• デモの実行では、TRD で作成したアプリケーションの実行方法について説明します。

DPU TRD の概要

この TRD は、ザイリンクス UltraScale+ MPSoC デバイス上で一般的なディープ ニューラル ネットワーク モデルである Resnet50 を実行

し、画像分類アプリケーションを構築します。TRD の全体的な機能はプロセッシング システム (PS) とプログラマブル ロジック (PL) に分

割され、PL に DPU を置くことで性能の最適化を図っています。

次に、TRD のブロック図を示します。ホストは、イーサネットまたは UART ポートを介して ZCU102 ボードと通信します。TRD への入力画

像は、SD カードに格納します。TRD を実行すると、入力データが DDR メモリに読み込まれます。DPU は DDR メモリからデータを読み

出し、結果を DDR メモリに書き戻します。この結果は、APU からイーサネットまたは UART ポートを介して転送され、ホストの画面に表示

されます。

図 25: DPU TRD の概要

Page 33: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

付録 A: DPU ターゲット リファレンス デザイン

DPU IP 製品ガイド japan.xilinx.com 33

PG338 (v1.1) 2019 年 3 月 5 日

DPU TRD で使用するアプリケーション コードは、DNNDK パッケージに含まれる Resnet50 のサンプルの main.cc がベースとなってい

ます。DNNDK パッケージの詳細は、『DNNDK ユーザー ガイド』 (UG1327) を参照してください。

要件

TRD には次のものが必要です。

ターゲット プラットフォーム

• ZCU102 評価ボード (プロダクション シリコン搭載)。『ZCU102 評価ボード ユーザー ガイド』 (UG1182) を参照してください。

ザイリンクス ツール

• Vivado Design Suite 2018.2

• PetaLinux 2018.2

ハードウェア ペリフェラル

• SD

• イーサネット

• UART

Linux または Windows ホスト システム

• シリアル ターミナル

• ネットワーク ターミナル

Page 34: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

付録 A: DPU ターゲット リファレンス デザイン

DPU IP 製品ガイド japan.xilinx.com 34

PG338 (v1.1) 2019 年 3 月 5 日

デザイン ファイル

デザイン ファイルは、次のディレクトリ構造にあります。

注記: DPU_IP は pl/srcs/dpu_ip/ ディレクトリにあります。

Page 35: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

付録 A: DPU ターゲット リファレンス デザイン

DPU IP 製品ガイド japan.xilinx.com 35

PG338 (v1.1) 2019 年 3 月 5 日

ハードウェア デザイン フロー

このセクションでは、ザイリンクス Vivado® Design Suite で Deep Learning Processor Unit (DPU) リファレンス デザイン プロジェクトを作成

し、BIT ファイルを生成する手順について説明します。リファレンス デザインの DPU IP は、パラメーターが適切に設定されています。

DPU 割り込みの接続、および DPU のアドレス割り当ては、リファレンス デザインのものを変更せず使用してください。これらの接続やアド

レス割り当てを変更した場合、リファレンス デザインが正しく動作しない可能性があります。

ボードのセットアップ

次の図に、ZCU102 ボードと各インターフェイスの位置を示します。

図 26: ZCU102 ボード

Page 36: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

付録 A: DPU ターゲット リファレンス デザイン

DPU IP 製品ガイド japan.xilinx.com 36

PG338 (v1.1) 2019 年 3 月 5 日

ZCU102 ボードの設定

1. micro USB ケーブルを ZCU102 ボードの micro USB UART (J83) ポートに接続し、もう一方の端をホスト PC の空いている USB

ポートに接続します。このケーブルで、UART-over-USB 通信を実行します。

2. イメージ フォルダーの内容を書き込んだ SD カードを SD カード スロットに挿入します。

3. SD カードからブートするように、スイッチ SW6 を次のように設定します。

図 27: SD からのブート

4. 12V 電源を ZCU102 ボードの 6 ピン Molex コネクタに接続します。

5. スイッチ SW1 をオンにして、ZCU102 ボードに電源を投入します。

プロジェクトのビルド フロー

このセクションでは、Vivado 2018.2 を使用してリファレンス Vivado プロジェクトをビルドする方法について説明します。Vivado 環境の

セットアップ方法は、『Vivado Design Suite ユーザー ガイド: 概要』 (UG910) を参照してください。

ハードウェア デザインをビルドするには、次の手順を実行します。

Linux でハードウェア デザインをビルドする場合

1. Linux ターミナルを開きます。

2. $TRD_HOME/pl ディレクトリへ移動します。

3. Vivado IP インテグレーター プロジェクトを作成し、次のコマンドを実行して GUI を起動します。

% vivado -source scripts/trd_prj.tcl

Windows 7 でハードウェア デザインをビルドする場合

1. [スタート] → [すべてのプログラム] → [Xilinx Design Tools] → [Vivado 2018.2] → [Vivado 2018.2] をクリックします。

2. [Quick Start] ページで、[Tcl Console] をクリックします。

3. Tcl コンソールで次のコマンドを入力します。

cd $TRD_HOME/pl

source scripts/trd_prj.tcl

上記のスクリプトを実行すると、Vivado IP インテグレーターのブロック デザインが次のように表示されます。

Page 37: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

付録 A: DPU ターゲット リファレンス デザイン

DPU IP 製品ガイド japan.xilinx.com 37

PG338 (v1.1) 2019 年 3 月 5 日

図 28: TRD のブロック デザイン

4. この GUI で [Generate Bitstream] をクリックすると、次の図のように BIT ファイルが生成されます。

図 29: ビットストリームの生成

Page 38: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

付録 A: DPU ターゲット リファレンス デザイン

DPU IP 製品ガイド japan.xilinx.com 38

PG338 (v1.1) 2019 年 3 月 5 日

DPU のコンフィギュレーション

TRD に統合されている DPU IP のバージョンは、DPU_v1.3.0 です。リファレンス デザイン プロジェクトの DPU のパラメーターは、デフォ

ルトで次のとおりです。

図 30: DPU IP の設定ページ

ここに示した DPU のパラメーターは、リソース要件に応じて設定を変更できます。DPU とそのパラメーターの詳細は、TRD パッケージの

srcs/dpu_ip/doc フォルダーにある『ザイリンクス DPU 製品ガイド』 (PG338) を参照してください。

ソフトウェア デザイン フロー

このセクションでは、PetaLinux ビルド ツールとザイリンクス OpenCV ライブラリを使用して BOOT.BIN を生成する方法について説明しま

す。

PetaLinux デザイン フロー

PetaLinux のインストール

PetaLinux のインストール方法は、『PetaLinux ツール資料: リファレンス ガイド』(UG1144) を参照してください。

Page 39: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

付録 A: DPU ターゲット リファレンス デザイン

DPU IP 製品ガイド japan.xilinx.com 39

PG338 (v1.1) 2019 年 3 月 5 日

PetaLinux 変数の設定

PetaLinux 環境変数 $PETALINUX を次のように設定します。

% source <path/to/petalinux-installer>/Petalinux-v2018.2/petalinux-v2018.2-

final/settings.sh

% echo $PETALINUX

PetaLinux プロジェクトのビルド

次のコマンドを実行して、PetaLinux プロジェクトを作成します。

% cd $TRD_HOME/apu/dpu_petalinux_bsp

% petalinux -create -t project -s Xilinx-dpu-trd-zcu102-v2018.2.bsp

% cd zcu102-dpu-trd-v2018-2

% petalinux -config –get-hw-description=$TRD_HOME/p1/pre-build % petalinux-build

BOOT.BIN の作成

boot.bin ファイルを作成します。

% cd images/linux

% petalinux-package --boot --fsbl zynqmp_fsbl.elf --u-boot u-boot.elf --pmufw pmufw.elf -

-fpga system.bit

次のセクションでは、TRD によって生成された実行ファイルを動作させる方法について説明します。UART またはイーサネットを使用して

ZCU102 ボードに接続します。

デモ ボード

Resnet50 のサンプルをビルドします。

% cd $TRD_PATH/apu/apps/resnet50

% make

デモの実行

次の手順でデモを実行します。

1. BOOT.BIN ファイルを生成したら、BOOT.BIN と image/linux フォルダーにある image.ub を SD カードにコピーします。

2. この SD カードを ZCU102 ボードの SD カード スロットに挿入し、システムを起動します。

3. ボードが起動したら、TRD パッケージの resnet50 フォルダーと common フォルダーをホストからボードへコピーします。

4. resnet50 フォルダーへ移動し、次のように resnet50 プログラムを実行します。

% scp -r Host:$TRD_PATH/images/common /home/.

% scp -r Host:$TRD_PATH/images/resnet50 /home/.

% cd /home/resnet50/

% ./resnet50

図 31 に、実行結果のスクリーンショットを示します。

「Load image」で始まる行に、入力画像ファイル名と、正解が表示されます。その下には DPU による推論結果が表示されます。ここでは、

最も確率の高い画像分類結果の上位 5 つが表示されます。top[0] の予測結果が上記の正解と同じなら、DPU は正しく動作しています。

Page 41: DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド …...DPU for Convolutional Neural Network v1.1 DPU IP 製品ガイド PG338 (v1.1) 2019 年 3 月 5 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

DPU IP 製品ガイド japan.xilinx.com 41

PG338 (v1.1) 2019 年 3 月 5 日

付録 B: 法的通知

参考資料

次の資料は、この製品ガイドの補足資料として役立ちます。日本語版のバージョンは、英語版より古い場合があります。

1. 『DNNDK ユーザー ガイド』(UG1327: 英語版)

2. 『Zynq UltraScale+ MPSoC エンベデッド デザイン チュートリアル』 (UG1209: 英語版、日本語版)

3. 『PetaLinux ツール資料: リファレンス ガイド』(UG1144: 英語版、日本語版)

重要な法的通知 本通知に基づいて貴殿または貴社 (本通知の被通知者が個人の場合には「貴殿」、法人その他の団体の場合には「貴社」。以下同じ) に開示される情報

(以下「本情報」といいます) は、ザイリンクスの製品を選択および使用することのためにのみ提供されます。適用される法律が許容する最大限の範囲で、

(1) 本情報は「現状有姿」、およびすべて受領者の責任で (with all faults) という状態で提供され、ザイリンクスは、本通知をもって、明示、黙示、法定を問

わず (商品性、非侵害、特定目的適合性の保証を含みますがこれらに限られません)、すべての保証および条件を負わない (否認する) ものとします。ま

た、(2) ザイリンクスは、本情報 (貴殿または貴社による本情報の使用を含む) に関係し、起因し、関連する、いかなる種類・性質の損失または損害につい

ても、責任を負わない (契約上、不法行為上 (過失の場合を含む)、その他のいかなる責任の法理によるかを問わない) ものとし、当該損失または損害に

は、直接、間接、特別、付随的、結果的な損失または損害 (第三者が起こした行為の結果被った、データ、利益、業務上の信用の損失、その他あらゆる

種類の損失や損害を含みます) が含まれるものとし、それは、たとえ当該損害や損失が合理的に予見可能であったり、ザイリンクスがそれらの可能性につ

いて助言を受けていた場合であったとしても同様です。ザイリンクスは、本情報に含まれるいかなる誤りも訂正する義務を負わず、本情報または製品仕様

のアップデートを貴殿または貴社に知らせる義務も負いません。事前の書面による同意のない限り、貴殿または貴社は本情報を再生産、変更、頒布、ま

たは公に展示してはなりません。一定の製品は、ザイリンクスの限定的保証の諸条件に従うこととなるので、https://japan.xilinx.com/legal.htm#tos で見られ

るザイリンクスの販売条件を参照してください。IP コアは、ザイリンクスが貴殿または貴社に付与したライセンスに含まれる保証と補助的条件に従うことにな

ります。ザイリンクスの製品は、フェイルセーフとして、または、フェイルセーフの動作を要求するアプリケーションに使用するために、設計されたり意図され

たりしていません。そのような重大なアプリケーションにザイリンクスの製品を使用する場合のリスクと責任は、貴殿または貴社が単独で負うものです。

https://japan.xilinx.com/legal.htm#tos で見られるザイリンクスの販売条件を参照してください。

自動車用のアプリケーションの免責条項

オートモーティブ製品 (製品番号に「XA」が含まれる) は、ISO 26262 自動車用機能安全規格に従った安全コンセプトまたは余剰性の機能 (「セーフティ

設計」) がない限り、エアバッグの展開における使用または車両の制御に影響するアプリケーション (「セーフティ アプリケーション」) における使用は保証

されていません。顧客は、製品を組み込むすべてのシステムについて、その使用前または提供前に安全を目的として十分なテストを行うものとします。

セーフティ設計なしにセーフティ アプリケーションで製品を使用するリスクはすべて顧客が負い、製品の責任の制限を規定する適用法令および規則にの

み従うものとします。

© Copyright 2019 Xilinx, Inc. Xilinx、Xilinx のロゴ、Artix、ISE、Kintex、Spartan、Virtex、Zynq、およびこの文書に含まれるその他の指定されたブランド

は、米国およびその他各国のザイリンクス社の商標です。AMBA、AMBA Designer、Arm、ARM1176JZ-S、CoreSight、Cortex、PrimeCell、Mali、MPCore

は EU およびその他各国の Arm Limited 社の登録商標です。PCI、PCIe、および PCI Express は、PCI-SIG の商標であり、ライセンスに基づいて使用さ

れています。すべてのその他の商標は、それぞれの保有者に帰属します。この資料に関するフィードバックおよびリンクなどの問題につきましては、

[email protected] まで、または各ページの右下にある [フィードバック送信] ボタンをクリックすると表示されるフォームからお知らせください。

フィードバックは日本語で入力可能です。いただきましたご意見を参考に早急に対応させていただきます。なお、このメール アドレスへのお問い合わせは

受け付けておりません。あらかじめご了承ください。mailto:[email protected]