{"id":379980,"date":"2024-06-26T15:00:44","date_gmt":"2024-06-26T15:00:44","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=379980"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=379980","title":{"rendered":"<span>12 \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u0438\u0439 \u043e\u043f\u0435\u0447\u0430\u0442\u043e\u043a \u0438 \u043a\u043e\u043f\u0438\u043f\u0430\u0441\u0442\u0430, \u0438\u043b\u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u0441\u0431\u043e\u0438\u0442 AI: \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043a\u043e\u0434 OpenVINO<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>&#171;OpenVINO \u2014 \u043d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 AI \u0434\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u043c\u0438\u0440\u043e\u043c \u0442\u0435\u043f\u0435\u0440\u044c Open Source!&#187; \u2014 \u044d\u0442\u0430 \u043d\u043e\u0432\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u043d\u0430\u0441 \u043f\u0440\u043e\u0437\u0432\u0443\u0447\u0430\u043b\u0430 \u043a\u0430\u043a \u043f\u0440\u0438\u0437\u044b\u0432 \u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044e. \u041a\u043e\u0434 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d, \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0430\u0439\u0434\u0435\u043d\u044b, \u0438 \u043f\u0435\u0440\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u0438 \u0433\u043e\u0442\u043e\u0432\u0430 \u043a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e. \u0411\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e!<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4f9\/00d\/e3f\/4f900de3fea2eec6fa36632ce0cb36f5.png\" width=\"1600\" height=\"902\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4f9\/00d\/e3f\/4f900de3fea2eec6fa36632ce0cb36f5.png\"\/><\/figure>\n<h3>\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0432 \u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0435<\/h3>\n<p>6 \u043c\u0430\u0440\u0442\u0430 2024 \u0433\u043e\u0434\u0430 Intel \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0430 Open Source \u0440\u0435\u0448\u0435\u043d\u0438\u0435 OpenVINO. \u0427\u0442\u043e \u0436\u0435 \u043e\u043d\u043e \u0438\u0437 \u0441\u0435\u0431\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442? \u041f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e, \u044d\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0449\u0438\u0439 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u0430\u043c \u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u043e\u0431\u0443\u0447\u0430\u0442\u044c AI \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u043c\u0443 \u0437\u0440\u0435\u043d\u0438\u044e.<\/p>\n<details class=\"spoiler\">\n<summary>\u0410 \u0435\u0441\u043b\u0438 \u043d\u0435 \u0437\u043d\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0435 \u0437\u0440\u0435\u043d\u0438\u0435, \u0432\u0430\u043c \u0441\u044e\u0434\u0430.<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0435 \u0437\u0440\u0435\u043d\u0438\u0435 \u2014 \u044d\u0442\u043e \u043a\u043e\u0433\u0434\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0431\u043e\u043b\u0435\u0435 \u0438\u043b\u0438 \u043c\u0435\u043d\u0435\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u0430\u043c\u0435\u0440\u044b, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u043e\u0439 \u043a \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0443, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0442\u044c \u043d\u0430 \u0432\u0438\u0434\u0435\u043e \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043d\u0430\u043c \u0434\u0430\u043d\u043d\u044b\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u0439\u043c\u0430\u0442\u044c \u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u0438\u0432 \u0431\u0435\u043b\u043e\u0433\u043e \u043a\u0440\u043e\u043b\u0438\u043a\u0430 \u043f\u043e\u0441\u0440\u0435\u0434\u0438 \u0442\u0430\u043a\u0438\u0445 \u0436\u0435 \u0431\u0435\u043b\u044b\u0445 \u0441\u0443\u0433\u0440\u043e\u0431\u043e\u0432 \u0437\u0438\u043c\u043e\u0439. \u0413\u043b\u0430\u0437\u0430\u043c\u0438 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u0440\u0430\u0439\u043d\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0442\u0438\u0447\u043d\u043e, \u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u0430\u043c\u0435\u0440\u044b \u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e AI \u043b\u044e\u0431\u043e\u0439 \u043a\u0440\u043e\u043b\u0438\u043a, \u043f\u0440\u043e\u0431\u0435\u0433\u0430\u044e\u0449\u0438\u0439 \u043c\u0438\u043c\u043e, \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u043d\u0435\u0437\u0430\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u043c.<\/p>\n<p>\u0421\u0442\u043e\u0438\u0442 \u0442\u0430\u043a\u0436\u0435 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0435 \u0437\u0440\u0435\u043d\u0438\u0435 \u0448\u0442\u0443\u043a\u0430 \u043a\u0440\u0430\u0439\u043d\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f, \u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u043e\u0431\u043b\u0430\u0441\u0442\u044f\u0445, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<ol>\n<li>\n<p>\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0438 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0441\u0435\u043b\u044c\u0441\u043a\u043e\u0445\u043e\u0437\u044f\u0439\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0438 \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0435\u0444\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435 \u0443 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0430\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0421\u0438\u0441\u0442\u0435\u043c\u044b \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u044f \u043b\u0438\u0446;<\/p>\n<\/li>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 AI \u0432 \u043a\u043e\u043b\u043e\u043d\u043e\u0441\u043a\u043e\u043f\u0438\u0438, \u043f\u0440\u0438 \u0443\u0445\u0443\u0434\u0448\u0435\u043d\u0438\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u0436\u0435 \u043f\u0440\u0438 \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u0438 \u0437\u0430\u0431\u043e\u043b\u0435\u0432\u0430\u043d\u0438\u0439 \u043c\u043e\u0437\u0433\u0430.<\/p>\n<\/li>\n<\/ol>\n<p>\u042d\u0442\u043e \u043d\u0435 \u043f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439, \u043d\u043e \u043a\u0430\u043a \u0431\u044b \u0438 \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0435 \u043f\u0440\u043e \u044d\u0442\u043e. \u0412 \u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0430 \u043d\u0435\u043e\u0441\u043f\u043e\u0440\u0438\u043c\u0430, \u0438 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0451 \u044d\u0442\u043e \u0441\u0442\u0430\u043b\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c, \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0443\u0433\u043b\u0443\u0431\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. \u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u0442\u0430\u043a\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043a\u0430\u043a \u0440\u0430\u0437-\u0442\u0430\u043a\u0438 \u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f OpenVINO.<\/p>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0415\u0441\u043b\u0438 \u0442\u043e\u0447\u043d\u0435\u0435, OpenVINO \u2014 \u044d\u0442\u043e \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u0443\u0442\u0438\u043b\u0438\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439. \u0422\u0430\u043a \u0436\u0435, \u043f\u043e\u043c\u0438\u043c\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u0435\u0441\u0442\u044c \u0435\u0449\u0451 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 AI \u0438 \u0441\u0432\u043e\u0439 \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a. \u041a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a.<\/p>\n<p>\u0418 \u0432\u043e\u0442, \u0432 \u0440\u043e\u0431\u043a\u043e\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u043f\u0440\u0438\u043a\u043e\u0441\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e\u043c\u0443 \u0441\u0432\u043e\u0438\u043c\u0438 \u043a\u0440\u0438\u0432\u0443\u043b\u044c\u043a\u0430\u043c\u0438, \u044f \u0432\u043d\u043e\u0432\u044c \u0440\u0430\u0441\u0447\u0435\u0445\u043b\u0438\u043b \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 PVS-Studio, \u0434\u0430\u0431\u044b \u043e\u043a\u0443\u043d\u0443\u0442\u044c\u0441\u044f \u0432 \u043a\u043e\u0434 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0438\u043d\u043e\u0440\u043e\u0434\u043d\u044b\u0445 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0445 \u0431\u0430\u0433\u0430\u043c\u0438. \u041a\u0430\u043a \u044f \u0443\u0436\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0440\u0430\u043d\u0435\u0435, \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e.<\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0431\u0430\u0433\u0438, \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0441\u0432\u043e\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442: AI \u043e\u0431\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 (\u0435\u0441\u043b\u0438 \u0441\u0443\u0434\u0438\u0442\u044c \u043f\u043e \u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u043c \u0441\u0442\u0430\u0442\u044c\u044f\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432).<\/p>\n<p>\u041d\u0438\u0436\u0435\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u0432 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u0432\u043e\u0435\u0433\u043e AI \u0432\u044b \u043d\u0435 \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u0435:<\/p>\n<blockquote>\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a: AI, \u044f \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0433\u043e \u0437\u0440\u0435\u043d\u0438\u044f \u043d\u0435 \u0447\u0443\u0432\u0441\u0442\u0432\u0443\u044e!<\/p>\n<p>AI: \u041c\u044f\u0443?!<\/p>\n<\/blockquote>\n<p>\u041a\u043e\u043c\u043c\u0438\u0442, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u044f \u0441\u043e\u0431\u0438\u0440\u0430\u043b \u043f\u0440\u043e\u0435\u043a\u0442 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438: <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/tree\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\">2d8ac08<\/a>.<\/p>\n<details class=\"spoiler\">\n<summary>\u0414\u0438\u0441\u043a\u043b\u0435\u0439\u043c\u0435\u0440<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u0446\u0435\u043b\u0438 \u043e\u0431\u0435\u0441\u0446\u0435\u043d\u0438\u0442\u044c \u0442\u0440\u0443\u0434 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432, \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430. \u0426\u0435\u043b\u044c: \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432 \u043a\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u044b \u0434\u0430\u0436\u0435 \u0434\u043b\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u0432\u0448\u0438\u0445\u0441\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432.<\/p>\n<\/div>\n<\/details>\n<h3>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438<\/h3>\n<p>\u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0431\u043e\u0433\u0430\u0442 \u043d\u0430 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u043f\u043e\u0441\u043b\u0435 copy-paste.<\/p>\n<p>\u0418\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0438 \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e, \u0434\u0430\u0431\u044b \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u043d\u0443\u0442\u044c \u0442\u043e\u0442 \u0444\u0430\u043a\u0442, \u0447\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0438 \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u043e\u0434\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0435\u0437\u0434\u0435.<\/p>\n<p>\u0418 \u0434\u0430, \u0432\u0441\u0435\u0433\u0434\u0430 \u0435\u0441\u0442\u044c \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0442\u0430\u043a \u0438 \u0431\u044b\u043b\u043e \u0437\u0430\u0434\u0443\u043c\u0430\u043d\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u043c, \u043d\u043e, \u0441\u0438\u044f \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c&#8230; \u043a\u0440\u0430\u0439\u043d\u0435 \u043c\u0430\u043b\u0430: &#171;\u0418\u043c\u043c\u043e\u043b\u0435\u0439\u0442 \u0438\u043c\u043f\u0440\u0443\u0432\u0435\u0434!&#187;<\/p>\n<p><strong>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 N1<\/strong><\/p>\n<pre><code class=\"cpp\">ov::pass::ConvertPadToGroupConvolution::                        ConvertPadToGroupConvolution()  {   ....   const auto&amp; pad_begin = pad->get_pads_begin();   const auto&amp; pad_end = pad->get_pads_end();    if (pad_begin.empty() || pad_end.empty())    {     \/\/ pads will be empty if inputs are not constants     return false;   }    \/\/ check that Pad has non-negative values   auto pred = [](int64_t a)                {                 return a &lt; 0;               };   if (std::any_of(pad_begin.begin(), pad_begin.end(), pred) ||       std::any_of(pad_begin.begin(), pad_begin.end(), pred))  \/\/ &lt;=   {      return false;   }   .... } <\/code><\/pre>\n<p>\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430:<\/p>\n<p><a href=\"https:\/\/pvs-studio.ru\/ru\/docs\/warnings\/v501\/\">V501<\/a> There are identical sub-expressions &#8216;std::any_of(pad_begin.begin(), pad_begin.end(), pred)&#8217; to the left and to the right of the &#8216;||&#8217; operator. <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/common\/transformations\/src\/transformations\/op_conversions\/convert_pad_to_group_conv.cpp\">convert_pad_to_group_conv.cpp<\/a> 66<\/p>\n<p>\u041a\u0430\u043a \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0438\u0436\u043d\u0435\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0434\u0432\u0430 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f: \u043e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435 \u0432\u044b\u0437\u043e\u0432\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <em>std::any_of<\/em> \u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438. \u041a\u043e\u0434 \u0432\u044b\u0448\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0432 \u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0430\u043a, \u0432\u0435\u0434\u044c \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043d\u0435\u0433\u043e, \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u044b\u0432\u043e\u0434, \u0447\u0442\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u0435, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"cpp\">if (std::any_of(pad_begin.begin(), pad_begin.end(), pred) ||     std::any_of(pad_end.begin(), pad_end.end(), pred))  {       return false; } <\/code><\/pre>\n<p><strong>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 N2<\/strong><\/p>\n<pre><code class=\"cpp\">ov::pass::ShuffleChannelsFusion::                    ShuffleChannelsFusion(const bool reshape_constants_check) {   ....   auto reshape_before_constant = std::dynamic_pointer_cast                                        &lt;ov::op::v0::Constant>(        pattern_map.at(reshape_before_const_pattern).get_node_shared_ptr());    auto reshape_before = std::dynamic_pointer_cast&lt;ov::op::v1::Reshape>(        pattern_map.at(reshape_before_pattern).get_node_shared_ptr());    auto transpose = std::dynamic_pointer_cast&lt;ov::op::v1::Transpose>(        pattern_map.at(transpose_pattern).get_node_shared_ptr());    auto reshape_after = std::dynamic_pointer_cast&lt;ov::op::v1::Reshape>(        pattern_map.at(reshape_after_pattern).get_node_shared_ptr());    auto reshape_after_constant = std::dynamic_pointer_cast&lt;ov::op::v0::Constant>(        pattern_map.at(reshape_after_const_pattern).get_node_shared_ptr());    if (!reshape_after || !transpose || !reshape_after ||      \/\/ &lt;=       !reshape_before_constant || !reshape_after_constant)    {     return false;   }   .... } <\/code><\/pre>\n<p>\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430:<\/p>\n<p><a href=\"https:\/\/pvs-studio.ru\/ru\/docs\/warnings\/v501\/\">V501<\/a> There are identical sub-expressions &#8216;!reshape_after&#8217; to the left and to the right of the &#8216;||&#8217; operator. <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/common\/transformations\/src\/transformations\/common_optimizations\/shuffle_channels_fusion.cpp\">shuffle_channels_fusion.cpp<\/a> 115<\/p>\n<p>\u0421\u043d\u043e\u0432\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u0438. \u0414\u0432\u0430 \u0440\u0430\u0437\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e, \u0447\u0442\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c <em>reshape_after<\/em> \u043d\u0435\u043d\u0443\u043b\u0435\u0432\u043e\u0439. \u0415\u0441\u043b\u0438 \u0441\u043d\u043e\u0432\u0430 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043a\u043e\u0434 \u0432\u044b\u0448\u0435, \u0437\u0430\u043c\u0435\u0442\u0438\u043c \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e <em>reshape_before<\/em>. \u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"cpp\">if (!reshape_after || !transpose || !reshape_before ||     !reshape_before_constant || !reshape_after_constant)  {     return false; } <\/code><\/pre>\n<p><strong>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 N3<\/strong><\/p>\n<pre><code class=\"cpp\">.... using PatternValueMaps = std::vector&lt;PatternValueMap>; .... PatternValueMaps m_pattern_value_maps; .... MatcherState::~MatcherState()  {   if (m_restore)    {     if (!m_matcher->m_matched_list.empty())     {       m_matcher->m_matched_list.erase(m_matcher->m_matched_list.begin() +                                        m_watermark,                                       m_matcher->m_matched_list.end());     }     if (!m_pattern_value_maps.empty())     {       m_matcher->m_pattern_value_maps.erase(m_pattern_value_maps.begin() + \/\/ &lt;=                                             m_capture_size,                                             m_pattern_value_maps.end());     }     m_matcher->m_pattern_map = m_pattern_value_map;   } } <\/code><\/pre>\n<p>\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430:<\/p>\n<p><a href=\"https:\/\/pvs-studio.ru\/ru\/docs\/warnings\/v539\/\">V539<\/a> [CERT-CTR53-CPP] Consider inspecting iterators which are being passed as arguments to function &#8216;erase&#8217;. <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/core\/src\/pattern\/matcher.cpp\">matcher.cpp<\/a> 48<\/p>\n<p>\u041d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u043e\u0448\u0438\u0431\u043a\u0430 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u0430\u044f. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u0441\u0451 \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443.<\/p>\n<p>\u0412\u043d\u0430\u0447\u0430\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0432\u0435\u043a\u0442\u043e\u0440 <em>m_pattern_value_maps<\/em> \u043d\u0435 \u043f\u0443\u0441\u0442\u043e\u0439.<\/p>\n<p>\u0417\u0430\u0442\u0435\u043c \u043c\u044b \u0437\u0430\u043c\u0435\u0447\u0430\u0435\u043c, \u0447\u0442\u043e \u0432 <em>then<\/em>-\u0432\u0435\u0442\u043a\u0435 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0433\u043e <em>if<\/em> \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0440\u0430\u0431\u043e\u0442\u0430 \u0443\u0436\u0435 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u043c:* m_matcher->m_pattern_value_maps*. \u0414\u0430\u043b\u044c\u0448\u0435 \u2014 \u0431\u043e\u043b\u044c\u0448\u0435.<\/p>\n<p>\u0412 \u0444\u0443\u043d\u043a\u0446\u0438\u044e-\u0447\u043b\u0435\u043d <em>std::vector&lt;PatternValueMap>::erase<\/em> \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 <em>m_matcher->m_pattern_value_maps<\/em> \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u0432 \u0432\u0438\u0434\u0435 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u2014 <em>m_pattern_value_maps<\/em>. \u0418 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u044d\u0442\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442.<\/p>\n<p>\u0421\u0443\u0434\u044f \u043f\u043e <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/core\/src\/pattern\/matcher.cpp#L19-L23\">\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0443<\/a> \u0438 <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/core\/src\/pattern\/matcher.cpp#L40-L54\">\u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0443<\/a>, \u043a\u043b\u0430\u0441\u0441 <em>MatcherState<\/em> \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u043e\u0442\u043a\u0430\u0442\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/core\/include\/openvino\/pass\/pattern\/matcher.hpp#L35\">\u043e\u0431\u044a\u0435\u043a\u0442\u0430<\/a> \u0442\u0438\u043f\u0430 <em>Matcher<\/em>. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0440\u0430\u043d\u044c\u0448\u0435 \u043a\u043e\u0434 <em>RAII<\/em>-\u043e\u0431\u0451\u0440\u0442\u043a\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u043b \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0442\u0438\u043f\u0430 <em>Matcher<\/em> \u0432 <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/core\/include\/openvino\/pass\/pattern\/matcher.hpp#L36-L37\">\u043f\u043e\u043b\u044f\u0445<\/a> <em>MatcherState::m_pattern_value_map<\/em> \u0438 <em>MatcherState::m_pattern_value_maps<\/em> \u0438 \u0437\u0430\u0442\u0435\u043c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u043b \u0432 \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435.<\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u043f\u043e\u0442\u043e\u043c \u043a\u043e\u0434 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043b\u0438, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/core\/include\/openvino\/pass\/pattern\/matcher.hpp#L38-L39\">\u043f\u043e\u043b\u044f<\/a> <em>MatcherState::m_watermark<\/em> \u0438 <em>MatcherState::m_capture_size<\/em>. \u041e\u043d\u0438 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u044b \u0437\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u043a\u043e\u043d\u0435\u0446 <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/core\/include\/openvino\/pass\/pattern\/matcher.hpp#L177-L178\">\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432<\/a> <em>Matcher::m_matched_list<\/em> \u0438 <em>Matcher::m_pattern_value_maps<\/em>.<\/p>\n<p>\u0418\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u043a\u043e\u0434 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"cpp\">if (!m_matcher->m_pattern_value_maps.empty()) {   m_matcher->m_pattern_value_maps.erase(                                   m_matcher->m_pattern_value_maps.begin() +                                   m_capture_size,                                   m_matcher->m_pattern_value_maps.end()     ); } <\/code><\/pre>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0445\u043e\u0447\u0443 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u043e\u043b\u0435 <em>MatcherState::m_pattern_value_maps<\/em> \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f, \u0438, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0435\u0433\u043e \u0441\u0442\u043e\u0438\u0442 \u0443\u0434\u0430\u043b\u0438\u0442\u044c.<\/p>\n<p><strong>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 N4<\/strong><\/p>\n<pre><code class=\"cpp\">template &lt;x64::cpu_isa_t isa> void jit_power_dynamic_emitter::               emit_isa(const std::vector&lt;size_t> &amp;in_vec_idxs,                         const std::vector&lt;size_t> &amp;out_vec_idxs) const  {   ....   if (isa == x64::avx512_core || isa == x64::avx512_core)    \/\/ &lt;=   {     h->sub(h->rsp, n_k_regs_to_save * k_mask_size);     for (size_t i = 0; i &lt; n_k_regs_to_save; ++i)      {       if (x64::mayiuse(x64::avx512_core))         h->kmovq(h->ptr[h->rsp + i * k_mask_size], Opmask(i));       else         h->kmovw(h->ptr[h->rsp + i * k_mask_size], Opmask(i));     }   }   .... } <\/code><\/pre>\n<p>\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430:<\/p>\n<p><a href=\"https:\/\/pvs-studio.ru\/ru\/docs\/warnings\/v501\/\">V501<\/a> There are identical sub-expressions &#8216;isa == x64::avx512_core&#8217; to the left and to the right of the &#8216;||&#8217; operator. <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/plugins\/intel_cpu\/src\/emitters\/plugin\/x64\/jit_eltwise_emitters.cpp\">jit_eltwise_emitters.cpp<\/a> 705<\/p>\n<p>\u0418 \u0441\u043d\u043e\u0432\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u0438: \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u0434\u0432\u0430 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438 <em>isa<\/em> \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0440\u0430\u0432\u043d\u043e \u0434\u0440\u0443\u0433\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e.<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0447\u0442\u043e \u044d\u0442\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u0434\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432 \u0442\u0440\u0451\u0445 \u043c\u0435\u0441\u0442\u0430\u0445:<\/p>\n<ol>\n<li>\n<p>V501 There are identical sub-expressions &#8216;isa == x64::avx512_core&#8217; to the left and to the right of the &#8216;||&#8217; operator. jit_eltwise_emitters.cpp 754<\/p>\n<\/li>\n<li>\n<p>V501 There are identical sub-expressions &#8216;isa == x64::avx512_core&#8217; to the left and to the right of the &#8216;||&#8217; operator. jit_eltwise_emitters.cpp 1609<\/p>\n<\/li>\n<li>\n<p>V501 There are identical sub-expressions &#8216;isa == x64::avx512_core&#8217; to the left and to the right of the &#8216;||&#8217; operator. jit_eltwise_emitters.cpp 1658<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 N5<\/strong><\/p>\n<pre><code class=\"cpp\">void GridSampleKernel&lt;isa>::reflectionPadding(const Vmm&amp; vCoordDst,                                                const Vmm&amp; vCoordOrigin,                                                const coord dim         )  {   ....   if (dim == coord::w)    {     ....   } else if (coord::h)                      \/\/ &lt;=   {     ....            } else {....}   .... } <\/code><\/pre>\n<p>\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430:<\/p>\n<p><a href=\"https:\/\/pvs-studio.ru\/ru\/docs\/warnings\/v768\/\">V768<\/a> The enumeration constant &#8216;h&#8217; is used as a variable of a Boolean-type. <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/plugins\/intel_cpu\/src\/nodes\/kernels\/x64\/grid_sample.cpp\">grid_sample.cpp<\/a> 925<\/p>\n<p>\u041e\u0447\u0435\u043d\u044c \u0441\u0442\u0440\u0430\u043d\u043d\u043e, \u0447\u0442\u043e \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 <em>coord::h<\/em>. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043e\u043d\u0430 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 1, \u0438 \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c <em>true<\/em>, \u0447\u0442\u043e \u044f\u0432\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u043e\u0439.<\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u043e\u0434 \u0432 \u0442\u0435\u043b\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0432\u0435\u0442\u043a\u0438 <em>else<\/em> \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d. \u0427\u0442\u043e \u0436\u0435 \u044d\u0442\u043e: \u0445\u0438\u0442\u0440\u0430\u044f \u0437\u0430\u0434\u0443\u043c\u043a\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0438\u043b\u0438, \u043c\u043e\u0436\u0435\u0442, \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u043a\u043e\u0434\u0430? \u0421\u043a\u043e\u0440\u0435\u0435 \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u0431\u0430\u0433, \u0438 \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u0438 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 <em>dim == coord::h<\/em>.<\/p>\n<p>\u0418 \u0435\u0449\u0451 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439:<\/p>\n<ol>\n<li>\n<p>V768 The enumeration constant &#8216;h&#8217; is used as a variable of a Boolean-type. grid_sample.cpp 959<\/p>\n<\/li>\n<li>\n<p>V768 The enumeration constant &#8216;h&#8217; is used as a variable of a Boolean-type. grid_sample.cpp 990<\/p>\n<\/li>\n<\/ol>\n<p>\u041e\u0448\u0438\u0431\u043a\u0430 \u0442\u0430\u043a\u0436\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043b \u043f\u043e\u043b\u0435 <em>coord::h<\/em> \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u0435, \u043d\u043e \u0437\u0430\u0431\u044b\u043b \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 <em>dim<\/em>.<\/p>\n<p><strong>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 N6<\/strong><\/p>\n<pre><code class=\"cpp\">OutputVector translate_im2col(const NodeContext&amp; context)  {   num_inputs_check(context, 5, 5);   auto input = context.get_input(0);   auto kernel_size = context.const_input&lt;std::vector&lt;int64_t>>(1);   PYTORCH_OP_CONVERSION_CHECK(kernel_size.size() == 2,                                \"kernel size should contains 2 elements\");   auto dilation = context.const_input&lt;std::vector&lt;int64_t>>(2);   PYTORCH_OP_CONVERSION_CHECK(kernel_size.size() == 2,               \/\/ &lt;=                               \"dilation should contains 2 elements\");   auto padding = context.const_input&lt;std::vector&lt;int64_t>>(3);   PYTORCH_OP_CONVERSION_CHECK(kernel_size.size() == 2,               \/\/ &lt;=                               \"padding should contains 2 elements\");   auto stride = context.const_input&lt;std::vector&lt;int64_t>>(4);   PYTORCH_OP_CONVERSION_CHECK(kernel_size.size() == 2,               \/\/ &lt;=                               \"stride should contains 2 elements\");   .... } <\/code><\/pre>\n<p>\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430:<\/p>\n<p><a href=\"https:\/\/pvs-studio.ru\/ru\/docs\/warnings\/v547\/\">V547<\/a> Expression &#8216;kernel_size.size() == 2&#8217; is always true. <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/frontends\/pytorch\/src\/op\/im2col.cpp\">im2col.cpp<\/a> 65<\/p>\n<p>\u0418 \u0435\u0449\u0451 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u044b:<\/p>\n<ol>\n<li>\n<p>V547 Expression &#8216;kernel_size.size() == 2&#8217; is always true. im2col.cpp 67<\/p>\n<\/li>\n<li>\n<p>V547 Expression &#8216;kernel_size.size() == 2&#8217; is always true. im2col.cpp 69<\/p>\n<\/li>\n<\/ol>\n<p>\u041d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0430\u043c \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0432\u0441\u0435\u043c\u0438 \u044d\u0442\u0438\u043c\u0438 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f\u043c\u0438, \u043d\u043e \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0430\u0435\u043c.<\/p>\n<p>\u041f\u0435\u0440\u0432\u043e\u0435, \u0447\u0442\u043e \u0431\u0440\u043e\u0441\u0430\u0435\u0442\u0441\u044f \u0432 \u0433\u043b\u0430\u0437\u0430: \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 <em>kernel_size.size() == 2<\/em> \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0430\u0436 \u0446\u0435\u043b\u044b\u0445 \u0447\u0435\u0442\u044b\u0440\u0435 \u0440\u0430\u0437\u0430. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0432\u0435\u043a\u0442\u043e\u0440 <em>kernel_size<\/em> \u043d\u0438\u0433\u0434\u0435 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f. \u041d\u0430 \u044d\u0442\u043e \u043d\u0430\u043c \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0438 \u043d\u0430\u043c\u0435\u043a\u0430\u0435\u0442, \u0433\u043e\u0432\u043e\u0440\u044f \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0442\u0440\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u0441\u0442\u0438\u043d\u043d\u044b.<\/p>\n<p>\u0410 \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u044d\u0442\u043e \u043f\u043e\u043d\u044f\u043b?<\/p>\n<p>\u0412 \u043c\u0430\u043a\u0440\u043e\u0441\u0435 <em>PYTORCH_OP_CONVERSION_CHECK<\/em> \u0435\u0441\u0442\u044c <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/frontends\/common\/src\/exception.cpp#L40-L50\">\u0444\u0443\u043d\u043a\u0446\u0438\u044f<\/a> <em>create<\/em>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0440\u043e\u0441\u0430\u0435\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u043e\u0435 \u0432 \u043c\u0430\u043a\u0440\u043e\u0441\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043b\u043e\u0436\u043d\u043e. \u0421\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u0435\u0441\u044c \u043a\u043e\u0434 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0431\u044b\u043b \u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c (\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043c\u044b \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0435\u0433\u043e \u0442\u0430\u043a\u043e\u0432\u044b\u043c), \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 <em>kernel_size.size()<\/em> \u0431\u044b\u043b\u043e \u0440\u0430\u0432\u043d\u043e 2.<\/p>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435, \u043e \u0447\u0451\u043c \u043c\u044b \u043c\u043e\u0433\u043b\u0438 \u0431\u044b \u0437\u0430\u0434\u0443\u043c\u0430\u0442\u044c\u0441\u044f: \u0430 \u0437\u0430\u0447\u0435\u043c \u043d\u0430\u043c \u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <em>kernel_size.size(),<\/em> \u0435\u0441\u043b\u0438 \u0432\u0435\u043a\u0442\u043e\u0440 <em>kernel_size<\/em> \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f, \u0438 \u0435\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u0435\u043d 2? \u0412\u0441\u0451, \u0447\u0442\u043e \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u0440\u0430\u043d\u0435\u0435, \u0431\u044b\u043b\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435\u043c \u0434\u043e\u043f\u0443\u0449\u0435\u043d\u043d\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0438, \u0430 \u043d\u0435 \u043f\u0440\u0438\u0447\u0438\u043d\u043e\u0439. \u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u0436\u0435 \u043f\u0440\u043e\u0441\u0442\u0430 \u0438 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c.<\/p>\n<p>\u0412\u043e\u0442 \u0431\u044b\u043b \u0441\u043e\u0437\u0434\u0430\u043d \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d \u043e\u0431\u044a\u0435\u043a\u0442 <em>kernel_size<\/em>, \u0438 \u0441\u043b\u0435\u0434\u043e\u043c \u0432 \u043c\u0430\u043a\u0440\u043e\u0441 <em>PYTORCH_OP_CONVERSION_CHECK<\/em> \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043e \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 <em>kernel_size.size() == 2<\/em>. \u0421\u043b\u0435\u0434\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u043d \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u043e\u0431\u044a\u0435\u043a\u0442 <em>dilation<\/em>, \u043e\u0434\u043d\u0430\u043a\u043e \u0432 \u043c\u0430\u043a\u0440\u043e\u0441 <em>PYTORCH_OP_CONVERSION_CHECK<\/em> \u0442\u0430\u043a \u0436\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 <em>kernel_size.size() == 2<\/em>, \u0445\u043e\u0442\u044f,   \u0435\u0441\u043b\u0438 \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c, \u043f\u043e \u043b\u043e\u0433\u0438\u043a\u0435, \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043e \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 <em>dilation.size() == 2<\/em>.<\/p>\n<p>\u0422\u0430\u043a, \u0436\u0435, \u0435\u0441\u043b\u0438 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442, \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0432 \u044d\u0442\u043e\u0442 \u043c\u0430\u043a\u0440\u043e\u0441 \u2014 \u0441\u0442\u0440\u043e\u043a\u0443, \u0442\u043e, \u043e\u043f\u044f\u0442\u044c \u0436\u0435, \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f <em>size<\/em> \u0434\u043e\u043b\u0436\u043d\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 <em>dilation<\/em>. \u0418 \u0442\u0430\u043a \u0436\u0435 \u0434\u043b\u044f \u0434\u0432\u0443\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u043d\u0443 \u0432\u044b \u043f\u043e\u043d\u044f\u043b\u0438&#8230; \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u043a\u043e\u043f\u0438\u043f\u0430\u0441\u0442\u0438\u043b \u0441\u0442\u0440\u043e\u043a\u0438 \u043a\u043e\u0434\u0430 \u0438 \u0437\u0430\u0431\u044b\u043b \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0438\u043c\u0435\u043d\u0430 \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u043b \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c \u0432 \u043c\u0430\u043a\u0440\u043e\u0441.<\/p>\n<p><strong>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 N7<\/strong><\/p>\n<pre><code class=\"cpp\">void BinaryConvolution::createPrimitive()  {   ....    bool args_ok = jcp.l_pad &lt;= jcp.ur_w &amp;&amp;                                 \/\/ &lt;=           (r_pad_no_tail &lt;= jcp.ur_w) &amp;&amp; (jcp.l_pad &lt;= jcp.ur_w) &amp;&amp;        \/\/ &lt;=             IMPLICATION(jcp.kw > 7, (jcp.t_pad == 0 &amp;&amp; jcp.l_pad == 0) ||               (jcp.stride_w == 1 &amp;&amp; jcp.stride_h == 1));   .... } <\/code><\/pre>\n<p>\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430:<\/p>\n<p><a href=\"https:\/\/pvs-studio.ru\/ru\/docs\/warnings\/v501\/\">V501<\/a> There are identical sub-expressions &#8216;jcp.l_pad &lt;= jcp.ur_w&#8217; to the left and to the right of the &#8216;&amp;&amp;&#8217; operator. <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/plugins\/intel_cpu\/src\/nodes\/bin_conv.cpp\">bin_conv.cpp<\/a> 1088<\/p>\n<p>\u041a\u0430\u043a \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435. \u041d\u0438\u0447\u0435\u0433\u043e \u043f\u043b\u043e\u0445\u043e\u0433\u043e \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442, \u043d\u043e \u043e\u0434\u043d\u043e \u043b\u0438\u0448\u043d\u0435\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u0431\u0440\u0430\u0442\u044c.<\/p>\n<p><strong>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 N8<\/strong><\/p>\n<pre><code class=\"cpp\">void FakeQuantize::getSupportedDescriptors()  {   ....   if (getInputShapeAtPort(0).getRank() !=                         getInputShapeAtPort(0).getRank())    \/\/ &lt;=   {     OPENVINO_THROW(errorPrefix,                     \"has different ranks for input and output tensors\");   }   .... } <\/code><\/pre>\n<p>\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430:<\/p>\n<p><a href=\"https:\/\/pvs-studio.ru\/ru\/docs\/warnings\/v501\/\">V501<\/a> There are identical sub-expressions &#8216;getInputShapeAtPort(0).getRank()&#8217; to the left and to the right of the &#8216;!=&#8217; operator. <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/plugins\/intel_cpu\/src\/nodes\/fake_quantize.cpp\">fake_quantize.cpp<\/a> 1301<\/p>\n<p>\u0412 \u0443\u0441\u043b\u043e\u0432\u0438\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u043d\u0435\u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435 \u043f\u043e\u0434\u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435. \u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0437\u0434\u0435\u0441\u044c \u0437\u0430\u043c\u0435\u0448\u0430\u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043a\u043e\u043f\u0438\u043f\u0430\u0441\u0442\u0430. \u0410 \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0430\u043c \u043f\u0440\u044f\u043c\u044b\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u043c \u043f\u0438\u0448\u0443\u0442: &#171;<em>has different ranks for input and output tensors<\/em>&#171;, \u2014 \u0438 \u0435\u0441\u043b\u0438 \u0443\u0447\u0435\u0441\u0442\u044c \u0442\u043e\u0442 \u0444\u0430\u043a\u0442, \u0447\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u043d\u043e \u0434\u043b\u044f <em>output<\/em> \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"cpp\">const Shape&amp; getOutputShapeAtPort(size_t port) const  {   if (outputShapes.size() &lt;= port)    {     OPENVINO_THROW(\"Incorrect output port number for node \", getName());   }   return outputShapes[port]; } <\/code><\/pre>\n<p>\u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"cpp\">if (getInputShapeAtPort(0).getRank() != getOutputShapeAtPort(0).getRank()) {   OPENVINO_THROW(errorPrefix,                   \"has different ranks for input and output tensors\"); } <\/code><\/pre>\n<p><strong>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 N9<\/strong><\/p>\n<pre><code class=\"cpp\">void set_state(const ov::SoPtr&lt;ov::ITensor>&amp; state) override  {   OPENVINO_ASSERT(state->get_shape() ==                             m_state->get_shape(),                               \"Wrong tensor shape.\");   OPENVINO_ASSERT(state->get_element_type() ==                             state->get_element_type(),                 \/\/ &lt;=                               \"Wrong tensor type.\"   );   OPENVINO_ASSERT(state->get_byte_size() ==                             state->get_byte_size(),                    \/\/ &lt;=                               \"Blob size of tensors are not equal.\");   std::memcpy(m_state->data(), state->data(), state->get_byte_size()); } <\/code><\/pre>\n<p>\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430:<\/p>\n<ol>\n<li>\n<p>V501 There are identical sub-expressions &#8216;state->get_element_type()&#8217; to the left and to the right of the &#8216;==&#8217; operator. <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/plugins\/template\/src\/variable_state.hpp\">variable_state.hpp<\/a> 23<\/p>\n<\/li>\n<li>\n<p>V501 There are identical sub-expressions &#8216;state->get_byte_size()&#8217; to the left and to the right of the &#8216;==&#8217; operator. <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/plugins\/template\/src\/variable_state.hpp\">variable_state.hpp<\/a> 24<\/p>\n<\/li>\n<\/ol>\n<p>\u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f <em>state->get_shape()<\/em> \u0438 <em>m_state->get_shape()<\/em>. \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0441\u0442\u0440\u043e\u043a\u0430\u0445 \u0438\u0437-\u0437\u0430 copy-paste \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432\u044b\u0437\u043e\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0439-\u0447\u043b\u0435\u043d\u043e\u0432 <em>get_element_type<\/em> \u0438 <em>get_byte_size<\/em> \u043e\u0434\u043d\u043e\u0433\u043e \u0438 \u0442\u043e\u0433\u043e \u0436\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 <em>state<\/em>. \u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0442\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u0430 <em>m_state<\/em> \u0438 <em>state<\/em> \u0441\u0445\u043e\u0436\u0438 \u043c\u0435\u0436 \u0441\u043e\u0431\u043e\u0439, \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u043d\u0435 \u043e\u0431\u0440\u0430\u0442\u0438\u043b \u043d\u0430 \u044d\u0442\u043e \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0418\u0441\u043f\u0440\u0430\u0432\u0438\u043c \u043a\u043e\u0434:<\/p>\n<pre><code class=\"cpp\">.... OPENVINO_ASSERT(state->get_element_type() ==                           m_state->get_element_type(),                             \"Wrong tensor type.\"     ); OPENVINO_ASSERT(state->get_byte_size() ==                           m_state->get_byte_size(),                             \"Blob size of tensors are not equal.\"); .... <\/code><\/pre>\n<p><strong>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 N10<\/strong><\/p>\n<pre><code class=\"cpp\">void SubgraphExtractor::add_new_inputs(const std::vector&lt;                                                 InputEdge>&amp; new_inputs,                                        const bool merge_inputs         )  {   ....   auto it = std::find_if(new_inputs.begin(), new_inputs.begin(),                  [&amp;](const InputEdge&amp; input_edge)                   {                    return get_input_tensor_name(m_onnx_graph,                                         input_edge) == input.first;                  }                                                );   .... } <\/code><\/pre>\n<p>\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430:<\/p>\n<p><a href=\"https:\/\/pvs-studio.ru\/ru\/docs\/warnings\/v539\/\">V539<\/a> [CERT-CTR53-CPP] Consider inspecting iterators which are being passed as arguments to function &#8216;find_if&#8217;. <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/frontends\/onnx\/frontend\/src\/detail\/subgraph_extraction.cpp\">subgraph_extraction.cpp<\/a> 300<\/p>\n<p>\u0415\u0441\u043b\u0438 \u043c\u044b \u043e\u0431\u0440\u0430\u0442\u0438\u043c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <em>std::find_if<\/em>, \u0442\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u0432\u0442\u043e\u0440\u044b\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432\u044b\u0437\u043e\u0432 <em>new_inputs.end()<\/em>. \u0412 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u043a\u043e\u0434 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c <em>new_inputs.begin()<\/em>.<\/p>\n<p>\u0418\u0441\u043f\u0440\u0430\u0432\u0438\u043c \u043a\u043e\u0434:<\/p>\n<pre><code class=\"cpp\">.... auto it = std::find_if(new_inputs.begin(), new_inputs.end(),                        [&amp;](const InputEdge&amp; input_edge)                         {                          return get_input_tensor_name(                                    m_onnx_graph, input_edge) == input.first;                        }); .... <\/code><\/pre>\n<p><strong>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 N11<\/strong><\/p>\n<pre><code class=\"cpp\">std::vector&lt;PortConfig> inConfs; .... MemoryDescPtr Node::getBaseMemDescAtInputPort(size_t portNum) const  {   if (auto primDesc = getSelectedPrimitiveDescriptor())    {     const auto&amp; inConfs = primDesc->getConfig().inConfs;     if (inConfs.size() &lt; portNum)                                \/\/ N1     {                              OPENVINO_THROW(\"Can't get input memory desc at port: \",                       portNum, \", incorrect port number\"     );     }     return inConfs[portNum].getMemDesc();                        \/\/ N2   }   OPENVINO_THROW(\"Can't get input memory desc,                           primitive descriptor is not selected\"); } <\/code><\/pre>\n<p>\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430:<\/p>\n<p><a href=\"https:\/\/pvs-studio.ru\/ru\/docs\/warnings\/v557\/\">V557<\/a> [CERT-ARR30-C] Array overrun is possible. The &#8216;portNum&#8217; index is pointing beyond array bound. <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/plugins\/intel_cpu\/src\/node.cpp\">node.cpp<\/a> 402<\/p>\n<p>\u041d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u0432 \u044d\u0442\u043e\u043c \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0435 \u043a\u043e\u0434\u0430 \u043d\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e, \u0438 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0440\u0443\u0433\u0430\u0435\u0442\u0441\u044f \u0437\u0440\u044f. \u041d\u043e \u043d\u0435\u0442. \u0427\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0449\u0435 \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c, \u044f \u043e\u0442\u043c\u0435\u0442\u0438\u043b \u0441\u0442\u0440\u043e\u043a\u0438, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435.<\/p>\n<p>\u0412 \u0441\u0442\u0440\u043e\u043a\u0435 N1 \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 <em>inConfs.size() &lt; portNum<\/em>. \u0423\u0441\u043b\u043e\u0432\u0438\u0435 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f <em>false<\/em>, \u043a\u043e\u0433\u0434\u0430 <em>portNum &lt;= inConfs.size()<\/em>. \u0417\u0430\u0442\u0435\u043c \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 N2 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0443 <em>inConfs<\/em>. \u0414\u043e\u0441\u0442\u0443\u043f \u043a \u043d\u0435\u043c\u0443 \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 [0 .. N \u2013 1]. \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u0433\u0440\u0430\u043d\u0438\u0447\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043a\u043e\u0433\u0434\u0430 <em>portNum == inConfs.size()<\/em>, \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442 \u0432\u044b\u0445\u043e\u0434 \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u0443 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u0447\u0442\u043e \u0432\u0435\u0434\u0451\u0442 \u043a \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u043c\u0443 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044e.<\/p>\n<p>\u0412\u0435\u0440\u043d\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"cpp\">if (portNum >= inConfs.size()) { .... } <\/code><\/pre>\n<p>\u042f \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043c\u0435\u043d\u044f\u043b \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u044b \u043c\u0435\u0441\u0442\u0430\u043c\u0438, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443, \u043f\u043e \u043c\u043e\u0435\u043c\u0443 \u0441\u043a\u0440\u043e\u043c\u043d\u043e\u043c\u0443 \u043c\u043d\u0435\u043d\u0438\u044e, \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u043c \u043f\u0440\u043e\u0449\u0435.<\/p>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u0432 \u043e\u0431 \u044d\u0442\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0435, \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043f\u043e\u044f\u0441\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0431\u0440\u0438\u0433\u0430\u0434\u0443: &#171;\u0412 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043d\u0435\u0442 \u043d\u0438 \u043e\u043f\u0435\u0447\u0430\u0442\u043e\u043a, \u043d\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 copy-paste, \u0442\u043e\u0433\u0434\u0430 \u0447\u0442\u043e \u043e\u043d \u0437\u0434\u0435\u0441\u044c \u0434\u0435\u043b\u0430\u0435\u0442?&#187; \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u044d\u0442\u0443 \u043e\u0448\u0438\u0431\u043a\u0443 \u0440\u0430\u0437\u043c\u043d\u043e\u0436\u0438\u043b\u0438:<\/p>\n<pre><code class=\"cpp\">.... std::vector&lt;PortConfig> outConfs; .... MemoryDescPtr Node::getBaseMemDescAtOutputPort(size_t portNum) const  {   if (auto primDesc = getSelectedPrimitiveDescriptor())    {     const auto&amp; outConfs = primDesc->getConfig().outConfs;     if (outConfs.size() &lt; portNum)                               \/\/ &lt;=     {       OPENVINO_THROW(\"Can't get output memory desc at port: \",                        portNum, \", incorrect port number\"      );     }     return outConfs[portNum].getMemDesc();                       \/\/ &lt;=   }   OPENVINO_THROW(\"Can't get output memory desc,                        primitive descriptor is not selected\"); } <\/code><\/pre>\n<p>\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430:<\/p>\n<p><a href=\"https:\/\/pvs-studio.ru\/ru\/docs\/warnings\/v557\/\">V557<\/a> [CERT-ARR30-C] Array overrun is possible. The &#8216;portNum&#8217; index is pointing beyond array bound. <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/plugins\/intel_cpu\/src\/node.cpp\">node.cpp<\/a> 413<\/p>\n<p>\u041a\u043e\u0434 \u044d\u0442\u0438\u0445 \u0434\u0432\u0443\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442. \u041e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043e\u0434\u043d\u0443 \u0438\u0437 \u043d\u0438\u0445 \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u043f\u0443\u0442\u0451\u043c \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0440\u0443\u0433\u043e\u0439, \u0438 \u0437\u0430\u0442\u0435\u043c \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f: \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043b\u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0438 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u043e\u043b\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u043f\u043e\u043c\u0435\u043d\u044f\u043b\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u0431\u0440\u043e\u0441\u043a\u0430\u0445 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439. \u041d\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0442\u0430\u043a\u0436\u0435 \u043f\u0435\u0440\u0435\u043a\u043e\u0447\u0435\u0432\u0430\u043b\u0430 \u0438 \u0432\u043e \u0432\u0442\u043e\u0440\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e.<\/p>\n<p>\u041f\u043e\u043f\u0440\u0430\u0432\u0438\u043c \u0438 \u0435\u0451:<\/p>\n<pre><code class=\"cpp\">if (portNum >= outConfs.size()) { .... } <\/code><\/pre>\n<p>\u0410 \u0432\u043e\u043e\u0431\u0449\u0435, \u0437\u0434\u0435\u0441\u044c \u0442\u0430\u043a \u0438 \u043d\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433: \u043a\u043e\u0434 \u0438\u0437 \u044d\u0442\u0438\u0445 \u0434\u0432\u0443\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0441\u0442\u043e\u0438\u0442 \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0432 \u043e\u0434\u043d\u0443 \u043e\u0431\u0449\u0443\u044e \u0438 \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0451.<\/p>\n<p><strong>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 N12<\/strong><\/p>\n<p>\u0410 \u0441\u0435\u0439\u0447\u0430\u0441 \u0441\u044b\u0433\u0440\u0430\u0435\u043c \u0432 \u043c\u0438\u043d\u0438-\u0438\u0433\u0440\u0443: \u0432\u0430\u043c \u043d\u0430\u0434\u043e \u043d\u0430\u0439\u0442\u0438 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u0432 \u043a\u043e\u0434\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 OpenVINO. \u041a\u0442\u043e \u043d\u0430\u0448\u0451\u043b, \u0442\u043e\u0442 \u043c\u043e\u043b\u043e\u0434\u0435\u0446! \u041a\u0442\u043e \u043d\u0435 \u043d\u0430\u0448\u0451\u043b, \u0442\u043e\u0436\u0435 \u043c\u043e\u043b\u043e\u0434\u0446\u044b! \u041e\u0434\u043d\u0430\u043a\u043e, \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u0432\u0441\u0435\u043c \u0441\u0442\u0430\u043b\u043e \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e \u2014 \u044d\u0442\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u043e\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440.<\/p>\n<details class=\"spoiler\">\n<summary>\u041d\u0430\u0439\u0434\u0438\u0442\u0435 \u0437\u0434\u0435\u0441\u044c \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438:<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cpp\">template &lt;class Key, class Value> using caseless_unordered_map = std::unordered_map&lt;Key, Value,                                     CaselessHash&lt;Key>, CaselessEq&lt;Key>>; using TypeToNameMap = ov::intel_cpu::                           caseless_unordered_map&lt;std::string, Type>;  static const TypeToNameMap&amp; get_type_to_name_tbl() {     static const TypeToNameMap type_to_name_tbl = {         {\"Constant\", Type::Input},         {\"Parameter\", Type::Input},         {\"Result\", Type::Output},         {\"Eye\", Type::Eye},         {\"Convolution\", Type::Convolution},         {\"GroupConvolution\", Type::Convolution},         {\"MatMul\", Type::MatMul},         {\"FullyConnected\", Type::FullyConnected},         {\"MaxPool\", Type::Pooling},         {\"AvgPool\", Type::Pooling},         {\"AdaptiveMaxPool\", Type::AdaptivePooling},         {\"AdaptiveAvgPool\", Type::AdaptivePooling},         {\"Add\", Type::Eltwise},         {\"IsFinite\", Type::Eltwise},         {\"IsInf\", Type::Eltwise},         {\"IsNaN\", Type::Eltwise},         {\"Subtract\", Type::Eltwise},         {\"Multiply\", Type::Eltwise},         {\"Divide\", Type::Eltwise},         {\"SquaredDifference\", Type::Eltwise},         {\"Maximum\", Type::Eltwise},         {\"Minimum\", Type::Eltwise},         {\"Mod\", Type::Eltwise},         {\"FloorMod\", Type::Eltwise},         {\"Power\", Type::Eltwise},         {\"PowerStatic\", Type::Eltwise},         {\"Equal\", Type::Eltwise},         {\"NotEqual\", Type::Eltwise},         {\"Greater\", Type::Eltwise},         {\"GreaterEqual\", Type::Eltwise},         {\"Less\", Type::Eltwise},         {\"LessEqual\", Type::Eltwise},         {\"LogicalAnd\", Type::Eltwise},         {\"LogicalOr\", Type::Eltwise},         {\"LogicalXor\", Type::Eltwise},         {\"LogicalNot\", Type::Eltwise},         {\"Relu\", Type::Eltwise},         {\"LeakyRelu\", Type::Eltwise},         {\"Gelu\", Type::Eltwise},         {\"Elu\", Type::Eltwise},         {\"Tanh\", Type::Eltwise},         {\"Sigmoid\", Type::Eltwise},         {\"Abs\", Type::Eltwise},         {\"Sqrt\", Type::Eltwise},         {\"Clamp\", Type::Eltwise},         {\"Exp\", Type::Eltwise},         {\"SwishCPU\", Type::Eltwise},         {\"HSwish\", Type::Eltwise},         {\"Mish\", Type::Eltwise},         {\"HSigmoid\", Type::Eltwise},         {\"Round\", Type::Eltwise},         {\"PRelu\", Type::Eltwise},         {\"Erf\", Type::Eltwise},         {\"SoftPlus\", Type::Eltwise},         {\"SoftSign\", Type::Eltwise},         {\"Select\", Type::Eltwise},         {\"Log\", Type::Eltwise},         {\"BitwiseAnd\", Type::Eltwise},         {\"BitwiseNot\", Type::Eltwise},         {\"BitwiseOr\", Type::Eltwise},         {\"BitwiseXor\", Type::Eltwise},         {\"Reshape\", Type::Reshape},         {\"Squeeze\", Type::Reshape},         {\"Unsqueeze\", Type::Reshape},         {\"ShapeOf\", Type::ShapeOf},         {\"NonZero\", Type::NonZero},         {\"Softmax\", Type::Softmax},         {\"Reorder\", Type::Reorder},         {\"BatchToSpace\", Type::BatchToSpace},         {\"SpaceToBatch\", Type::SpaceToBatch},         {\"DepthToSpace\", Type::DepthToSpace},         {\"SpaceToDepth\", Type::SpaceToDepth},         {\"Roll\", Type::Roll},         {\"LRN\", Type::Lrn},         {\"Split\", Type::Split},         {\"VariadicSplit\", Type::Split},         {\"Concat\", Type::Concatenation},         {\"ConvolutionBackpropData\", Type::Deconvolution},         {\"GroupConvolutionBackpropData\", Type::Deconvolution},         {\"StridedSlice\", Type::StridedSlice},         {\"Slice\", Type::StridedSlice},         {\"Tile\", Type::Tile},         {\"ROIAlign\", Type::ROIAlign},         {\"ROIPooling\", Type::ROIPooling},         {\"PSROIPooling\", Type::PSROIPooling},         {\"DeformablePSROIPooling\", Type::PSROIPooling},         {\"Pad\", Type::Pad},         {\"Transpose\", Type::Transpose},         {\"LSTMCell\", Type::RNNCell},         {\"GRUCell\", Type::RNNCell},         {\"AUGRUCell\", Type::RNNCell},         {\"RNNCell\", Type::RNNCell},         {\"LSTMSequence\", Type::RNNSeq},         {\"GRUSequence\", Type::RNNSeq},         {\"AUGRUSequence\", Type::RNNSeq},         {\"RNNSequence\", Type::RNNSeq},         {\"FakeQuantize\", Type::FakeQuantize},         {\"BinaryConvolution\", Type::BinaryConvolution},         {\"DeformableConvolution\", Type::DeformableConvolution},         {\"TensorIterator\", Type::TensorIterator},         {\"Loop\", Type::TensorIterator},         {\"ReadValue\", Type::MemoryInput},  \/\/ for construction from name                                            \/\/ ctor, arbitrary name is used         {\"Assign\", Type::MemoryOutput},    \/\/ for construction from layer ctor         {\"Convert\", Type::Convert},         {\"NV12toRGB\", Type::ColorConvert},         {\"NV12toBGR\", Type::ColorConvert},         {\"I420toRGB\", Type::ColorConvert},         {\"I420toBGR\", Type::ColorConvert},         {\"MVN\", Type::MVN},         {\"NormalizeL2\", Type::NormalizeL2},         {\"ScatterUpdate\", Type::ScatterUpdate},         {\"ScatterElementsUpdate\", Type::ScatterElementsUpdate},         {\"ScatterNDUpdate\", Type::ScatterNDUpdate},         {\"Interpolate\", Type::Interpolate},         {\"RandomUniform\", Type::RandomUniform},         {\"ReduceL1\", Type::Reduce},         {\"ReduceL2\", Type::Reduce},         {\"ReduceLogicalAnd\", Type::Reduce},         {\"ReduceLogicalOr\", Type::Reduce},         {\"ReduceMax\", Type::Reduce},         {\"ReduceMean\", Type::Reduce},         {\"ReduceMin\", Type::Reduce},         {\"ReduceProd\", Type::Reduce},         {\"ReduceSum\", Type::Reduce},           {\"ReduceLogSum\", Type::Reduce},         {\"ReduceLogSumExp\", Type::Reduce},         {\"ReduceSumSquare\", Type::Reduce},         {\"Broadcast\", Type::Broadcast},           {\"EmbeddingSegmentsSum\", Type::EmbeddingSegmentsSum},         {\"EmbeddingBagPackedSum\", Type::EmbeddingBagPackedSum},         {\"EmbeddingBagOffsetsSum\", Type::EmbeddingBagOffsetsSum},         {\"Gather\", Type::Gather},         {\"GatherElements\", Type::GatherElements},         {\"GatherND\", Type::GatherND},         {\"GridSample\", Type::GridSample},         {\"OneHot\", Type::OneHot},         {\"RegionYolo\", Type::RegionYolo},         {\"ShuffleChannels\", Type::ShuffleChannels},         {\"DFT\", Type::DFT},         {\"IDFT\", Type::DFT},         {\"RDFT\", Type::RDFT},         {\"IRDFT\", Type::RDFT},         {\"Abs\", Type::Math},         {\"Acos\", Type::Math},         {\"Acosh\", Type::Math},           {\"Asin\", Type::Math},         {\"Asinh\", Type::Math},         {\"Atan\", Type::Math},         {\"Atanh\", Type::Math},         {\"Ceil\", Type::Math},         {\"Ceiling\", Type::Math},         {\"Cos\", Type::Math},         {\"Cosh\", Type::Math},         {\"Floor\", Type::Math},         {\"HardSigmoid\", Type::Math},         {\"If\", Type::If},         {\"Neg\", Type::Math},         {\"Reciprocal\", Type::Math},         {\"Selu\", Type::Math},         {\"Sign\", Type::Math},         {\"Sin\", Type::Math},         {\"Sinh\", Type::Math},         {\"SoftPlus\", Type::Math},         {\"Softsign\", Type::Math},         {\"Tan\", Type::Math},         {\"CTCLoss\", Type::CTCLoss},         {\"Bucketize\", Type::Bucketize},         {\"CTCGreedyDecoder\", Type::CTCGreedyDecoder},         {\"CTCGreedyDecoderSeqLen\", Type::CTCGreedyDecoderSeqLen},         {\"CumSum\", Type::CumSum},         {\"DetectionOutput\", Type::DetectionOutput},         {\"ExperimentalDetectronDetectionOutput\",                       Type::ExperimentalDetectronDetectionOutput},         {\"LogSoftmax\", Type::LogSoftmax},         {\"TopK\", Type::TopK},         {\"GatherTree\", Type::GatherTree},         {\"GRN\", Type::GRN},         {\"Range\", Type::Range},         {\"Proposal\", Type::Proposal},         {\"ReorgYolo\", Type::ReorgYolo},         {\"ReverseSequence\", Type::ReverseSequence},         {\"ExperimentalDetectronTopKROIs\",                        Type::ExperimentalDetectronTopKROIs},         {\"ExperimentalDetectronROIFeatureExtractor\",                       Type::ExperimentalDetectronROIFeatureExtractor},         {\"ExperimentalDetectronPriorGridGenerator\",                       Type::ExperimentalDetectronPriorGridGenerator},         {\"ExperimentalDetectronGenerateProposalsSingleImage\",                       Type::ExperimentalDetectronGenerateProposalsSingleImage},         {\"ExtractImagePatches\", Type::ExtractImagePatches},         {\"GenerateProposals\", Type::GenerateProposals},         {\"Inverse\", Type::Inverse},         {\"NonMaxSuppression\", Type::NonMaxSuppression},         {\"NonMaxSuppressionIEInternal\", Type::NonMaxSuppression},         {\"NMSRotated\", Type::NonMaxSuppression},         {\"MatrixNms\", Type::MatrixNms},         {\"MulticlassNms\", Type::MulticlassNms},         {\"MulticlassNmsIEInternal\", Type::MulticlassNms},         {\"Multinomial\", Type::Multinomial},         {\"Reference\", Type::Reference},         {\"Subgraph\", Type::Subgraph},         {\"PriorBox\", Type::PriorBox},         {\"PriorBoxClustered\", Type::PriorBoxClustered},         {\"Interaction\", Type::Interaction},         {\"MHA\", Type::MHA},         {\"Unique\", Type::Unique},         {\"Ngram\", Type::Ngram},         {\"ScaledDotProductAttention\", Type::ScaledDotProductAttention},         {\"ScaledDotProductAttentionWithKVCache\",                            Type::ScaledDotProductAttention},         {\"PagedAttentionExtension\", Type::ScaledDotProductAttention},         {\"RoPE\", Type::RoPE},         {\"GatherCompressed\", Type::Gather},         {\"CausalMaskPreprocess\", Type::CausalMaskPreprocess},     };     return type_to_name_tbl; } <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0417\u0430\u0431\u0430\u0432\u043d\u043e, \u0447\u0442\u043e \u043c\u043d\u043e\u0433\u0438\u0435, \u0443\u0432\u0438\u0434\u0435\u0432 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 \u0432\u044b\u0448\u0435 \u043a\u043e\u0434, \u0441\u043e\u0447\u0442\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043f\u043e \u043f\u043e\u0438\u0441\u043a\u0443 \u043e\u0448\u0438\u0431\u043e\u043a \u0432 \u043d\u0451\u043c \u043d\u0435\u0440\u0430\u0437\u0443\u043c\u043d\u043e\u0439 \u043f\u043e\u0442\u0435\u0440\u0435\u0439 \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u041a\u0430\u043a \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u043e\u043b\u0438\u0441\u0442\u0430\u044e\u0442 \u0441\u044e\u0434\u0430, \u0434\u0430\u0431\u044b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043e\u0442\u0432\u0435\u0442.<\/p>\n<p>\u0421\u0430\u043c\u043e\u0435 \u0437\u0430\u0431\u0430\u0432\u043d\u043e\u0435, \u0447\u0442\u043e, \u043f\u043e\u043d\u0438\u043c\u0430\u044f \u0432\u0441\u044e \u043d\u0435\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0438 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u0432\u0441\u0435 \u0442\u0440\u0443\u0434\u043e\u0437\u0430\u0442\u0440\u0430\u0442\u044b, \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0442 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0438\u0441\u043a\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u0432\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044e \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430.<\/p>\n<p>\u041a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b, \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0449\u0435: \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0430\u043d\u0430\u043b\u0438\u0437 \u0438 \u043f\u043e\u0441\u043b\u0435 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f \u0441 \u0443\u0436\u0435 \u0433\u043e\u0442\u043e\u0432\u044b\u043c \u0441\u043f\u0438\u0441\u043a\u043e\u043c \u043e\u0448\u0438\u0431\u043e\u043a. \u041d\u0435 \u043d\u0430\u0434\u043e \u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u043f\u043e\u0438\u0441\u043a \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u044b\u0445 \u043c\u0435\u0441\u0442 \u2014 \u043e\u043d\u0438 \u0443\u0436\u0435 \u043f\u043e\u0434\u0441\u0432\u0435\u0447\u0435\u043d\u044b. \u041e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c.<\/p>\n<p>\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430:<\/p>\n<ol>\n<li>\n<p><a href=\"https:\/\/pvs-studio.ru\/ru\/docs\/warnings\/v766\/\">V766<\/a> An item with the same key &#8216;&#187;Abs&#187;&#8216; has already been added. <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/plugins\/intel_cpu\/src\/cpu_types.cpp\">cpu_types.cpp<\/a> 178<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/pvs-studio.ru\/ru\/docs\/warnings\/v766\/\">V766<\/a> An item with the same key &#8216;&#187;SoftPlus&#187;&#8216; has already been added. <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/plugins\/intel_cpu\/src\/cpu_types.cpp\">cpu_types.cpp<\/a> 198<\/p>\n<\/li>\n<\/ol>\n<p>\u0415\u0441\u043b\u0438 \u043a\u0440\u0430\u0442\u043a\u043e \u0438 \u043f\u043e \u0434\u0435\u043b\u0443, \u0442\u043e \u0432\u043e\u0442 \u043e\u043d\u0438 \u2014 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438:<\/p>\n<pre><code class=\"cpp\">static const TypeToNameMap&amp; get_type_to_name_tbl() {   static const TypeToNameMap type_to_name_tbl = {     ....,     {\"Abs\", Type::Eltwise},                   \/\/ &lt;=     ....,     {\"SoftPlus\", Type::Eltwise},              \/\/ &lt;=     ....,     {\"Abs\", Type::Math},                      \/\/ &lt;=     ....,     {\"SoftPlus\", Type::Math},                 \/\/ &lt;=     ....,    };   return type_to_name_tbl; } <\/code><\/pre>\n<p>\u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0431\u044b\u0442\u044c \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e, \u0438 \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b.<\/p>\n<h3>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h3>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a\u043e\u0435 \u0432\u043e\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0430\u043c \u0443 \u043d\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c.<\/p>\n<p>\u042d\u0442\u043e \u0431\u044b\u043b\u0430 \u043f\u0435\u0440\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u0440\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043a\u043e\u0434\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 OpenVINO. \u0416\u0435\u043b\u0430\u044e \u0432\u0430\u043c \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u044b\u043c\u0438, \u0438 \u0434\u0430 \u043f\u0440\u0438\u0431\u0443\u0434\u0435\u0442 \u0441 \u0432\u0430\u043c\u0438 \u0441\u0438\u043b\u0430 \u043a\u043e\u043d\u0446\u0435\u043d\u0442\u0440\u0430\u0446\u0438\u0438 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0412\u0441\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043c\u044b, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u043f\u0435\u0440\u0435\u0434\u0430\u0434\u0438\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c \u0438 \u0431\u0443\u0434\u0435\u043c \u043d\u0430\u0434\u0435\u044f\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0431\u0430\u0433\u0438 \u0432 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u043c \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u0438\u0441\u043f\u0440\u0430\u0432\u044f\u0442.<\/p>\n<p>\u0425\u043e\u0447\u0435\u0442\u0441\u044f \u0435\u0449\u0451 \u0440\u0430\u0437 \u043d\u0430\u043f\u043e\u043c\u043d\u0438\u0442\u044c: \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0435 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u043d\u0438\u043c\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u043b\u0438\u0448\u044c \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u044b \u0442\u043e\u0436\u0435 \u043b\u044e\u0434\u0438. \u0410 \u0434\u043b\u044f \u0441\u0447\u0430\u0441\u0442\u044c\u044f, (\u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a \u0432 \u043a\u043e\u0434\u0435) \u0438\u043c \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u043d\u0443\u0436\u0435\u043d \u0445\u043e\u0442\u044f \u0438 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439, \u043d\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0438 \u0441\u0432\u043e\u0439 \u2014 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u043a\u043e\u0434\u0430.<\/p>\n<p>\u0418, \u043a\u0430\u043a \u0443 \u043d\u0430\u0441 \u0443\u0436\u0435 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043b\u043e\u0436\u0438\u043b\u043e\u0441\u044c, \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e <a href=\"https:\/\/pvs-studio.ru\/ru\/pvs-studio\/try-free\/?utm_source=website&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=1137\">\u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c<\/a> \u043d\u0430\u0448 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 PVS-Studio. \u0414\u043b\u044f Open Source \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0443 \u043d\u0430\u0441 <a href=\"https:\/\/pvs-studio.ru\/ru\/order\/open-source-license\/\">\u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f<\/a> \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u0430\u044f \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f.<\/p>\n<p>\u0411\u0435\u0440\u0435\u0433\u0438\u0442\u0435 \u0441\u0435\u0431\u044f \u0438 \u0432\u0441\u0435\u0433\u043e \u0434\u043e\u0431\u0440\u043e\u0433\u043e!<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435\u0439 \u0441 \u0430\u043d\u0433\u043b\u043e\u044f\u0437\u044b\u0447\u043d\u043e\u0439 \u0430\u0443\u0434\u0438\u0442\u043e\u0440\u0438\u0435\u0439, \u0442\u043e \u043f\u0440\u043e\u0448\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043f\u0435\u0440\u0435\u0432\u043e\u0434: Alexey Gorshkov. <a href=\"https:\/\/pvs-studio.com\/en\/blog\/posts\/cpp\/1137\/\">12 moments of typos and copy-paste, or why AI hallucinates: checking OpenVINO<\/a>.<\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/824698\/\"> https:\/\/habr.com\/ru\/articles\/824698\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>&#171;OpenVINO \u2014 \u043d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 AI \u0434\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u043c\u0438\u0440\u043e\u043c \u0442\u0435\u043f\u0435\u0440\u044c Open Source!&#187; \u2014 \u044d\u0442\u0430 \u043d\u043e\u0432\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u043d\u0430\u0441 \u043f\u0440\u043e\u0437\u0432\u0443\u0447\u0430\u043b\u0430 \u043a\u0430\u043a \u043f\u0440\u0438\u0437\u044b\u0432 \u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044e. \u041a\u043e\u0434 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d, \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0430\u0439\u0434\u0435\u043d\u044b, \u0438 \u043f\u0435\u0440\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u0438 \u0433\u043e\u0442\u043e\u0432\u0430 \u043a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e. \u0411\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e!<\/p>\n<figure class=\"full-width\"><\/figure>\n<h3>\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0432 \u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0435<\/h3>\n<p>6 \u043c\u0430\u0440\u0442\u0430 2024 \u0433\u043e\u0434\u0430 Intel \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0430 Open Source \u0440\u0435\u0448\u0435\u043d\u0438\u0435 OpenVINO. \u0427\u0442\u043e \u0436\u0435 \u043e\u043d\u043e \u0438\u0437 \u0441\u0435\u0431\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442? \u041f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e, \u044d\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0449\u0438\u0439 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u0430\u043c \u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u043e\u0431\u0443\u0447\u0430\u0442\u044c AI \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u043c\u0443 \u0437\u0440\u0435\u043d\u0438\u044e.<\/p>\n<details class=\"spoiler\">\n<summary>\u0410 \u0435\u0441\u043b\u0438 \u043d\u0435 \u0437\u043d\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0435 \u0437\u0440\u0435\u043d\u0438\u0435, \u0432\u0430\u043c \u0441\u044e\u0434\u0430.<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0435 \u0437\u0440\u0435\u043d\u0438\u0435 \u2014 \u044d\u0442\u043e \u043a\u043e\u0433\u0434\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0431\u043e\u043b\u0435\u0435 \u0438\u043b\u0438 \u043c\u0435\u043d\u0435\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u0430\u043c\u0435\u0440\u044b, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u043e\u0439 \u043a \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0443, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0442\u044c \u043d\u0430 \u0432\u0438\u0434\u0435\u043e \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043d\u0430\u043c \u0434\u0430\u043d\u043d\u044b\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u0439\u043c\u0430\u0442\u044c \u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u0438\u0432 \u0431\u0435\u043b\u043e\u0433\u043e \u043a\u0440\u043e\u043b\u0438\u043a\u0430 \u043f\u043e\u0441\u0440\u0435\u0434\u0438 \u0442\u0430\u043a\u0438\u0445 \u0436\u0435 \u0431\u0435\u043b\u044b\u0445 \u0441\u0443\u0433\u0440\u043e\u0431\u043e\u0432 \u0437\u0438\u043c\u043e\u0439. \u0413\u043b\u0430\u0437\u0430\u043c\u0438 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u0440\u0430\u0439\u043d\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0442\u0438\u0447\u043d\u043e, \u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u0430\u043c\u0435\u0440\u044b \u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e AI \u043b\u044e\u0431\u043e\u0439 \u043a\u0440\u043e\u043b\u0438\u043a, \u043f\u0440\u043e\u0431\u0435\u0433\u0430\u044e\u0449\u0438\u0439 \u043c\u0438\u043c\u043e, \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u043d\u0435\u0437\u0430\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u043c.<\/p>\n<p>\u0421\u0442\u043e\u0438\u0442 \u0442\u0430\u043a\u0436\u0435 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0435 \u0437\u0440\u0435\u043d\u0438\u0435 \u0448\u0442\u0443\u043a\u0430 \u043a\u0440\u0430\u0439\u043d\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f, \u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u043e\u0431\u043b\u0430\u0441\u0442\u044f\u0445, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<ol>\n<li>\n<p>\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0438 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0441\u0435\u043b\u044c\u0441\u043a\u043e\u0445\u043e\u0437\u044f\u0439\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0438 \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0435\u0444\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435 \u0443 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0430\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0421\u0438\u0441\u0442\u0435\u043c\u044b \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u044f \u043b\u0438\u0446;<\/p>\n<\/li>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 AI \u0432 \u043a\u043e\u043b\u043e\u043d\u043e\u0441\u043a\u043e\u043f\u0438\u0438, \u043f\u0440\u0438 \u0443\u0445\u0443\u0434\u0448\u0435\u043d\u0438\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u0436\u0435 \u043f\u0440\u0438 \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u0438 \u0437\u0430\u0431\u043e\u043b\u0435\u0432\u0430\u043d\u0438\u0439 \u043c\u043e\u0437\u0433\u0430.<\/p>\n<\/li>\n<\/ol>\n<p>\u042d\u0442\u043e \u043d\u0435 \u043f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439, \u043d\u043e \u043a\u0430\u043a \u0431\u044b \u0438 \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0435 \u043f\u0440\u043e \u044d\u0442\u043e. \u0412 \u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0430 \u043d\u0435\u043e\u0441\u043f\u043e\u0440\u0438\u043c\u0430, \u0438 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0451 \u044d\u0442\u043e \u0441\u0442\u0430\u043b\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c, \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0443\u0433\u043b\u0443\u0431\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. \u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u0442\u0430\u043a\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043a\u0430\u043a \u0440\u0430\u0437-\u0442\u0430\u043a\u0438 \u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f OpenVINO.<\/p>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0415\u0441\u043b\u0438 \u0442\u043e\u0447\u043d\u0435\u0435, OpenVINO \u2014 \u044d\u0442\u043e \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u0443\u0442\u0438\u043b\u0438\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439. \u0422\u0430\u043a \u0436\u0435, \u043f\u043e\u043c\u0438\u043c\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u0435\u0441\u0442\u044c \u0435\u0449\u0451 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 AI \u0438 \u0441\u0432\u043e\u0439 \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a. \u041a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a.<\/p>\n<p>\u0418 \u0432\u043e\u0442, \u0432 \u0440\u043e\u0431\u043a\u043e\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u043f\u0440\u0438\u043a\u043e\u0441\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e\u043c\u0443 \u0441\u0432\u043e\u0438\u043c\u0438 \u043a\u0440\u0438\u0432\u0443\u043b\u044c\u043a\u0430\u043c\u0438, \u044f \u0432\u043d\u043e\u0432\u044c \u0440\u0430\u0441\u0447\u0435\u0445\u043b\u0438\u043b \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 PVS-Studio, \u0434\u0430\u0431\u044b \u043e\u043a\u0443\u043d\u0443\u0442\u044c\u0441\u044f \u0432 \u043a\u043e\u0434 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0438\u043d\u043e\u0440\u043e\u0434\u043d\u044b\u0445 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0445 \u0431\u0430\u0433\u0430\u043c\u0438. \u041a\u0430\u043a \u044f \u0443\u0436\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0440\u0430\u043d\u0435\u0435, \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e.<\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0431\u0430\u0433\u0438, \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0441\u0432\u043e\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442: AI \u043e\u0431\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 (\u0435\u0441\u043b\u0438 \u0441\u0443\u0434\u0438\u0442\u044c \u043f\u043e \u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u043c \u0441\u0442\u0430\u0442\u044c\u044f\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432).<\/p>\n<p>\u041d\u0438\u0436\u0435\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u0432 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u0432\u043e\u0435\u0433\u043e AI \u0432\u044b \u043d\u0435 \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u0435:<\/p>\n<blockquote>\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a: AI, \u044f \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0433\u043e \u0437\u0440\u0435\u043d\u0438\u044f \u043d\u0435 \u0447\u0443\u0432\u0441\u0442\u0432\u0443\u044e!<\/p>\n<p>AI: \u041c\u044f\u0443?!<\/p>\n<\/blockquote>\n<p>\u041a\u043e\u043c\u043c\u0438\u0442, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u044f \u0441\u043e\u0431\u0438\u0440\u0430\u043b \u043f\u0440\u043e\u0435\u043a\u0442 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438: <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/tree\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\">2d8ac08<\/a>.<\/p>\n<details class=\"spoiler\">\n<summary>\u0414\u0438\u0441\u043a\u043b\u0435\u0439\u043c\u0435\u0440<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u0446\u0435\u043b\u0438 \u043e\u0431\u0435\u0441\u0446\u0435\u043d\u0438\u0442\u044c \u0442\u0440\u0443\u0434 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432, \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430. \u0426\u0435\u043b\u044c: \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432 \u043a\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u044b \u0434\u0430\u0436\u0435 \u0434\u043b\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u0432\u0448\u0438\u0445\u0441\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432.<\/p>\n<\/div>\n<\/details>\n<h3>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438<\/h3>\n<p>\u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0431\u043e\u0433\u0430\u0442 \u043d\u0430 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u043f\u043e\u0441\u043b\u0435 copy-paste.<\/p>\n<p>\u0418\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0438 \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e, \u0434\u0430\u0431\u044b \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u043d\u0443\u0442\u044c \u0442\u043e\u0442 \u0444\u0430\u043a\u0442, \u0447\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0438 \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u043e\u0434\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0435\u0437\u0434\u0435.<\/p>\n<p>\u0418 \u0434\u0430, \u0432\u0441\u0435\u0433\u0434\u0430 \u0435\u0441\u0442\u044c \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0442\u0430\u043a \u0438 \u0431\u044b\u043b\u043e \u0437\u0430\u0434\u0443\u043c\u0430\u043d\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u043c, \u043d\u043e, \u0441\u0438\u044f \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c&#8230; \u043a\u0440\u0430\u0439\u043d\u0435 \u043c\u0430\u043b\u0430: &#171;\u0418\u043c\u043c\u043e\u043b\u0435\u0439\u0442 \u0438\u043c\u043f\u0440\u0443\u0432\u0435\u0434!&#187;<\/p>\n<p><strong>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 N1<\/strong><\/p>\n<pre><code class=\"cpp\">ov::pass::ConvertPadToGroupConvolution::                        ConvertPadToGroupConvolution()  {   ....   const auto&amp; pad_begin = pad->get_pads_begin();   const auto&amp; pad_end = pad->get_pads_end();    if (pad_begin.empty() || pad_end.empty())    {     \/\/ pads will be empty if inputs are not constants     return false;   }    \/\/ check that Pad has non-negative values   auto pred = [](int64_t a)                {                 return a &lt; 0;               };   if (std::any_of(pad_begin.begin(), pad_begin.end(), pred) ||       std::any_of(pad_begin.begin(), pad_begin.end(), pred))  \/\/ &lt;=   {      return false;   }   .... } <\/code><\/pre>\n<p>\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430:<\/p>\n<p><a href=\"https:\/\/pvs-studio.ru\/ru\/docs\/warnings\/v501\/\">V501<\/a> There are identical sub-expressions &#8216;std::any_of(pad_begin.begin(), pad_begin.end(), pred)&#8217; to the left and to the right of the &#8216;||&#8217; operator. <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/common\/transformations\/src\/transformations\/op_conversions\/convert_pad_to_group_conv.cpp\">convert_pad_to_group_conv.cpp<\/a> 66<\/p>\n<p>\u041a\u0430\u043a \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0438\u0436\u043d\u0435\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0434\u0432\u0430 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f: \u043e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435 \u0432\u044b\u0437\u043e\u0432\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <em>std::any_of<\/em> \u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438. \u041a\u043e\u0434 \u0432\u044b\u0448\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0432 \u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0430\u043a, \u0432\u0435\u0434\u044c \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043d\u0435\u0433\u043e, \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u044b\u0432\u043e\u0434, \u0447\u0442\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u0435, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"cpp\">if (std::any_of(pad_begin.begin(), pad_begin.end(), pred) ||     std::any_of(pad_end.begin(), pad_end.end(), pred))  {       return false; } <\/code><\/pre>\n<p><strong>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 N2<\/strong><\/p>\n<pre><code class=\"cpp\">ov::pass::ShuffleChannelsFusion::                    ShuffleChannelsFusion(const bool reshape_constants_check) {   ....   auto reshape_before_constant = std::dynamic_pointer_cast                                        &lt;ov::op::v0::Constant>(        pattern_map.at(reshape_before_const_pattern).get_node_shared_ptr());    auto reshape_before = std::dynamic_pointer_cast&lt;ov::op::v1::Reshape>(        pattern_map.at(reshape_before_pattern).get_node_shared_ptr());    auto transpose = std::dynamic_pointer_cast&lt;ov::op::v1::Transpose>(        pattern_map.at(transpose_pattern).get_node_shared_ptr());    auto reshape_after = std::dynamic_pointer_cast&lt;ov::op::v1::Reshape>(        pattern_map.at(reshape_after_pattern).get_node_shared_ptr());    auto reshape_after_constant = std::dynamic_pointer_cast&lt;ov::op::v0::Constant>(        pattern_map.at(reshape_after_const_pattern).get_node_shared_ptr());    if (!reshape_after || !transpose || !reshape_after ||      \/\/ &lt;=       !reshape_before_constant || !reshape_after_constant)    {     return false;   }   .... } <\/code><\/pre>\n<p>\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430:<\/p>\n<p><a href=\"https:\/\/pvs-studio.ru\/ru\/docs\/warnings\/v501\/\">V501<\/a> There are identical sub-expressions &#8216;!reshape_after&#8217; to the left and to the right of the &#8216;||&#8217; operator. <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/common\/transformations\/src\/transformations\/common_optimizations\/shuffle_channels_fusion.cpp\">shuffle_channels_fusion.cpp<\/a> 115<\/p>\n<p>\u0421\u043d\u043e\u0432\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u0438. \u0414\u0432\u0430 \u0440\u0430\u0437\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e, \u0447\u0442\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c <em>reshape_after<\/em> \u043d\u0435\u043d\u0443\u043b\u0435\u0432\u043e\u0439. \u0415\u0441\u043b\u0438 \u0441\u043d\u043e\u0432\u0430 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043a\u043e\u0434 \u0432\u044b\u0448\u0435, \u0437\u0430\u043c\u0435\u0442\u0438\u043c \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e <em>reshape_before<\/em>. \u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"cpp\">if (!reshape_after || !transpose || !reshape_before ||     !reshape_before_constant || !reshape_after_constant)  {     return false; } <\/code><\/pre>\n<p><strong>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 N3<\/strong><\/p>\n<pre><code class=\"cpp\">.... using PatternValueMaps = std::vector&lt;PatternValueMap>; .... PatternValueMaps m_pattern_value_maps; .... MatcherState::~MatcherState()  {   if (m_restore)    {     if (!m_matcher->m_matched_list.empty())     {       m_matcher->m_matched_list.erase(m_matcher->m_matched_list.begin() +                                        m_watermark,                                       m_matcher->m_matched_list.end());     }     if (!m_pattern_value_maps.empty())     {       m_matcher->m_pattern_value_maps.erase(m_pattern_value_maps.begin() + \/\/ &lt;=                                             m_capture_size,                                             m_pattern_value_maps.end());     }     m_matcher->m_pattern_map = m_pattern_value_map;   } } <\/code><\/pre>\n<p>\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430:<\/p>\n<p><a href=\"https:\/\/pvs-studio.ru\/ru\/docs\/warnings\/v539\/\">V539<\/a> [CERT-CTR53-CPP] Consider inspecting iterators which are being passed as arguments to function &#8216;erase&#8217;. <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/core\/src\/pattern\/matcher.cpp\">matcher.cpp<\/a> 48<\/p>\n<p>\u041d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u043e\u0448\u0438\u0431\u043a\u0430 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u0430\u044f. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u0441\u0451 \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443.<\/p>\n<p>\u0412\u043d\u0430\u0447\u0430\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0432\u0435\u043a\u0442\u043e\u0440 <em>m_pattern_value_maps<\/em> \u043d\u0435 \u043f\u0443\u0441\u0442\u043e\u0439.<\/p>\n<p>\u0417\u0430\u0442\u0435\u043c \u043c\u044b \u0437\u0430\u043c\u0435\u0447\u0430\u0435\u043c, \u0447\u0442\u043e \u0432 <em>then<\/em>-\u0432\u0435\u0442\u043a\u0435 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0433\u043e <em>if<\/em> \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0440\u0430\u0431\u043e\u0442\u0430 \u0443\u0436\u0435 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u043c:* m_matcher->m_pattern_value_maps*. \u0414\u0430\u043b\u044c\u0448\u0435 \u2014 \u0431\u043e\u043b\u044c\u0448\u0435.<\/p>\n<p>\u0412 \u0444\u0443\u043d\u043a\u0446\u0438\u044e-\u0447\u043b\u0435\u043d <em>std::vector&lt;PatternValueMap>::erase<\/em> \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 <em>m_matcher->m_pattern_value_maps<\/em> \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u0432 \u0432\u0438\u0434\u0435 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u2014 <em>m_pattern_value_maps<\/em>. \u0418 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u044d\u0442\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442.<\/p>\n<p>\u0421\u0443\u0434\u044f \u043f\u043e <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/core\/src\/pattern\/matcher.cpp#L19-L23\">\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0443<\/a> \u0438 <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/core\/src\/pattern\/matcher.cpp#L40-L54\">\u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0443<\/a>, \u043a\u043b\u0430\u0441\u0441 <em>MatcherState<\/em> \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u043e\u0442\u043a\u0430\u0442\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/core\/include\/openvino\/pass\/pattern\/matcher.hpp#L35\">\u043e\u0431\u044a\u0435\u043a\u0442\u0430<\/a> \u0442\u0438\u043f\u0430 <em>Matcher<\/em>. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0440\u0430\u043d\u044c\u0448\u0435 \u043a\u043e\u0434 <em>RAII<\/em>-\u043e\u0431\u0451\u0440\u0442\u043a\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u043b \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0442\u0438\u043f\u0430 <em>Matcher<\/em> \u0432 <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/core\/include\/openvino\/pass\/pattern\/matcher.hpp#L36-L37\">\u043f\u043e\u043b\u044f\u0445<\/a> <em>MatcherState::m_pattern_value_map<\/em> \u0438 <em>MatcherState::m_pattern_value_maps<\/em> \u0438 \u0437\u0430\u0442\u0435\u043c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u043b \u0432 \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435.<\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u043f\u043e\u0442\u043e\u043c \u043a\u043e\u0434 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043b\u0438, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/core\/include\/openvino\/pass\/pattern\/matcher.hpp#L38-L39\">\u043f\u043e\u043b\u044f<\/a> <em>MatcherState::m_watermark<\/em> \u0438 <em>MatcherState::m_capture_size<\/em>. \u041e\u043d\u0438 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u044b \u0437\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u043a\u043e\u043d\u0435\u0446 <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/core\/include\/openvino\/pass\/pattern\/matcher.hpp#L177-L178\">\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432<\/a> <em>Matcher::m_matched_list<\/em> \u0438 <em>Matcher::m_pattern_value_maps<\/em>.<\/p>\n<p>\u0418\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u043a\u043e\u0434 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"cpp\">if (!m_matcher->m_pattern_value_maps.empty()) {   m_matcher->m_pattern_value_maps.erase(                                   m_matcher->m_pattern_value_maps.begin() +                                   m_capture_size,                                   m_matcher->m_pattern_value_maps.end()     ); } <\/code><\/pre>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0445\u043e\u0447\u0443 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u043e\u043b\u0435 <em>MatcherState::m_pattern_value_maps<\/em> \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f, \u0438, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0435\u0433\u043e \u0441\u0442\u043e\u0438\u0442 \u0443\u0434\u0430\u043b\u0438\u0442\u044c.<\/p>\n<p><strong>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 N4<\/strong><\/p>\n<pre><code class=\"cpp\">template &lt;x64::cpu_isa_t isa> void jit_power_dynamic_emitter::               emit_isa(const std::vector&lt;size_t> &amp;in_vec_idxs,                         const std::vector&lt;size_t> &amp;out_vec_idxs) const  {   ....   if (isa == x64::avx512_core || isa == x64::avx512_core)    \/\/ &lt;=   {     h->sub(h->rsp, n_k_regs_to_save * k_mask_size);     for (size_t i = 0; i &lt; n_k_regs_to_save; ++i)      {       if (x64::mayiuse(x64::avx512_core))         h->kmovq(h->ptr[h->rsp + i * k_mask_size], Opmask(i));       else         h->kmovw(h->ptr[h->rsp + i * k_mask_size], Opmask(i));     }   }   .... } <\/code><\/pre>\n<p>\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430:<\/p>\n<p><a href=\"https:\/\/pvs-studio.ru\/ru\/docs\/warnings\/v501\/\">V501<\/a> There are identical sub-expressions &#8216;isa == x64::avx512_core&#8217; to the left and to the right of the &#8216;||&#8217; operator. <a href=\"https:\/\/github.com\/openvinotoolkit\/openvino\/blob\/2d8ac08bf1f87f8ac455eae381213b52e781fe8c\/src\/plugins\/intel_cpu\/src\/emitters\/plugin\/x64\/jit_eltwise_emitters.cpp\">jit_eltwise_emitters.cpp<\/a> 705<\/p>\n<p>\u0418 \u0441\u043d\u043e\u0432\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u0438: \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u0434\u0432\u0430 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438 <em>isa<\/em> \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0440\u0430\u0432\u043d\u043e \u0434\u0440\u0443\u0433\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e.<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0447\u0442\u043e \u044d\u0442\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u0434\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432 \u0442\u0440\u0451\u0445 \u043c\u0435\u0441\u0442\u0430\u0445:<\/p>\n<ol>\n<li>\n<p>V501 There are identical sub-expressions &#8216;isa == x64::avx512_core&#8217; to the left and to the right of the &#8216;||&#8217; operator. jit_eltwise_emitters.cpp 754<\/p>\n<\/li>\n<li>\n<p>V501 There are identical sub-expressions &#8216;isa == x64::avx512_core&#8217; to the left and to the right of the &#8216;||&#8217; operator. jit_eltwise_emitters.cpp 1609<\/p>\n<\/li>\n<li>\n<p>V501 There are identical sub-expressions &#8216;isa == x64::avx512_core&#8217; to the left and to the right of the &#8216;||&#8217; operator. jit_eltwise_emitters.cpp 1658<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 N5<\/strong><\/p>\n<pre><code class=\"cpp\">void GridSampleKernel&lt;isa>::refl<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-379980","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/379980","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=379980"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/379980\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=379980"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=379980"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=379980"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}