oneAPI 1.3 暫定仕様書 Rev. 1 の解説 (25)

その他

この記事は、https://www.oneapi.io/spec/ で 2023年9月14日に公開された『oneAPI 1.3 Provisional Specification Rev. 1』 (HTMLPDF) をベースにしています。原文は2000 ページ近くあり、翻訳の時間とリソースも限られるため、全文翻訳ではなく、記事形式で区切った仕様とその解説を提供することにしました。


この回では、『oneAPI 1.3 Provisional Specification Rev. 1』の「oneDNN」の「Shuffle」の節を取り上げています。

シャッフル

シャッフル・プリミティブは、グループ・パラメーター G を使用してシャッフル軸 (ここでは C として指定) に沿ってデータをシャッフルします。シャフル軸は、サイズ の 2D テンソルであると考えられ、 に転置されます。変数名は標準の規則 (英語) に従います。

正式な定義を以下に示します。

順方向 (前方)

説明:

  • c 次元はシャッフル axis と呼ばれます。
  • Ggroup_size です。
  • は最外のインデックス (結合軸の左側) です。
  • は最内のインデックス (結合軸の右) です。
  • c′′c はシステムで定義されるように、相互に関係します。

ここでは、 です。

順方向トレーニングと順方向推論の違い

forward_trainingforward_inference 伝播の種類に違いはありません。

逆方向 (後方)

逆方向伝播は、diff_dst(ou,c,in) に基づいて diff_src(ou,c,in) を計算します。

基本的に、逆伝播は順伝播と同じですが、gC/g に置き換えられます。

実行引数

実行時に入力と出力は、次の表で示す実行引数インデックスにマップする必要があります。

操作の詳細

サポートされるデータタイプ

シャッフル・プリミティブは次のデータタイプの組み合わせをサポートします。

注: この節では、可読性のためデータ型の名称を短縮しています。例えば、dnnl::memory::data_type::f32f32 に短縮されます。

データレイアウト

シャッフル・プリミティブは任意のデータテンソルで機能します。論理的な次元については特別な意味はありません。ただし、シャッフル軸は、通常、チャネルと呼ばれます (したがって、式では c を使用します)。

シャッフル操作は通常、CNN トポロジーで使用されます。したがって、ライブラリーではシャッフル・プリミティブは、対応するメモリー形式に最適化されています。

ここで、optimized^ とは、先行する計算集約型プリミティブによって選択された形式を意味します。

post-ops と属性

シャッフル・プリミティブは post-ops や属性をサポートする必要がありません。

API

API については、こちら (英語) をご覧ください。


法務上の注意書き

The content of this oneAPI Specification is licensed under the Creative Commons Attribution 4.0 International License (英語). Unless stated otherwise, the sample code examples in this document are released to you under the MIT license (英語).

This specification is a continuation of Intel’s decades-long history of working with standards groups and industry/academia initiatives such as The Khronos Group*, to create and define specifications in an open and fair process to achieve interoperability and interchangeability. oneAPI is intended to be an open specification and we encourage you to help us make it better. Your feedback is optional, but to enable Intel to incorporate any feedback you may provide to this specification, and to further upstream your feedback to other standards bodies, including The Khronos Group SYCL* specification, please submit your feedback under the terms and conditions below. Any contribution of your feedback to the oneAPI Specification does not prohibit you from also contributing your feedback directly to other standard bodies, including The Khronos Group under their respective submission policies.

By opening an issue, providing feedback, or otherwise contributing to the specification, you agree that Intel will be free to use, disclose, reproduce, modify, license, or otherwise distribute your feedback at its sole discretion without any obligations or restrictions of any kind, including without limitation, intellectual property rights or licensing obligations.

This document contains information on products, services and/or processes in development. All information provided here is subject to change without notice.

© Intel Corporation. Intel、インテル、Intel ロゴ、その他のインテルの名称やロゴは、Intel Corporation またはその子会社の商標です。

* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

« パート 24        目次        パート 26 »
タイトルとURLをコピーしました