スコープ付き列挙

スコープ付き列挙#

ここでは、oneapi::mkl::dft::descriptor オブジェクトの定義または構成に関係するスコープ列挙について説明します: oneapi::mkl::dft::precisiononeapi::mkl::dft::domainoneapi::mkl::dft::config_param および oneapi::mkl::dft::config_value

namespace oneapi::mkl::dft { 
  enum class precision { 
    SINGLE = DFTI_SINGLE, 
    DOUBLE = DFTI_DOUBLE 
  }; 

  enum class domain { 
    REAL = DFTI_REAL, 
    COMPLEX = DFTI_COMPLEX 
  }; 

  enum class config_param { 
     FORWARD_DOMAIN                           = DFTI_FORWARD_DOMAIN, 
     DIMENSION                                = DFTI_DIMENSION, 
     LENGTHS                                  = DFTI_LENGTHS, 
     PRECISION                                = DFTI_PRECISION, 
     FORWARD_SCALE                            = DFTI_FORWARD_SCALE, 
     BACKWARD_SCALE                           = DFTI_BACKWARD_SCALE, 
     NUMBER_OF_TRANSFORMS                     = DFTI_NUMBER_OF_TRANSFORMS, 
     COMPLEX_STORAGE                          = DFTI_COMPLEX_STORAGE, 
     CONJUGATE_EVEN_STORAGE   [[deprecated]] =  DFTI_CONJUGATE_EVEN_STORAGE, 
     PLACEMENT                                = DFTI_PLACEMENT, 
     INPUT_STRIDES [[deprecated("Use FWD/BWD strides instead.")]]                                              = DFTI_INPUT_STRIDES, 
     OUTPUT_STRIDES [[deprecated("Use FWD/BWD strides instead.")]]                                              = DFTI_OUTPUT_STRIDES, 
     FWD_DISTANCE = DFTI_FWD_DISTANCE, 
     BWD_DISTANCE = DFTI_BWD_DISTANCE, 
     WORKSPACE = DFTI_WORKSPACE, 
     PACKED_FORMAT [[deprecated]] = DFTI_PACKED_FORMAT, 
     COMMIT_STATUS = DFTI_COMMIT_STATUS, 
     VERSION [[deprecated]] = DFTI_VERSION, 
     THREAD_LIMIT = DFTI_THREAD_LIMIT, 
     DESTROY_INPUT = DFTI_DESTROY_INPUT, 
     WORKSPACE_ESTIMATE_BYTES, WORKSPACE_BYTES, 
     FWD_STRIDES, BWD_STRIDES, 
     WORKSPACE_PLACEMENT, // WORKSPACE のエイリアス 
     WORKSPACE_EXTERNAL_BYTES // alias for WORKSPACE_BYTES 
  }; 

  enum class config_value { 
     COMMITTED = DFTI_COMMITTED, 
     UNCOMMITTED = DFTI_UNCOMMITTED, 
     COMPLEX_COMPLEX = DFTI_COMPLEX_COMPLEX, 
     REAL_REAL = DFTI_REAL_REAL, 
     INPLACE = DFTI_INPLACE, 
     NOT_INPLACE = DFTI_NOT_INPLACE, 
     WORKSPACE_AUTOMATIC, // WORKSPACE_INTERNAL のエイリアス 
     COMPLEX_REAL [[deprecated]] = DFTI_COMPLEX_REAL, 
     ALLOW = DFTI_ALLOW, 
     AVOID = DFTI_AVOID, 
     CCE_FORMAT [[deprecated]] = DFTI_CCE_FORMAT, 
     PERM_FORMAT [[deprecated]] = DFTI_PERM_FORMAT, 
     PACK_FORMAT [[deprecated]] = DFTI_PACK_FORMAT, 
     CCS_FORMAT [[deprecated]] = DFTI_CCS_FORMAT, 
     WORKSPACE_INTERNAL, 
     WORKSPACE_EXTERNAL 
  }; 
}

これらのスコープ列挙は oneapi::mkl::dft 名前空間に属し、oneapi/mkl/dft.hpp (インクルードするファイル) で宣言されています。簡潔にするため、先頭に付加された名前空間指定子 oneapi::mkl::dft は以下では省略されています。

oneMKL descriptor オブジェクトのすべての構成パラメーターは、config_param の列挙子によってキャプチャーされ、構成値に関連付けられます。後者がプリミティブ・データ・タイプまたは派生データタイプで表現できない場合、domainprecision、または config_value の列挙子で表現できます。

