diff options
Diffstat (limited to 'inference-engine/thirdparty/clDNN/api/CPP/tensor.hpp')
-rw-r--r-- | inference-engine/thirdparty/clDNN/api/CPP/tensor.hpp | 19 |
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); |