The following examples illustrate usage of support functions for conditional numerical reproducibility.
#include <mkl.h>
int main(void) {
int my_cbwr_branch;
/* Find the available MKL_CBWR_BRANCH automatically */
my_cbwr_branch = mkl_cbwr_get_auto_branch();
/* User code without Intel MKL calls */
/* Piece of the code where CNR of Intel MKL is needed */
/* The performance of Intel MKL functions might be reduced for CNR mode */
if (mkl_cbwr_set(my_cbwr_branch)!=MKL_CBWR_SUCCESS) {
printf("Error in setting MKL_CBWR_BRANCH! Aborting…\n");
return;
}
/* CNR calls to Intel MKL + any other code */
}
#include <mkl.h>
int main(void) {
int my_cbwr_branch;
/* Piece of the code where CNR of Intel MKL is analyzed */
my_cbwr_branch = mkl_cbwr_get(MKL_CBWR_BRANCH);
switch (my_cbwr_branch) {
case MKL_CBWR_AUTO:
/* actions in case of automatic mode */
break;
case MKL_CBWR_SSSE3:
/* actions for SSSE3 code */
break;
default:
/* all other cases */
}
/* User code */
}
Product and Performance Information |
|---|
Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex. Notice revision #20201201 |