すべての書き込み可能な構成パラメーターに関連付けられたデフォルトの構成値は、descriptor クラス・テンプレートの構成設定メンバー関数専用のページ、または構成データレイアウトの固有のページに記載されています。

config_param#

このスコープ付き列挙タイプは、oneMKL DFT descriptor オブジェクトのすべての構成パラメーターを表すのに使用されます。どの descriptor オブジェクトでも、すべての構成パラメーターは構成値に関連付けられます。後者のタイプは構成パラメーターによって異なり、descriptor クラス・テンプレートの構成の設定 (読み取り専用パラメーターの場合は構成の照会) メンバー関数固有のページに記載されています。

config_param スコープ列挙の列挙子と、descriptor オブジェクトの対応する構成パラメーター。表では、オブジェクトによって定義された DFT 操作のパラメーターを参照する際に、概要で示した表記法に従います#

列挙子

対応する構成パラメーター。

config_param::FORWARD_DOMAIN

DFT の順方向ドメインのタイプ。

config_param::DIMENSION

DFT の次元 \(d\)

config_param::LENGTHS

DFT の長さ \(\lbrace n_1, n_2, \ldots, n_d\rbrace\)

config_param::PRECISION

DFT の浮動小数点形式。

config_param::FORWARD_SCALE

順方向 DFT のスケーリング係数、\(\sigma_{-1}\)

config_param::BACKWARD_SCALE

逆方向 DFT のスケーリング係数、\(\sigma_{+1}\)

config_param::NUMBER_OF_TRANSFORMS

DFT のバッチサイズ \(M\)

config_param::PLACEMENT

DFT 計算がインプレースで実行されるかどうかを示す構成パラメーター。詳細については、DFT 結果の配置を構成するページを参照してください。

config_param::COMPLEX_STORAGE

複素数記述子によるいずれかのドメインで考慮される基本データタイプ (実数記述子の場合は無関係なパラメーター)。詳細については、データレイアウトを構成するページを参照してください。

config_param::CONJUGATE_EVEN_STORAGE

実数記述子による後方ドメインで考慮される基本データタイプ (複素数記述子の場合は無関係なパラメーター)。詳細については、データレイアウトを構成するページを参照してください。
このパラメーターは非推奨です (デフォルト値以外のサポートは廃止されます)。

config_param::INPUT_STRIDES

ユーザーが提供する関連入力データコンテナー内のエントリーにアクセスする際に考慮されるインデックスのオフセットとストライド。詳細については、データレイアウトを構成するページを参照してください。
このパラメーターは非推奨です。代わりに config_param::FWD_STRIDESconfig_param::BWD_STRIDES を使用することを推奨します。

config_param::OUTPUT_STRIDES

ユーザーが提供する関連出力データコンテナー内のエントリーにアクセスする際に考慮されるインデックスのオフセットとストライド。詳細については、データレイアウトを構成するページを参照してください。
このパラメーターは非推奨です。代わりに config_param::FWD_STRIDESconfig_param::BWD_STRIDES を使用することを推奨します。

config_param::FWD_STRIDES

ユーザーが提供する順方向ドメインのデータコンテナー内のエントリーにアクセスする際に考慮されるインデックスのオフセットとストライド。詳細については、データレイアウトを構成するページを参照してください。

config_param::BWD_STRIDES

ユーザーが提供する逆方向ドメインのエントリーにアクセスする際に考慮されるインデックスのオフセットとストライド。詳細については、データレイアウトを構成するページを参照してください。

config_param::FWD_DISTANCE

ユーザーが提供する順方向ドメインのデータコンテナー内のエントリーにアクセスする際に考慮される距離。詳細については、データレイアウトを構成するページを参照してください。

config_param::BWD_DISTANCE

ユーザーが提供する逆方向ドメインのエントリーにアクセスする際に考慮されるされる距離。詳細については、データレイアウトを構成するページを参照してください。

config_param::PACKED_FORMAT

実数記述子による逆方向ドメインで考慮されるデータストレージ規則 (複素数記述子の場合は無関係)。詳細については、データレイアウトを構成するページを参照してください。
このパラメーターは非推奨です (デフォルト値以外のサポートは廃止されます)。
config_param::WORKSPACE
config_param::WORKSPACE_PLACEMENT

2 つの列挙子は互いに同等であり、相互に使用できます。詳細については、外部に割り当てられたワークスペースのページを参照してください。

config_param::WORKSPACE_BYTES
config_param::WORKSPACE_EXTERNAL_BYTES

オブジェクトのワークスペースの正確なサイズ (バイト単位)。詳細については、外部に割り当てられたワークスペースのページを参照してください。

config_param::WORKSPACE_ESTIMATE_BYTES

