summaryrefslogtreecommitdiff
path: root/inference-engine/thirdparty/mkl-dnn/tests/benchdnn/ip/cfg.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'inference-engine/thirdparty/mkl-dnn/tests/benchdnn/ip/cfg.cpp')
-rw-r--r--inference-engine/thirdparty/mkl-dnn/tests/benchdnn/ip/cfg.cpp110
1 files changed, 110 insertions, 0 deletions
diff --git a/inference-engine/thirdparty/mkl-dnn/tests/benchdnn/ip/cfg.cpp b/inference-engine/thirdparty/mkl-dnn/tests/benchdnn/ip/cfg.cpp
new file mode 100644
index 000000000..2f4d1bcc1
--- /dev/null
+++ b/inference-engine/thirdparty/mkl-dnn/tests/benchdnn/ip/cfg.cpp
@@ -0,0 +1,110 @@
+/*******************************************************************************
+* Copyright 2018 Intel Corporation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*******************************************************************************/
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <float.h>
+
+#include "mkldnn.h"
+#include "mkldnn_common.hpp"
+
+#include "ip.hpp"
+
+namespace ip {
+
+/* cfgs definition
+ * arrays: SRC, WEI, BIA, DST, ACC
+ * params: {data_type, min, max, f_min, f_max, f_base, f_step, f_sparsity, eps}
+ */
+
+const int int_max_exact = 1<<24;
+const _dt_conf_t conf_f32 = {
+ {mkldnn_f32, -int_max_exact, int_max_exact, -32, 32, 0, 1, .35, 0.},
+ {mkldnn_f32, -int_max_exact, int_max_exact, -32, 32, 0, 1, 1.0, 0.},
+ {mkldnn_f32, -int_max_exact, int_max_exact, -512, 512, 0, 1, 1.0, 0.},
+ {mkldnn_f32, -int_max_exact, int_max_exact, -32, 32, 0, 1, .35, 0.},
+ {mkldnn_f32,},
+};
+
+const _dt_conf_t conf_s16s16s32s32 = {
+ {mkldnn_s16, INT16_MIN, INT16_MAX, -4, 4, 0, 1, .35, 0.},
+ {mkldnn_s16, INT16_MIN, INT16_MAX, -5, 5, 0, 1, .35, 0.},
+ {mkldnn_s32, INT32_MIN, INT32_MAX, -8, 32, 0, 1, .35, 0.},
+ {mkldnn_s32, INT32_MIN, INT32_MAX, -4, 4, 0, 1, .35, 0.},
+ {mkldnn_s32,},
+};
+
+const _dt_conf_t conf_u8s8f32s32 = {
+ {mkldnn_u8, 0, UINT8_MAX, 0, 8, 0, 1, .35, 0.},
+ {mkldnn_s8, INT8_MIN, INT8_MAX, -5, 5, 0, 1, .35, 0.},
+ {mkldnn_f32, -int_max_exact, int_max_exact, -8, 32, 0, 1, .35, 0.},
+ {mkldnn_f32, -int_max_exact, int_max_exact, -255, 255, 0, 1, .35, 0.},
+ {mkldnn_s32,},
+};
+
+const _dt_conf_t conf_u8s8s32s32 = {
+ {mkldnn_u8, 0, UINT8_MAX, 0, 8, 0, 1, .35, 0.},
+ {mkldnn_s8, INT8_MIN, INT8_MAX, -5, 5, 0, 1, .35, 0.},
+ {mkldnn_f32, -int_max_exact, int_max_exact, -8, 32, 0, 1, .35, 0.},
+ {mkldnn_s32, INT32_MIN, INT32_MAX, -255, 255, 0, 1, .35, 0.},
+ {mkldnn_s32,},
+};
+
+const _dt_conf_t conf_u8s8s8s32 = {
+ {mkldnn_u8, 0, UINT8_MAX, 0, 8, 0, 1, .35, 0.},
+ {mkldnn_s8, INT8_MIN, INT8_MAX, -5, 5, 0, 1, .35, 0.},
+ {mkldnn_f32, -int_max_exact, int_max_exact, -8, 32, 0, 1, .35, 0.},
+ {mkldnn_s8, INT8_MIN, INT8_MAX, -127, 127, 0, 1, .35, 0.},
+ {mkldnn_s32,},
+};
+
+const _dt_conf_t conf_u8s8u8s32 = {
+ {mkldnn_u8, 0, UINT8_MAX, 0, 8, 0, 1, .35, 0.},
+ {mkldnn_s8, INT8_MIN, INT8_MAX, -5, 5, 0, 1, .35, 0.},
+ {mkldnn_f32, -int_max_exact, int_max_exact, -8, 32, 0, 1, .35, 0.},
+ {mkldnn_u8, 0, UINT8_MAX, 0, 255, 0, 1, .35, 0.},
+ {mkldnn_s32,},
+};
+
+const dt_conf_t *str2cfg(const char *str) {
+#define CASE(cfg) \
+ if (!strcasecmp(STRINGIFY(cfg), str)) return CONCAT2(conf_,cfg)
+ CASE(f32);
+ CASE(s16s16s32s32);
+ CASE(u8s8f32s32);
+ CASE(u8s8s32s32);
+ CASE(u8s8s8s32);
+ CASE(u8s8u8s32);
+#undef CASE
+ []() { SAFE(FAIL, CRIT); return 0; }();
+ return (const dt_conf_t *)1;
+}
+
+const char *cfg2str(const dt_conf_t *cfg) {
+#define CASE(_cfg) if (cfg == CONCAT2(conf_,_cfg)) return STRINGIFY(_cfg)
+ CASE(f32);
+ CASE(s16s16s32s32);
+ CASE(u8s8f32s32);
+ CASE(u8s8s32s32);
+ CASE(u8s8s8s32);
+ CASE(u8s8u8s32);
+#undef CASE
+ []() { SAFE(FAIL, CRIT); return 0; }();
+ return NULL;
+}
+
+}