Visible to Intel only — GUID: GUID-338A6978-DAA9-48F0-80E5-8AF28B6A08C8
Visible to Intel only — GUID: GUID-338A6978-DAA9-48F0-80E5-8AF28B6A08C8
set_mode
Sets a new mode for VM functions according to the mode parameter and returns the previous VM mode.
Description
The set_mode function sets a new mode for VM functions according to the new_mode parameter and returns the previous VM mode. The mode change has a global effect on all the VM functions within a queue.
oneMKL VM mode parameters provide control on the accuracy of mathematical functions, and on oneMKL VM Strided API behavior. The mode set for a given queue can be overridden locally by the local mode parameter in a VM function call.
The mode value is a bitwise OR (|) combination of the values described in the following table.
Value |
Description |
---|---|
Accuracy Control |
|
oneapi::mkl::vm::mode::ha |
High accuracy versions of VM functions. (DEFAULT) |
oneapi::mkl::vm::mode::la |
Low accuracy versions of VM functions. |
oneapi::mkl::vm::mode::ep |
Enhanced performance accuracy versions of VM functions. |
Slice Argument Checking |
|
oneapi::mkl::vm::mode::badarg_exception |
Throw a oneapi::mkl::invalid_argument exception on invalid arguments. (DEFAULT) |
oneapi::mkl::vm::mode::badarg_quiet |
Invalid arguments quietly make the call a “no-op”. The VM status is set to vm::status::empty_computation. |
Slice Indexing Controls |
|
oneapi::mkl::vm::mode::slice_normal |
Non-equal slice sizes are considered invalid. (DEFAULT) |
oneapi::mkl::vm::mode::slice_minimum |
The minimum of all slice sizes defines the number of evaluations. |
oneapi::mkl::vm::mode::slice_cyclic |
The output slice(s) size defines the number of evaluations. Input slices wrap around from the start. |
Default Local Mode |
|
oneapi::mkl::vm::mode::not_defined |
VM mode not defined. This has no effect. |
The default value if no VM mode is defined or if the VM mode value is set to mode::not_defined is (mode::badarg_exception | mode::slice_normal | mode::ha).
API
Syntax
uint64_t set_mode(queue& exec_queue, uint64_t new_mode )
set_mode supports the following devices: CPU and GPU.
Input Parameters
- exec_queue
-
The queue where the routine should be executed.
- new_mode
-
Specifies the VM mode to be set.
Output Parameters
- return value (old_mode)
-
Specifies the former VM mode.
Examples
oldmode = set_mode (exec_queue , mode::la); oldmode = set_mode (exec_queue , mode::ep | mode::ftzdazon);