Intel® oneAPI Math Kernel Library Developer Reference - C
To get reproducible results from run to run, ensure that the number of threads is fixed and constant. Specifically:
In strict CNR mode, Intel® oneAPI Math Kernel Library provides bitwise reproducible results for a limited set of functions and code branches even when the number of threads changes. These routines and branches support strict CNR mode (64-bit libraries only):
When using other routines or CNR branches, Intel® oneAPI Math Kernel Library operates in standard (non-strict) CNR mode, subject to the restrictions described above. Enabling strict CNR mode can reduce performance.
As usual, you should align your data, even in CNR mode, to obtain the best possible performance. While CNR mode also fully supports unaligned input and output data, the use of it might reduce the performance of some oneAPI Math Kernel Library functions on earlier Intel processors. To ensure proper alignment of arrays, allocate memory for them using mkl_malloc/mkl_calloc.
Conditional Numerical Reproducibility does not ensure that bitwise-identical NaN values are generated when the input data contains NaN values.
If dynamic memory allocation fails on one run but succeeds on another run, you may fail to get reproducible results between these two runs.
Product and Performance Information |
---|
Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex. Notice revision #20201201 |