Specifying Code Branches
Intel® oneAPI Math Kernel Library
Intel® oneAPI Math Kernel Library
MKL_CBWR
environment variable.
- MKL_CBWR="or<branch>[,STRICT]"
- MKL_CBWR="BRANCH=<branch>[,STRICT]"
Use the
STRICT
flag to enable strict CNR mode. For more information, see
Reproducibility Conditions.
The
placeholder specifies the CNR branch with one of the following values:
<branch>
Value
| Description
|
---|---|
AUTO | CNR mode uses the standard ISA-based dispatching model while ensuring fixed cache sizes, deterministic reductions, and static scheduling
|
COMPATIBLE | Intel® Streaming SIMD Extensions 2 (Intel® SSE2) without rcpps/rsqrtps instructions
|
SSE4_2 | Intel® Streaming SIMD Extensions 4.2 (Intel® SSE4.2)
|
AVX | Intel® Advanced Vector Extensions (Intel® AVX)
|
AVX2 | Intel® Advanced Vector Extensions 2 (Intel® AVX2)
|
AVX512 | Intel AVX-512 on Intel® Xeon® processors
|
AVX512_E1 | Intel® Advanced Vector Extensions 512 (Intel® AVX-512) with support for Vector Neural Network Instructions
|
AVX512_MIC | DEPRECATED.
Intel® Advanced Vector Extensions 512 (Intel® AVX-512) on Intel® Xeon Phi™ processors. This setting is kept for backward compatibility and is equivalent to
AVX2 .
|
AVX512_MIC_E1 | DEPRECATED.
Intel® Advanced Vector Extensions 512 (Intel® AVX-512) with support for Vector Neural Network Instructions on Intel® Xeon Phi™ processors. This setting is kept for backward compatibility and is equivalent to
AVX2 .
|
When specifying the CNR branch, be aware of the following:
- Reproducible results are provided under Reproducibility Conditions.
- Settings other thanAUTOorCOMPATIBLEare available only for Intel processors.
- To get the CNR branch optimized for the processor where your program is currently running, choose the value ofAUTOor call themkl_cbwr_get_auto_branchfunction.
- Strict CNR mode is supported only for AVX2, AVX512, AVX512_E1, AVX512_MIC, and AVX512_MIC_E1 branches. You can also use strict CNR mode with the AUTO branch when running on Intel processors that support one of these instruction set architectures (ISAs).
Setting the
MKL_CBWR
environment variable or a call to an equivalent
mkl_cbwr_set
function fixes the code branch and sets the reproducibility mode.
- If the value of the branch is incorrect or your processor or operating system does not support the specified ISA, CNR ignores this value and uses theAUTObranch without providing any warning messages.
- Calls to functions that define the behavior of CNR must precede any of the math library functions that they control.
- Settings specified by the functions take precedence over the settings specified by the environment variable.
See the
Developer Reference for how to specify the branches using functions.
Intel® oneAPI Math Kernel Library
Product and Performance Information
|
---|
Performance varies by use, configuration and other factors. Learn more at
www.Intel.com/PerformanceIndex.
Notice revision #20201201
|