オブジェクトのワークスペースの推定なサイズ (バイト単位)。詳細については、外部に割り当てられたワークスペースのページを参照してください。

config_param::DESTROY_INPUT

アウトオブプレース操作用に構成されている場合に、オブジェクトが入力データを上書きできるかどうかを制御する構成パラメーター。

config_param::THREAD_LIMIT

DFT を計算する際にオブジェクトが使用できる (CPU) スレッドの数の制限。この構成パラメーターは、GPU デバイスにコミットされたオブジェクトには無関係であり、無視されます。

config_param::COMMIT_STATUS

オブジェクトが DFT 構成およびユーザー提供の sycl::queue インスタンスにコミットされるかどうかを示す構成パラメーター。

config_param::VERSION

使用されている oneMKL のバージョン。
このパラメーターは廃止予定です。

config_param::DIMENSIONconfig_param::FORWARD_DOMAINconfig_param::LENGTHSconfig_param::PRECISIONconfig_param::COMMIT_STATUSconfig_param::VERSIONconfig_param::WORKSPACE_ESTIMATE_BYTESconfig_param::WORKSPACE_BYTESconfig_param::WORKSPACE_EXTERNAL_BYTES で表される構成パラメーターは すべて読み取り専用 です。書き込みできません。

precision#

このスコープ付き列挙型は、oneMKL DFT descriptor オブジェクトの構成パラメーター config_param::PRECISION に関連付けられた構成値を表すのに使用されます。列挙子は、考慮される可能性のあるさまざまな浮動小数点形式を識別します。任意の oneMKL DFT descriptor オブジェクトでは、構成値はタイプにバインドされ、記述子クラス・テンプレートの特殊化値として使用される場合、不変です。

descriptor オブジェクトによって考慮される、precision スコープ列挙体の列挙子と、対応する浮動小数点形式#

列挙子

対応する浮動小数点形式

precision::SINGLE

単精度浮動小数点形式 (FP32)。

precision::DOUBLE

倍精度浮動小数点形式 (FP64)。

domain#

このスコープ付き列挙型は、oneMKL DFT descriptor オブジェクトの構成パラメーター config_param::FORWARD_DOMAIN に関連付けられた構成値を表すのに使用されます。列挙子は、考慮される可能性のある順方向ドメインの種類を識別します。任意の oneMKL DFT descriptor オブジェクトでは、構成値はタイプにバインドされ、記述子クラス・テンプレートの特殊化値として使用される場合、不変です。

descriptor オブジェクトによって考慮される、対応する順方向ドメインのタイプとdomain スコープ列挙体の列挙子#

列挙子

対応する順方向ドメインのタイプ

domain::REAL

実数順方向ドメイン

domain::COMPLEX

複素数順方向ドメイン

config_value#

このスコープ付き列挙タイプは、oneMKL DFT descriptor オブジェクトの一部の構成パラメーターの precisiondomain、プリミティブ、または派生データタイプでは表現できない構成値を表すのに使用されます。

descriptor オブジェクトの一致する構成パラメーターと config_value スコープ列挙体の列挙子#

列挙子

一致する構成パラメーター

config_value::COMMITTED
config_value::UNCOMMITTED

記述子が正常にコミットされたか (config_value::COMMITTED)、そうでないか (config_value::UNCOMMITTED) を示す構成パラメーター config_param::COMMIT_STATUS に関連付けられる構成値。

config_value::COMPLEX_COMPLEX

構成パラメーター config_param::COMPLEX_STORAGE または config_param::CONJUGATE_EVEN_STORAGE に関連付けられる構成値。詳細については、データレイアウトを構成するページを参照してください。

config_value::REAL_REAL

構成パラメーター config_param::COMPLEX_STORAGE に関連付けられる構成値。詳細については、データレイアウトを構成するページを参照してください。

config_value::COMPLEX_REAL

構成パラメーター config_param::CONJUGATE_EVEN_STORAGE に関連付けられる構成値。詳細については、データレイアウトを構成するページを参照してください。
このパラメーターは非推奨です (config_param::CONJUGATE_EVEN_STORAGE に関連付けられたデフォルト値以外のサポートは廃止されます)
config_value::INPLACE
config_value::NOT_INPLACE

DFT 計算をインプレースで実行する必要があるか (config_value::INPLACE)、そうでないか (config_value::NOT_INPLACE) を示す構成パラメーター config_param::PLACEMENT に関連付けられる構成値。

config_value::WORKSPACE_AUTOMATIC
config_value::WORKSPACE_INTERNAL
config_value::WORKSPACE_EXTERNAL

