summaryrefslogtreecommitdiff
path: root/inference-engine/thirdparty/clDNN/api/CPP/tensor.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'inference-engine/thirdparty/clDNN/api/CPP/tensor.hpp')
-rw-r--r--inference-engine/thirdparty/clDNN/api/CPP/tensor.hpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/inference-engine/thirdparty/clDNN/api/CPP/tensor.hpp b/inference-engine/thirdparty/clDNN/api/CPP/tensor.hpp
index 804993bda..2a5439e63 100644
--- a/inference-engine/thirdparty/clDNN/api/CPP/tensor.hpp
+++ b/inference-engine/thirdparty/clDNN/api/CPP/tensor.hpp
@@ -101,7 +101,9 @@ struct format
image_2d_weights_winograd_6x3_s1_fbxyb, ///< image format used for weights for winograd fused convolution, F(6,3) -- filter 3x3 with stride 1
image_2d_weights_winograd_6x3_s1_xfbyb, ///< image format used for weights for winograd fused convolution, F(6,3) -- filter 3x3 with stride 1
os_is_yx_isa8_osv8_isv4, /// format for weights for MMAD convolution
+ is_o_yx_isv32, /// format for weights for 1x1 MMAD convolutions
byxf_af32, /// < \n format for input for primitives using MMAD
+ fs_bs_yx_bsv4_fsv32, /// < \n format for batched input for primitives using MMAD
format_num = cldnn_format_format_num, ///< number of format types
any = cldnn_format_any
};
@@ -129,7 +131,9 @@ struct format
{ image_2d_weights_winograd_6x3_s1_fbxyb,{ 1, 1, 2, "xyfb", "bfxy" } },
{ image_2d_weights_winograd_6x3_s1_xfbyb,{ 1, 1, 2, "xyfb", "bfxy" } },
{ os_is_yx_isa8_osv8_isv4, { 1, 1, 2, "bfyx", "bfxy" } },
- { byxf_af32, { 1, 1, 2, "byxf", "bfxy" } }
+ { is_o_yx_isv32 , {1, 1, 2, "byxf", "bfxy" } },
+ { byxf_af32, { 1, 1, 2, "byxf", "bfxy" } },
+ { fs_bs_yx_bsv4_fsv32 , { 1, 1, 2, "fbyx", "bfxy" }}
};
return traits.at(fmt);
}
@@ -695,12 +699,23 @@ public:
adjusted_coords[0] = align_to(adjusted_coords[0], 8);
adjusted_coords[1] = align_to(adjusted_coords[1], 32);
}
+ else if (fmt == cldnn::format::is_o_yx_isv32 && !(is_aligned_to(my_sizes[1], 32)))
+ {
+ my_sizes[1] = align_to(my_sizes[1], 32);
+ adjusted_coords[1] = align_to(adjusted_coords[1], 32);
+ }
else if (fmt == cldnn::format::byxf_af32 && !(is_aligned_to(my_sizes[1], 32)))
{
my_sizes[1] = align_to(my_sizes[1], 32);
adjusted_coords[1] = align_to(adjusted_coords[1], 32);
}
-
+ else if (fmt == cldnn::format::fs_bs_yx_bsv4_fsv32 && (!is_aligned_to(my_sizes[1], 32) || !is_aligned_to(my_sizes[0], 4) ))
+ {
+ my_sizes[1] = align_to(my_sizes[1], 32);
+ my_sizes[0] = align_to(my_sizes[0], 4);
+ adjusted_coords[0] = align_to(adjusted_coords[0], 4);
+ adjusted_coords[1] = align_to(adjusted_coords[1], 32);
+ }
assert(my_sizes.size() == adjusted_coords.size());
assert(adjusted_coords.size() > 0);