Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Section 6 - 大規模設計の例

Ryzen™ AIのAI EngineとNPU配列の独自機能をさらに説明するための多数の設計例が利用可能です。このセクションでは、ビジョンと機械学習のユースケース向けの、より複雑なアプリケーション設計を紹介します。特に、Ryzen™ AI上のResNet実装について説明します。

ビジョンカーネル

設計名データ型説明
Vision Passthroughi81つのpassThroughカーネルのみを含むシンプルなパイプライン。このパイプラインは主に、グレースケール画像をコピーするためのデータ移動が正しく動作するかをテストすることを目的としています。
Color Detecti32マルチカーネル、マルチコアパイプラインで、RGBA画像内の色を検出します。
Edge Detecti32マルチカーネル、マルチコアパイプラインで、画像内のエッジを検出し、元の画像に検出結果を重ね合わせます。
Color Thresholdi32RGBA画像のカラーしきい値処理のマルチコア、データ並列実装。

機械学習設計

設計名データ型説明
bottleneckui8ボトルネック残差ブロックは、1x1、3x3、1x1のフィルタサイズを使用する3つの畳み込みを利用する残差ブロックの変種です。この実装は、複数のカーネルの融合とデータフロー最適化を特徴とし、AI Engineの独自のアーキテクチャ機能を強調しています。
resnetui8conv2_x層をオフロードしたResNet。この実装は、複数のNPU列にわたる複数のボトルネックブロックの深さ優先実装を特徴としています。

演習問題

  1. bottleneck設計では、何種類の融合計算が観察できますか?

    答えを見る 2種類。ReLUと融合された畳み込みと、要素ごとの加算と融合された畳み込みです。なお、隣接する畳み込み層とバッチ正規化層の融合は、推論時の別の最適化であり、この実装でも処理できます。
  2. bottleneck設計でデータフローアプローチに従う場合、3x3畳み込み演算が計算を進めるために1x1畳み込みコアからいくつの要素を必要としますか?

    答えを見る 3要素。これにより、畳み込みカーネルが処理に必要な近傍情報が利用可能になります。
  3. 入力次元が32x32x256のボトルネックブロックがあるとします。1x1畳み込み層を通過した後、出力次元は32x32x64になります。その後の3x3畳み込み層(ストライド1、パディングなし、出力チャネル64)を通過した後の出力次元はどうなりますか?

    答えを見る 30×30×64。パディングがないため、3x3畳み込み演算により各次元で2ピクセルずつ空間次元が縮小します。