構成パラメーター config_param::WORKSPACE (またはそのエイリアス config_param::WORKSPACE_PLACEMENT) に関連付けられる構成値。2 つの列挙子 config_value::WORKSPACE_AUTOMATICconfig_value::WORKSPACE_INTERNAL は互いに同等であり、相互に使用できます。詳細については、外部に割り当てられたワークスペースのページを参照してください。

config_value::ALLOW
config_value::AVOID

構成パラメーター config_param::DESTROY_INPUT に関連付けらた、説明の必要がない構成値。

config_value::CCE_FORMAT
config_value::PERM_FORMAT
config_value::PACK_FORMAT
config_value::CCS_FORMAT
構成パラメーター config_param::PACKED_FORMAT に関連付けられる構成値。詳細については、データレイアウトを構成するページを参照してください。
この値は非推奨です (config_param::PACKED_FORMAT に関連付けられたデフォルト値以外のサポートは廃止されます)。

非推奨#

上記のスコープ付き列挙体のいくつかの列挙子には、oneMKL C インターフェイスの (スコープなしの) 列挙体 DFTI_CONFIG_PARAM または DFTI_CONFIG_VALUE から明示的に値が割り当てられます。oneMKL DPC++ インターフェイス経由のこれらの値のサポートは非​​推奨になりました。DFTI_X などのスコープなしの列挙子が oneMKL DPC++ インターフェイスで使用される (または使用可能な) 場合は常に、対応するスコープ付き列挙子の domain::Xprecision::Xconfig_param::X または config_value::X が、代替としてこれを置き換えます。前者から後者への明示的な割り当ては、oneMKL の DPC++ インターフェイスを介して DFTI_CONFIG_PARAM および DFTI_CONFIG_VALUE 列挙子をサポートする廃止期間の完了後に削除されます。

明示的に、ユーザーは以下を使用することを推奨します。

  • DFTI_SINGLEDFTI_DOUBLE の代わりに、それぞれ precision::SINGLEprecision::DOUBLE を使用します;

  • DFTI_REALDFTI_COMPLEX の代わりに、それぞれ domain::REALdomain::COMPLEX を使用します;

  • DFTI_FORWARD_DOMAINDFTI_DIMENSIONDFTI_LENGTHSDFTI_PRECISIONDFTI_FORWARD_SCALEDFTI_BACKWARD_SCALEDFTI_NUMBER_OF_TRANSFORMSDFTI_COMPLEX_STORAGEDFTI_CONJUGATE_EVEN_STORAGEDFTI_PLACEMENTDFTI_INPUT_STRIDESDFTI_OUTPUT_STRIDESDFTI_FWD_DISTANCEDFTI_BWD_DISTANCEDFTI_WORKSPACEDFTI_PACKED_FORMATDFTI_COMMIT_STATUSDFTI_VERSIONDFTI_THREAD_LIMIT および DFTI_DESTROY_INPUT の代わりに、config_param::FORWARD_DOMAINconfig_param::DIMENSIONconfig_param::LENGTHSconfig_param::PRECISIONconfig_param::FORWARD_SCALEconfig_param::BACKWARD_SCALEconfig_param::NUMBER_OF_TRANSFORMSconfig_param::COMPLEX_STORAGEconfig_param::CONJUGATE_EVEN_STORAGEconfig_param::PLACEMENTconfig_param::INPUT_STRIDESconfig_param::OUTPUT_STRIDESconfig_param::FWD_DISTANCEconfig_param::BWD_DISTANCEconfig_param::WORKSPACEconfig_param::PACKED_FORMATconfig_param::COMMIT_STATUSconfig_param::VERSIONconfig_param::THREAD_LIMIT および config_param::DESTROY_INPUT を使用します。

  • DFTI_COMMITTEDDFTI_UNCOMMITTEDDFTI_COMPLEX_COMPLEXDFTI_REAL_REALDFTI_INPLACEDFTI_NOT_INPLACEDFTI_COMPLEX_REALDFTI_ALLOWDFTI_AVOIDDFTI_CCE_FORMATDFTI_PERM_FORMAT, DFTI_PACK_FORMAT および DFTI_CCS_FORMAT の代わりに、config_value::COMMITTEDconfig_value::UNCOMMITTEDconfig_value::COMPLEX_COMPLEXconfig_value::REAL_REALconfig_value::INPLACEconfig_value::NOT_INPLACEconfig_value::COMPLEX_REALconfig_value::ALLOWconfig_value::AVOIDconfig_value::CCE_FORMATconfig_value::PERM_FORMATconfig_value::PACK_FORMAT および config_value::CCS_FORMAT を使用します。