DPUCZDX8G IP には、リソース使用量を最適化したり異なる機能をカスタマイズしたりするためのユーザー設定可能なパラメーターがあります。使用可能なプログラマブル ロジック リソースの量に応じて、DSP スライス、LUT、ブロック RAM、および UltraRAM の使用量を設定できます。チャネル拡張、AveragePool、DepthwiseConv、softmax などの追加機能のオプションもあります。さらに、1 つの DPUCZDX8G IP にインスタンシエートする DPUCZDX8G コアの数を指定するオプションもあります。
次の表に、DPUCZDX8G でサポートされるディープ ニューラル ネットワークと関連パラメーターを示します。
Vivado フローと Vitis フローでは、arch.json という名前のコンフィギュレーション ファイルが生成されます。arch.json ファイルは、Vitis AI コンパイラによるモデルのコンパイルに使用されます。arch.json の内容が変更された場合は、モデルを再コンパイルしてください。Vitis AI コンパイラの詳細は、 『Vitis AI ユーザー ガイド』 (UG1414) を参照してください。
Vivado フローの場合、arch.json ファイルは $TRD_HOME/prj/Vivado/srcs/top/ip/top_dpu_0/arch.json にあります。
機能 | 説明 | |
---|---|---|
Convolution | カーネル サイズ | w、h: [1, 16] |
Strides | w、h: [1, 8] | |
パディング | w: [0, kernel_w-1] h: [0, kernel_h-1] |
|
入力サイズ | 任意の値 | |
入力チャネル | 1~256 * channel_parallel | |
出力チャネル | 1~256 * channel_parallel | |
アクティベーション | ReLU、ReLU6、LeakyReLU、Hard Sigmoid、Hard Swish | |
Dilation | dilation * input_channel ≤ 256 * channel_parallel && stride_w == 1 && stride_h == 1 | |
制約* | kernel_w * kernel_h * (ceil(input_channel / channel_parallel)) <= bank_depth | |
Depthwise Convolution |
カーネル サイズ | w、h: [1, 256] |
Strides | w、h: [1, 256] | |
パディング | w: [0, min(kernel_w-1,15)] h: [0, min(kernel_h-1,15)] |
|
入力サイズ | 任意の値 | |
入力チャネル | 1~256 * channel_parallel | |
出力チャネル | 1~256 * channel_parallel | |
アクティベーション | ReLU、ReLU6、LeakyReLU、Hard Sigmoid、Hard Swish | |
Dilation | dilation * input_channel ≤ 256 * channel_parallel && stride_w == 1 && stride_h == 1 | |
制約* | kernel_w * kernel_h * (ceil(input_channel / channel_parallel)) <= bank_depth | |
Transposed Convolution | カーネル サイズ | kernel_w/stride_w: [1, 16] kernel_h/stride_h: [1, 16] |
ストライド | ||
パディング | w: [0, kernel_w-1] h: [0, kernel_h-1] |
|
入力サイズ | 任意の値 | |
入力チャネル | 1~256 * channel_parallel | |
出力チャネル | 1~256 * channel_parallel | |
アクティベーション | ReLU、ReLU6、LeakyReLU | |
Depthwise Transposed Convolution | カーネル サイズ | kernel_w/stride_w: [1, 16] kernel_h/stride_h: [1, 16] |
ストライド | ||
パディング | w: [0, kernel_w-1] h: [0, kernel_h-1] |
|
入力サイズ | 任意の値 | |
入力チャネル | 1~256 * channel_parallel | |
出力チャネル | 1~256 * channel_parallel | |
アクティベーション | ReLU、ReLU6、LeakyRelu、Hard Sigmoid、Hard Swish | |
Max Pooling | カーネル サイズ | w、h: [1, 256] |
Strides | w、h: [1, 256] | |
パディング | w: [0, min(kernel_w-1,15)] h: [0, min(kernel_h-1,15)] |
|
Average Pooling | カーネル サイズ | w、h: [1, 256] |
Strides | w、h: [1, 256] | |
パディング | w: [0, min(kernel_w-1,15)] h: [0, min(kernel_h-1,15)] |
|
Elementwise-Sum | 入力チャネル | 1~256 * channel_parallel |
入力サイズ | 任意の値 | |
特徴マップの数 | 1 ~ 4 | |
Elementwise-Multiply | 入力チャネル | 1~256 * channel_parallel |
入力サイズ | 任意の値 | |
特徴マップの数 | 2 | |
Concat | 出力チャネル | 1~256 * channel_parallel |
Reorg | ストライド | stride * stride * input_channel ≤ 256 * channel_parallel |
Fully Connected | 入力チャネル | Input_channel ≤ 2048 * channel_parallel |
出力チャネル | 任意の値 | |
|