set_mode#

mode パラメーターに従って VM 関数の新しいモードを設定し、以前の VM モードを返します。

説明#

set_mode 関数は、new_mode パラメーターに従って VM 関数の新しいモードを設定し、以前の VM モードを返します。モードの変更は、キュー内のすべての VM 機能でグローバルに影響します。

oneMKL VM モード・パラメーターは、数学関数の精度と oneMKL VM ストライド API の動作を制御します。特定のキューに設定されたモードは、VM 関数呼び出しのローカル・モード・パラメーターによってローカルに上書きできます。

モード値は、次の表に示す値のビット単位の OR (|) の組み合わせです。

説明

精度制御

oneapi::mkl::vm::mode::ha

VM 関数の高精度バージョン。(デフォルト)

oneapi::mkl::vm::mode::la

VM 関数の低精度バージョン。

oneapi::mkl::vm::mode::ep

VM 関数のパフォーマンス強化精度バージョン。

スライス引数のチェック

oneapi::mkl::vm::mode::badarg_exception

無効な引数の場合、oneapi::mkl::invalid_argument 例外をスローします。(デフォルト)

oneapi::mkl::vm::mode::badarg_quiet

無効な引数は、呼び出しを「no-op (ノー・オペレーション)」にします。VM ステータスは vm::status::empty_computation に設定します。

スライス・インデックス制御

oneapi::mkl::vm::mode::slice_normal

等しくないスライスサイズは無効とみなされます。(デフォルト)

oneapi::mkl::vm::mode::slice_minimum

すべてのスライスサイズの最小値によって評価数が決まります。

oneapi::mkl::vm::mode::slice_cyclic

出力スライスのサイズによって評価数が決まります。入力スライスは最初から折り返されます。

デフォルトのローカルモード

oneapi::mkl::vm::mode::not_defined

VM モードが定義されていません。これには効果がありません。

VM モードが定義されていない場合、または VM モード値が mode::not_defined に設定されている場合のデフォルト値は (mode::badarg_exception | mode::slice_normal | mode::ha) です。

API#

構文#

uint64_t set_mode(queue& exec_queue, uint64_t new_mode )

set_mode は次のデバイスをサポートします: CPU と GPU。

入力パラメーター#

exec_queue

ルーチンが実行されるキュー。

new_mode

設定する VM モードを指定します。

出力パラメーター#

戻り値 (ステータス)

以前の VM モードを指定します。

#

oldmode = set_mode (exec_queue , mode::la); 
oldmode = set_mode (exec_queue , mode::ep | mode::ftzdazon);