スコープ付き列挙#
ここでは、oneapi::mkl::dft::descriptor オブジェクトの定義または構成に関係するスコープ列挙について説明します: oneapi::mkl::dft::precision、oneapi::mkl::dft::domain、oneapi::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 の列挙子によってキャプチャーされ、構成値に関連付けられます。後者がプリミティブ・データ・タイプまたは派生データタイプで表現できない場合、domain、precision、または config_value の列挙子で表現できます。
すべての書き込み可能な構成パラメーターに関連付けられたデフォルトの構成値は、descriptor クラス・テンプレートの構成設定メンバー関数専用のページ、または構成データレイアウトの固有のページに記載されています。
config_param#
このスコープ付き列挙タイプは、oneMKL DFT descriptor オブジェクトのすべての構成パラメーターを表すのに使用されます。どの descriptor オブジェクトでも、すべての構成パラメーターは構成値に関連付けられます。後者のタイプは構成パラメーターによって異なり、descriptor クラス・テンプレートの構成の設定 (読み取り専用パラメーターの場合は構成の照会) メンバー関数固有のページに記載されています。
列挙子 |
対応する構成パラメーター。 |
|---|---|
|
DFT の順方向ドメインのタイプ。 |
|
DFT の次元 \(d\)。 |
|
DFT の長さ \(\lbrace n_1, n_2, \ldots, n_d\rbrace\)。 |
|
DFT の浮動小数点形式。 |
|
順方向 DFT のスケーリング係数、\(\sigma_{-1}\)。 |
|
逆方向 DFT のスケーリング係数、\(\sigma_{+1}\)。 |
|
DFT のバッチサイズ \(M\)。 |
|
DFT 計算がインプレースで実行されるかどうかを示す構成パラメーター。詳細については、DFT 結果の配置を構成するページを参照してください。 |
|
複素数記述子によるいずれかのドメインで考慮される基本データタイプ (実数記述子の場合は無関係なパラメーター)。詳細については、データレイアウトを構成するページを参照してください。 |
|
実数記述子による後方ドメインで考慮される基本データタイプ (複素数記述子の場合は無関係なパラメーター)。詳細については、データレイアウトを構成するページを参照してください。
このパラメーターは非推奨です (デフォルト値以外のサポートは廃止されます)。
|
|
ユーザーが提供する関連入力データコンテナー内のエントリーにアクセスする際に考慮されるインデックスのオフセットとストライド。詳細については、データレイアウトを構成するページを参照してください。
このパラメーターは非推奨です。代わりに
config_param::FWD_STRIDES と config_param::BWD_STRIDES を使用することを推奨します。 |
|
ユーザーが提供する関連出力データコンテナー内のエントリーにアクセスする際に考慮されるインデックスのオフセットとストライド。詳細については、データレイアウトを構成するページを参照してください。
このパラメーターは非推奨です。代わりに
config_param::FWD_STRIDES と config_param::BWD_STRIDES を使用することを推奨します。 |
|
ユーザーが提供する順方向ドメインのデータコンテナー内のエントリーにアクセスする際に考慮されるインデックスのオフセットとストライド。詳細については、データレイアウトを構成するページを参照してください。 |
|
ユーザーが提供する逆方向ドメインのエントリーにアクセスする際に考慮されるインデックスのオフセットとストライド。詳細については、データレイアウトを構成するページを参照してください。 |
|
ユーザーが提供する順方向ドメインのデータコンテナー内のエントリーにアクセスする際に考慮される距離。詳細については、データレイアウトを構成するページを参照してください。 |
|
ユーザーが提供する逆方向ドメインのエントリーにアクセスする際に考慮されるされる距離。詳細については、データレイアウトを構成するページを参照してください。 |
|
実数記述子による逆方向ドメインで考慮されるデータストレージ規則 (複素数記述子の場合は無関係)。詳細については、データレイアウトを構成するページを参照してください。
このパラメーターは非推奨です (デフォルト値以外のサポートは廃止されます)。
|
config_param::WORKSPACEconfig_param::WORKSPACE_PLACEMENT |
2 つの列挙子は互いに同等であり、相互に使用できます。詳細については、外部に割り当てられたワークスペースのページを参照してください。 |
config_param::WORKSPACE_BYTESconfig_param::WORKSPACE_EXTERNAL_BYTES |
オブジェクトのワークスペースの正確なサイズ (バイト単位)。詳細については、外部に割り当てられたワークスペースのページを参照してください。 |
|
オブジェクトのワークスペースの推定なサイズ (バイト単位)。詳細については、外部に割り当てられたワークスペースのページを参照してください。 |
|
アウトオブプレース操作用に構成されている場合に、オブジェクトが入力データを上書きできるかどうかを制御する構成パラメーター。 |
|
DFT を計算する際にオブジェクトが使用できる (CPU) スレッドの数の制限。この構成パラメーターは、GPU デバイスにコミットされたオブジェクトには無関係であり、無視されます。 |
|
オブジェクトが DFT 構成およびユーザー提供の |
|
使用されている oneMKL のバージョン。
このパラメーターは廃止予定です。
|
注
config_param::DIMENSION、config_param::FORWARD_DOMAIN、config_param::LENGTHS、config_param::PRECISION、config_param::COMMIT_STATUS、config_param::VERSION、config_param::WORKSPACE_ESTIMATE_BYTES、config_param::WORKSPACE_BYTES、config_param::WORKSPACE_EXTERNAL_BYTES で表される構成パラメーターは すべて読み取り専用 です。書き込みできません。
precision#
このスコープ付き列挙型は、oneMKL DFT descriptor オブジェクトの構成パラメーター config_param::PRECISION に関連付けられた構成値を表すのに使用されます。列挙子は、考慮される可能性のあるさまざまな浮動小数点形式を識別します。任意の oneMKL DFT descriptor オブジェクトでは、構成値はタイプにバインドされ、記述子クラス・テンプレートの特殊化値として使用される場合、不変です。
列挙子 |
対応する浮動小数点形式 |
|---|---|
|
単精度浮動小数点形式 (FP32)。 |
|
倍精度浮動小数点形式 (FP64)。 |
domain#
このスコープ付き列挙型は、oneMKL DFT descriptor オブジェクトの構成パラメーター config_param::FORWARD_DOMAIN に関連付けられた構成値を表すのに使用されます。列挙子は、考慮される可能性のある順方向ドメインの種類を識別します。任意の oneMKL DFT descriptor オブジェクトでは、構成値はタイプにバインドされ、記述子クラス・テンプレートの特殊化値として使用される場合、不変です。
列挙子 |
対応する順方向ドメインのタイプ |
|---|---|
|
実数順方向ドメイン |
|
複素数順方向ドメイン |
config_value#
このスコープ付き列挙タイプは、oneMKL DFT descriptor オブジェクトの一部の構成パラメーターの precision、domain、プリミティブ、または派生データタイプでは表現できない構成値を表すのに使用されます。
列挙子 |
一致する構成パラメーター |
|---|---|
config_value::COMMITTEDconfig_value::UNCOMMITTED |
記述子が正常にコミットされたか ( |
|
構成パラメーター |
|
構成パラメーター |
|
構成パラメーター
config_param::CONJUGATE_EVEN_STORAGE に関連付けられる構成値。詳細については、データレイアウトを構成するページを参照してください。このパラメーターは非推奨です (
config_param::CONJUGATE_EVEN_STORAGE に関連付けられたデフォルト値以外のサポートは廃止されます) |
config_value::INPLACEconfig_value::NOT_INPLACE |
DFT 計算をインプレースで実行する必要があるか ( |
config_value::WORKSPACE_AUTOMATICconfig_value::WORKSPACE_INTERNALconfig_value::WORKSPACE_EXTERNAL |
構成パラメーター |
config_value::ALLOWconfig_value::AVOID |
構成パラメーター |
config_value::CCE_FORMATconfig_value::PERM_FORMATconfig_value::PACK_FORMATconfig_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::X、precision::X、config_param::X または config_value::X が、代替としてこれを置き換えます。前者から後者への明示的な割り当ては、oneMKL の DPC++ インターフェイスを介して DFTI_CONFIG_PARAM および DFTI_CONFIG_VALUE 列挙子をサポートする廃止期間の完了後に削除されます。
明示的に、ユーザーは以下を使用することを推奨します。
DFTI_SINGLEとDFTI_DOUBLEの代わりに、それぞれprecision::SINGLEとprecision::DOUBLEを使用します;DFTI_REALとDFTI_COMPLEXの代わりに、それぞれdomain::REALとdomain::COMPLEXを使用します;DFTI_FORWARD_DOMAIN、DFTI_DIMENSION、DFTI_LENGTHS、DFTI_PRECISION、DFTI_FORWARD_SCALE、DFTI_BACKWARD_SCALE、DFTI_NUMBER_OF_TRANSFORMS、DFTI_COMPLEX_STORAGE、DFTI_CONJUGATE_EVEN_STORAGE、DFTI_PLACEMENT、DFTI_INPUT_STRIDES、DFTI_OUTPUT_STRIDES、DFTI_FWD_DISTANCE、DFTI_BWD_DISTANCE、DFTI_WORKSPACE、DFTI_PACKED_FORMAT、DFTI_COMMIT_STATUS、DFTI_VERSION、DFTI_THREAD_LIMITおよびDFTI_DESTROY_INPUTの代わりに、config_param::FORWARD_DOMAIN、config_param::DIMENSION、config_param::LENGTHS、config_param::PRECISION、config_param::FORWARD_SCALE、config_param::BACKWARD_SCALE、config_param::NUMBER_OF_TRANSFORMS、config_param::COMPLEX_STORAGE、config_param::CONJUGATE_EVEN_STORAGE、config_param::PLACEMENT、config_param::INPUT_STRIDES、config_param::OUTPUT_STRIDES、config_param::FWD_DISTANCE、config_param::BWD_DISTANCE、config_param::WORKSPACE、config_param::PACKED_FORMAT、config_param::COMMIT_STATUS、config_param::VERSION、config_param::THREAD_LIMITおよびconfig_param::DESTROY_INPUTを使用します。DFTI_COMMITTED、DFTI_UNCOMMITTED、DFTI_COMPLEX_COMPLEX、DFTI_REAL_REAL、DFTI_INPLACE、DFTI_NOT_INPLACE、DFTI_COMPLEX_REAL、DFTI_ALLOW、DFTI_AVOID、DFTI_CCE_FORMAT、DFTI_PERM_FORMAT,DFTI_PACK_FORMATおよびDFTI_CCS_FORMATの代わりに、config_value::COMMITTED、config_value::UNCOMMITTED、config_value::COMPLEX_COMPLEX、config_value::REAL_REAL、config_value::INPLACE、config_value::NOT_INPLACE、config_value::COMPLEX_REAL、config_value::ALLOW、config_value::AVOID、config_value::CCE_FORMAT、config_value::PERM_FORMAT、config_value::PACK_FORMATおよびconfig_value::CCS_FORMATを使用します。