{"id":491225,"date":"2026-08-18T04:29:41","date_gmt":"2026-08-18T04:29:41","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=491225"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2026-08-18T04:29:41","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=491225","title":{"rendered":"\u041c\u0438\u043a\u0440\u043e\u044f\u0434\u0440\u043e SME2 sgemm: 1024 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f-\u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0437\u0430 \u043f\u0440\u043e\u0445\u043e\u0434"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p><em>\u0427\u0430\u0441\u0442\u044c 4 \u0446\u0438\u043a\u043b\u0430 \u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 Apple Scalable Matrix Extension (SME2). <\/em><a href=\"https:\/\/habr.com\/ru\/articles\/1069058\/\" rel=\"noopener noreferrer nofollow\"><em>\u0427\u0430\u0441\u0442\u044c 3<\/em><\/a><em> \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0430, \u0447\u0442\u043e BLIS \u0441\u0432\u043e\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u00ab\u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 GEMM \u043d\u0430 \u043d\u043e\u0432\u0443\u044e \u043c\u0430\u0448\u0438\u043d\u0443\u00bb \u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0438\u043a\u0440\u043e\u044f\u0434\u0440\u0430 \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e \u043f\u044f\u0442\u0438 \u0447\u0438\u0441\u0435\u043b \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u0431\u043b\u043e\u043a\u043e\u0432. \u042d\u0442\u0430 \u0447\u0430\u0441\u0442\u044c \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0441\u0430\u043c\u044b\u0439 \u0432\u0430\u0436\u043d\u044b\u0439 \u043f\u0440\u043e\u043f\u0443\u0441\u043a: \u043c\u0438\u043a\u0440\u043e\u044f\u0434\u0440\u043e \u043e\u0434\u0438\u043d\u0430\u0440\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438, \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043d\u043d\u043e\u0435 \u0441\u0442\u0440\u043e\u043a\u0430 \u0437\u0430 \u0441\u0442\u0440\u043e\u043a\u043e\u0439.<\/em><\/p>\n<p><strong>\u041e\u0433\u043b\u0430\u0432\u043b\u0435\u043d\u0438\u0435-\u0434\u043e\u0433\u043e\u0432\u043e\u0440.<\/strong> \u0412 \u044d\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u044b \u0432\u043e\u0437\u044c\u043c\u0451\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u0438\u0437 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043e\u0432 BLIS \u2014 \u043c\u0438\u043a\u0440\u043e\u044f\u0434\u0440\u043e <code>sgemm<\/code>; \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0444\u043e\u0440\u043c\u0443 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 32\u00d732 \u0432 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u0442\u0430\u0439\u043b\u0430\u0445 ZA, \u0437\u0430\u0442\u0435\u043c \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u0433\u043e\u0440\u044f\u0447\u0438\u0439 \u0446\u0438\u043a\u043b \u043f\u043e K, \u043f\u043e\u0442\u043e\u043c \u044d\u043f\u0438\u043b\u043e\u0433 \u0441 <code>alpha<\/code>, <code>beta<\/code> \u0438 \u043b\u043e\u0432\u0443\u0448\u043a\u043e\u0439 NaN, \u0430 \u0432 \u043a\u043e\u043d\u0446\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a\u0438\u0435 \u0447\u0438\u0441\u043b\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0434\u0430\u0451\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u044f\u0434\u0440\u043e. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043e\u0441\u0442\u0430\u0432\u0438\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043f\u043e\u0447\u0442\u0438 \u0442\u043e\u0439 \u0436\u0435, \u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044e \u0442\u0430\u0439\u043b\u0430 \u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f \u044f\u0434\u0440\u0430.<\/p>\n<hr\/>\n<p>\u0412\u0441\u0451 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0435 \u0431\u044b\u043b\u043e \u0440\u0430\u0437\u0431\u0435\u0433\u043e\u043c; \u0437\u0434\u0435\u0441\u044c \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u0432\u0437\u043b\u0435\u0442\u0430\u0435\u043c. \u041c\u0438\u043a\u0440\u043e\u044f\u0434\u0440\u043e \u043e\u0434\u0438\u043d\u0430\u0440\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u2014 \u0442\u043e\u0442 \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u043c \u0446\u0438\u043a\u043b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u043c\u0430\u0442\u0440\u0438\u0447\u043d\u043e\u0433\u043e \u0434\u0432\u0438\u0436\u043a\u0430, \u0438 \u043e\u043d \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u0430\u043b \u2014 \u043e\u043a\u043e\u043b\u043e 120 \u0441\u0442\u0440\u043e\u043a \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b, \u2014 \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0435\u0433\u043e \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u0438 \u043f\u043e\u043d\u044f\u0442\u044c \u043a\u0430\u0436\u0434\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435. \u041a \u043a\u043e\u043d\u0446\u0443 \u044d\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0442\u043e\u0447\u043d\u043e \u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0442 1357 \u0434\u043e 1450 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u043e\u0432 \u0440\u0430\u0437 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u044f\u0434\u0440\u0435 M5, \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u043e\u043d\u043e \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a.<\/p>\n<p>\u0412\u0441\u043f\u043e\u043c\u043d\u0438\u043c \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0438\u0437 \u0447\u0430\u0441\u0442\u0438 3. BLIS \u0443\u0436\u0435 \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043b \u0432\u044b\u0441\u043e\u043a\u0443\u044e \u0443\u0437\u043a\u0443\u044e \u043f\u0430\u043d\u0435\u043b\u044c A \u0438 \u0448\u0438\u0440\u043e\u043a\u0443\u044e \u0443\u0437\u043a\u0443\u044e \u043f\u0430\u043d\u0435\u043b\u044c B \u0432 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u044b\u0435, \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0435 \u043d\u0443\u043b\u044f\u043c\u0438 \u0431\u0443\u0444\u0435\u0440\u044b. \u041c\u0438\u043a\u0440\u043e\u044f\u0434\u0440\u0443 \u043e\u043d \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u044d\u0442\u0438 \u0434\u0432\u0435 \u043f\u0430\u043d\u0435\u043b\u0438, \u0434\u043b\u0438\u043d\u0443 K, \u0430\u043b\u044c\u0444\u0443, \u0431\u0435\u0442\u0443 \u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043e\u0434\u0438\u043d \u0442\u0430\u0439\u043b MR\u00d7NR \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b C. \u041d\u0430\u0448\u0430 \u0440\u0430\u0431\u043e\u0442\u0430: \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c <code>C := alpha\u00b7(A\u00b7B) + beta\u00b7C<\/code> \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0430\u0439\u043b\u0430 \u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435. BLIS \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430\u0441 \u043f\u043e \u0440\u0430\u0437\u0443 \u043d\u0430 \u0442\u0430\u0439\u043b \u0438 \u0434\u0435\u043b\u0430\u0435\u0442 \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u0432\u0441\u0451 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435.<\/p>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u044f\u0434\u0440\u0430 MR = NR = 2VL; \u043f\u0440\u0438 512-\u0431\u0438\u0442\u043d\u043e\u0439 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u043e\u0439 \u0434\u043b\u0438\u043d\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0443 Apple VL \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 16 \u0447\u0438\u0441\u0435\u043b \u043e\u0434\u0438\u043d\u0430\u0440\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438, \u0442\u0430\u043a \u0447\u0442\u043e \u0442\u0430\u0439\u043b \u0438\u043c\u0435\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 <strong>32\u00d732<\/strong>. \u0417\u0430\u043f\u043e\u043c\u043d\u0438\u0442\u0435 \u044d\u0442\u043e \u0447\u0438\u0441\u043b\u043e: \u0432 \u043d\u0451\u043c \u0432\u0441\u044f \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u0431\u044b\u0441\u0442\u0440\u043e\u0442\u044b \u044f\u0434\u0440\u0430.<\/p>\n<h3>\u0413\u0434\u0435 \u0436\u0438\u0432\u0451\u0442 \u0442\u0430\u0439\u043b 32\u00d732: \u0432\u0441\u0435 \u0447\u0435\u0442\u044b\u0440\u0435 \u0442\u0430\u0439\u043b\u0430 ZA \u0441\u0440\u0430\u0437\u0443<\/h3>\n<p>\u0427\u0430\u0441\u0442\u044c 1 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0430 ZA \u043a\u0430\u043a \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0439 \u0431\u0430\u0439\u0442\u043e\u0432\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432, \u0440\u0430\u0437\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u043d\u0430 \u043d\u0443\u043c\u0435\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0442\u0430\u0439\u043b\u044b. \u041f\u0440\u0438 SVL 512 FP32-\u0447\u0430\u0441\u0442\u044c ZA \u2014 \u0447\u0435\u0442\u044b\u0440\u0435 \u0442\u0430\u0439\u043b\u0430 16\u00d716, \u043e\u0442 <code>za0<\/code> \u0434\u043e <code>za3<\/code>. \u041e\u0434\u0438\u043d FMOPA \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u043e\u0434\u0438\u043d \u0438\u0437 \u043d\u0438\u0445 \u2014 \u0431\u043b\u043e\u043a 16\u00d716 (VL\u00d7VL). \u041d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 32\u00d732 \u2014 \u0447\u0435\u0442\u044b\u0440\u0435 \u0442\u0430\u043a\u0438\u0445 \u0431\u043b\u043e\u043a\u0430, \u2014 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0432\u0441\u0435 \u0447\u0435\u0442\u044b\u0440\u0435 \u0442\u0430\u0439\u043b\u0430 ZA \u043a\u0430\u043a \u043e\u0434\u0438\u043d \u043c\u0430\u043a\u0440\u043e\u0442\u0430\u0439\u043b 2\u00d72:<\/p>\n<pre><code>              n: 0..VL-1   n: VL..2VL-1  m: 0..VL-1    za0          za2  m: VL..2VL-1  za1          za3<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u042d\u0442\u043e \u0432\u044b\u0438\u0433\u0440\u044b\u0448 \u043e\u0442 \u043f\u043e\u0434\u0441\u0447\u0451\u0442\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u043a \u0438\u0437 \u0447\u0430\u0441\u0442\u0438 2. \u041e\u0434\u0438\u043d FMOPA \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 32 \u0447\u0438\u0441\u043b\u0430 (VL-\u0441\u0442\u043e\u043b\u0431\u0435\u0446 A, VL-\u0441\u0442\u0440\u043e\u043a\u0443 B) \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 256 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0439-\u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u2014 8 \u043d\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e. \u041d\u043e \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043c\u0430\u043a\u0440\u043e\u0442\u0430\u0439\u043b 2\u00d72, \u043c\u044b \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c <em>\u0434\u0432\u0430<\/em> VL-\u0441\u0442\u043e\u043b\u0431\u0446\u0430 A \u0438 <em>\u0434\u0432\u0435<\/em> VL-\u0441\u0442\u0440\u043e\u043a\u0438 B \u2014 64 \u0447\u0438\u0441\u043b\u0430 \u2014 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c <em>\u0447\u0435\u0442\u044b\u0440\u0435<\/em> FMOPA, \u0442\u043e \u0435\u0441\u0442\u044c 1024 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f-\u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u042d\u0442\u043e 16 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0439-\u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u0439 \u043d\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u2014 \u0432\u0434\u0432\u043e\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u043e\u0434\u043d\u043e\u0442\u0430\u0439\u043b\u043e\u0432\u043e\u0433\u043e \u044f\u0434\u0440\u0430 \u0438\u0437 \u0443\u0447\u0435\u0431\u043d\u043e\u0433\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430. \u0422\u0430\u0439\u043b 32\u00d732 \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u0435\u043d: \u044d\u0442\u043e \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u0439 \u0442\u0430\u0439\u043b, \u043d\u0430\u0441\u044b\u0449\u0430\u044e\u0449\u0438\u0439 FP32-\u043c\u0430\u0441\u0441\u0438\u0432 ZA, \u0430 \u043d\u0430\u0441\u044b\u0449\u0435\u043d\u0438\u0435 ZA \u043e\u0442\u043e\u0434\u0432\u0438\u0433\u0430\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u043e\u0432 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0430 \u0437\u0430\u0434\u043d\u0438\u0439 \u043f\u043b\u0430\u043d, \u0447\u0442\u043e\u0431\u044b \u0443\u0437\u043a\u0438\u043c \u043c\u0435\u0441\u0442\u043e\u043c \u0441\u0442\u0430\u043b \u0431\u043b\u043e\u043a SME, \u0430 \u043d\u0435 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u0430\u043c\u044f\u0442\u0438.<\/p>\n<p>\u0427\u0435\u0442\u044b\u0440\u0435 FMOPA, \u0441\u0442\u0440\u043e\u044f\u0449\u0438\u0435 \u043c\u0430\u043a\u0440\u043e\u0442\u0430\u0439\u043b \u0438\u0437 \u043e\u0434\u043d\u043e\u0439 \u043f\u0430\u0440\u044b \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 A (<code>a0<\/code>, <code>a1<\/code>) \u0438 \u043e\u0434\u043d\u043e\u0439 \u043f\u0430\u0440\u044b \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 B (<code>b0<\/code>, <code>b1<\/code>), \u2014 \u043f\u043e\u043f\u0440\u043e\u0441\u0442\u0443 \u0447\u0435\u0442\u044b\u0440\u0435 \u0431\u043b\u043e\u043a\u0430 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f:<\/p>\n<pre><code>za0 += a0 \u2297 b0     za2 += a0 \u2297 b1za1 += a1 \u2297 b0     za3 += a1 \u2297 b1<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041a\u0430\u0436\u0434\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 A \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 B; \u044d\u0442\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0430\u043d\u0433\u0430 1 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 32\u00d732 \u2014 \u043e\u0434\u0438\u043d \u0448\u0430\u0433 \u0440\u0435\u0434\u0443\u043a\u0446\u0438\u0438 \u043f\u043e k. \u0427\u0435\u0442\u044b\u0440\u0435 \u0442\u0430\u0439\u043b\u0430 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u2014 \u043d\u0435 \u0447\u0435\u0442\u044b\u0440\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043e\u0442\u0432\u0435\u0442\u0430, \u0430 \u043c\u043e\u043c\u0435\u043d\u0442\u044b \u043e\u0434\u043d\u043e\u0433\u043e \u0446\u0435\u043b\u043e\u0433\u043e: \u043f\u043e\u043a\u0430 \u0438\u0434\u0451\u0442 \u0440\u0435\u0434\u0443\u043a\u0446\u0438\u044f, \u043c\u0430\u043a\u0440\u043e\u0442\u0430\u0439\u043b \u0436\u0438\u0432\u0451\u0442 \u043a\u0430\u043a \u0435\u0434\u0438\u043d\u043e\u0435 C \u0438 \u0440\u0430\u0441\u043f\u0430\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0447\u0435\u0442\u0432\u0451\u0440\u043a\u0443 \u043b\u0438\u0448\u044c \u043f\u0440\u0438 \u0437\u0430\u043f\u0438\u0441\u0438.<\/p>\n<h3>\u0426\u0438\u043a\u043b \u0440\u0435\u0434\u0443\u043a\u0446\u0438\u0438: \u0440\u0430\u0441\u0448\u0438\u0442 \u043f\u043e \u0434\u0432\u0430, \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043f\u043e \u0447\u0435\u0442\u044b\u0440\u0435<\/h3>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u0444\u043e\u0440\u043c\u0430 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u044f\u0441\u043d\u0430, \u043c\u043e\u0436\u043d\u043e \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043a\u043e\u0434 \u0431\u0435\u0437 \u043e\u0449\u0443\u0449\u0435\u043d\u0438\u044f, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439. \u0412\u043e\u0442 \u0433\u043e\u0440\u044f\u0447\u0438\u0439 \u0446\u0438\u043a\u043b \u0434\u043e\u0441\u043b\u043e\u0432\u043d\u043e \u2014 \u043a\u043e\u0434, \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0438\u0439\u0441\u044f KC \u0440\u0430\u0437 \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0442\u0430\u0439\u043b \u0438 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0440\u0430\u0437 \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 GEMM:<\/p>\n<pre><code>for ( ; l + 1 &lt; k; l += 2 ){    svfloat32x4_t av = svld1_x4( pc, a );    svfloat32x4_t bv = svld1_x4( pc, b );    svmopa_za32_f32_m( 0, pall, pall, svget4( av, 0 ), svget4( bv, 0 ) );    svmopa_za32_f32_m( 1, pall, pall, svget4( av, 1 ), svget4( bv, 0 ) );    svmopa_za32_f32_m( 2, pall, pall, svget4( av, 0 ), svget4( bv, 1 ) );    svmopa_za32_f32_m( 3, pall, pall, svget4( av, 1 ), svget4( bv, 1 ) );    svmopa_za32_f32_m( 0, pall, pall, svget4( av, 2 ), svget4( bv, 2 ) );    svmopa_za32_f32_m( 1, pall, pall, svget4( av, 3 ), svget4( bv, 2 ) );    svmopa_za32_f32_m( 2, pall, pall, svget4( av, 2 ), svget4( bv, 3 ) );    svmopa_za32_f32_m( 3, pall, pall, svget4( av, 3 ), svget4( bv, 3 ) );    a += 4*vl;    b += 4*vl;}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u0441\u0442\u043e\u0438\u0442 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0442\u0440\u0451\u0445 \u0432\u0435\u0449\u0430\u0445.<\/p>\n<p><strong>\u041e\u0434\u043d\u0430 \u043c\u0443\u043b\u044c\u0442\u0438\u0432\u0435\u043a\u0442\u043e\u0440\u043d\u0430\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043d\u0430 \u043e\u043f\u0435\u0440\u0430\u043d\u0434 \u2014 \u0434\u0432\u0430 \u0448\u0430\u0433\u0430 \u043f\u043e k.<\/strong> <code>svld1_x4<\/code> \u2014 \u043c\u0443\u043b\u044c\u0442\u0438\u0432\u0435\u043a\u0442\u043e\u0440\u043d\u0430\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 SME2: \u043e\u0434\u043d\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0447\u0435\u0442\u044b\u0440\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0445 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043f\u0430\u043d\u0435\u043b\u044c \u0445\u0440\u0430\u043d\u0438\u0442 \u0448\u0430\u0433 <em>l<\/em> \u0438 \u0448\u0430\u0433 <em>l+1<\/em> \u0432\u043f\u043b\u043e\u0442\u043d\u0443\u044e \u0434\u0440\u0443\u0433 \u043a \u0434\u0440\u0443\u0433\u0443, \u043e\u0434\u0438\u043d <code>svld1_x4<\/code> \u043f\u043e A \u0437\u0430\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043e\u0431\u0430 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 A \u0434\u043b\u044f \u043e\u0431\u043e\u0438\u0445 \u0448\u0430\u0433\u043e\u0432 (<code>av0<\/code>, <code>av1<\/code> \u0434\u043b\u044f \u0448\u0430\u0433\u0430 <em>l<\/em>; <code>av2<\/code>, <code>av3<\/code> \u0434\u043b\u044f \u0448\u0430\u0433\u0430 <em>l+1<\/em>), \u0438 \u0442\u043e \u0436\u0435 \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e \u0434\u043b\u044f B. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0446\u0438\u043a\u043b \u0440\u0430\u0441\u0448\u0438\u0442 \u043f\u043e \u0434\u0432\u0430 \u0432\u0434\u043e\u043b\u044c K, \u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u043e\u043f\u0435\u0440\u0430\u043d\u0434 \u043e\u0431\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0440\u043e\u0432\u043d\u043e \u0432 \u043e\u0434\u043d\u0443 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0430 \u0434\u0432\u0430 \u0448\u0430\u0433\u0430. \u042d\u0442\u043e \u0432\u0430\u0436\u043d\u0435\u0435, \u0447\u0435\u043c \u043a\u0430\u0436\u0435\u0442\u0441\u044f: \u043d\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0445 K \u043c\u0435\u043d\u044c\u0448\u0435\u0435 \u0447\u0438\u0441\u043b\u043e \u0431\u043e\u043b\u0435\u0435 \u0448\u0438\u0440\u043e\u043a\u0438\u0445 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u043a \u0438\u0437\u043c\u0435\u0440\u0438\u043c\u043e \u0443\u0441\u043a\u043e\u0440\u044f\u0435\u0442 \u044f\u0434\u0440\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043d\u0435 \u0442\u043e\u043d\u0435\u0442 \u0432 \u043f\u043e\u0442\u043e\u043a\u0435 \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u044b\u0445 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u043a. \u041f\u0435\u0440\u0432\u044b\u0439 \u0431\u043b\u043e\u043a \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 FMOPA \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0435\u0442 \u0448\u0430\u0433 <em>l<\/em>; \u0432\u0442\u043e\u0440\u043e\u0439 \u2014 \u0448\u0430\u0433 <em>l+1<\/em>; \u0437\u0430\u0442\u0435\u043c \u043e\u0431\u0430 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u043f\u0440\u043e\u0434\u0432\u0438\u0433\u0430\u044e\u0442\u0441\u044f \u043d\u0430 4\u00b7VL (\u0434\u0432\u0430 \u0448\u0430\u0433\u0430 \u00d7 \u0434\u0432\u0430 VL-\u0432\u0435\u043a\u0442\u043e\u0440\u0430), \u0438 \u0432\u0441\u0451 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442\u0441\u044f.<\/p>\n<p><strong>\u041f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u044b \u0441\u043f\u043b\u043e\u0448\u044c \u0438\u0441\u0442\u0438\u043d\u043d\u044b\u0435 \u2014 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e.<\/strong> \u041a\u0430\u0436\u0434\u044b\u0439 FMOPA \u043c\u0430\u0441\u043a\u0438\u0440\u043e\u0432\u0430\u043d \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u043e\u043c <code>pall = svptrue_b32()<\/code>, \u0438\u0441\u0442\u0438\u043d\u043d\u044b\u043c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430. \u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a \u043a\u0440\u0430\u0451\u0432 \u0432\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u043c \u0446\u0438\u043a\u043b\u0435. \u042d\u0442\u043e \u0434\u0438\u0432\u0438\u0434\u0435\u043d\u0434 \u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0438 (\u0447\u0430\u0441\u0442\u044c 7): \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u0430\u043d\u0435\u043b\u0438 BLIS \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u044b \u043d\u0443\u043b\u044f\u043c\u0438 \u0434\u043e \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0442\u0430\u0439\u043b\u0430 32\u00d732, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u0436\u0435 \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0438\u043c\u0435\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 30\u00d717, \u044f\u0434\u0440\u043e \u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0430\u0435\u0442 \u043f\u043e\u043b\u043d\u044b\u0435 32\u00d732, \u043f\u043e \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u043d\u0443\u043b\u0435\u0439. \u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0432\u043d\u043e\u0441\u0438\u0442 \u0432 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0440\u043e\u0432\u043d\u043e \u043d\u043e\u043b\u044c \u0438 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f, \u0442\u0430\u043a \u0447\u0442\u043e \u043e\u043d\u043e \u0431\u0435\u0437\u0432\u0440\u0435\u0434\u043d\u043e, \u2014 \u0430 \u0432\u0437\u0430\u043c\u0435\u043d \u0446\u0438\u043a\u043b \u0440\u0435\u0434\u0443\u043a\u0446\u0438\u0438 \u043b\u0438\u0448\u0451\u043d \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u0439, \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u043c \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u043e\u043c \u0438 \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u043e \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f. \u041c\u044b \u043f\u043b\u0430\u0442\u0438\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043b\u0438\u0448\u043d\u0435\u0439 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0438 \u043d\u0430 \u043d\u0443\u043b\u044f\u0445, \u0447\u0442\u043e\u0431\u044b \u0433\u043e\u0440\u044f\u0447\u0438\u0439 \u0446\u0438\u043a\u043b \u0431\u044b\u043b \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u043c. \u0414\u043b\u044f \u044f\u0434\u0440\u0430, \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f\u043c\u0438, \u044d\u0442\u043e \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u0430\u044f \u0441\u0434\u0435\u043b\u043a\u0430.<\/p>\n<p><strong>ZA \u043f\u0440\u0438\u0448\u0451\u043b \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043e\u0431\u043d\u0443\u043b\u0451\u043d\u043d\u044b\u043c.<\/strong> \u041f\u0435\u0440\u0435\u0434 \u0446\u0438\u043a\u043b\u043e\u043c \u043d\u0435\u0442 \u0432\u044b\u0437\u043e\u0432\u0430 <code>svzero_za()<\/code>. \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0430 \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c <code>__arm_new(\"za\")<\/code>, \u0438 ARM ACLE \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u043e\u0431\u043d\u0443\u043b\u044f\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 ZA \u043f\u0440\u0438 \u0432\u0445\u043e\u0434\u0435. \u041e\u0431\u043d\u0443\u043b\u0435\u043d\u0438\u0435 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043f\u043e\u0440\u043e\u0434\u0438\u043b\u043e \u0431\u044b \u0432\u0442\u043e\u0440\u0443\u044e, \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u0443\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e <code>zero {za}<\/code> \u2014 Apple clang \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0440\u043e\u0436\u0434\u0430\u0435\u0442 \u0434\u0432\u0435, \u0435\u0441\u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u044d\u0442\u043e \u044f\u0432\u043d\u043e; \u0442\u0430\u043a \u044f \u044d\u0442\u043e \u0438 \u0437\u0430\u043c\u0435\u0442\u0438\u043b. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u043d\u0430\u043a\u0430\u043f\u043b\u0438\u0432\u0430\u0442\u044c.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u044b\u0439 \u0445\u0432\u043e\u0441\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043d\u0435\u0447\u0451\u0442\u043d\u044b\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0448\u0430\u0433 \u043f\u043e k (\u0447\u0435\u0440\u0435\u0437 <code>svld1_x2<\/code> \u0438 \u0447\u0435\u0442\u044b\u0440\u0435 FMOPA), \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e K \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0447\u0451\u0442\u043d\u043e. \u0422\u0430 \u0436\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f, \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043d\u043e\u0439 \u0448\u0438\u0440\u0438\u043d\u044b.<\/p>\n<h3>\u0427\u0438\u0442\u0430\u0435\u043c \u043e\u0442\u0432\u0435\u0442: \u0430\u043b\u044c\u0444\u0430, \u0431\u0435\u0442\u0430 \u0438 \u043b\u043e\u0432\u0443\u0448\u043a\u0430 \u0441 NaN<\/h3>\n<p>\u041a\u043e\u0433\u0434\u0430 \u0440\u0435\u0434\u0443\u043a\u0446\u0438\u044f \u043f\u043e K \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430, \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 32\u00d732 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 <code>za0<\/code>\u2013<code>za3<\/code>. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 BLAS \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 C. \u042d\u0442\u043e\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 \u043d\u0438 \u043e\u0434\u043d\u043e \u0438\u0437 \u0434\u0432\u0443\u0445 \u044f\u0434\u0435\u0440, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0445 \u0432 \u0447\u0430\u0441\u0442\u0438 2, \u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u0437\u0434\u0435\u0441\u044c \u043c\u0438\u043a\u0440\u043e\u044f\u0434\u0440\u043e \u0437\u0430\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0437\u0432\u0430\u043d\u0438\u0435 \u00abGEMM\u00bb.<\/p>\n<p>\u041c\u044b \u0447\u0438\u0442\u0430\u0435\u043c ZA \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u043c\u0443 \u0441\u0442\u043e\u043b\u0431\u0446\u0443, <em>\u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e<\/em>. \u0414\u043b\u044f \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430 <code>j<\/code> \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 <code>za0<\/code>\/<code>za1<\/code>, \u0435\u0441\u043b\u0438 <code>j &lt; VL<\/code> (\u043b\u0435\u0432\u0430\u044f \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u043c\u0430\u043a\u0440\u043e\u0442\u0430\u0439\u043b\u0430), \u0438\u043b\u0438 \u0432 <code>za2<\/code>\/<code>za3<\/code>, \u0435\u0441\u043b\u0438 <code>j \u2265 VL<\/code> (\u043f\u0440\u0430\u0432\u0430\u044f \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430), \u0441 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c \u043d\u0430 \u0432\u0435\u0440\u0445\u043d\u0438\u0435 VL \u0441\u0442\u0440\u043e\u043a \u0438 \u043d\u0438\u0436\u043d\u0438\u0435 VL \u0441\u0442\u0440\u043e\u043a:<\/p>\n<pre><code>if ( (uint64_t)j &lt; vl ) {    ab0 = svread_ver_za32_f32_m( svundef_f32(), pm0, 0, (uint32_t)j );    ab1 = svread_ver_za32_f32_m( svundef_f32(), pm1, 1, (uint32_t)j );} else {    ab0 = svread_ver_za32_f32_m( svundef_f32(), pm0, 2, (uint32_t)(j - vl) );    ab1 = svread_ver_za32_f32_m( svundef_f32(), pm1, 3, (uint32_t)(j - vl) );}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code>pm0<\/code> \u0438 <code>pm1<\/code> \u2014 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0435 \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u044b, \u043c\u0430\u0441\u043a\u0438 <code>svwhilelt<\/code>, \u043f\u043e\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 <code>0..m<\/code> \u0438 <code>VL..m<\/code>, \u2014 \u0442\u0430\u043a \u0447\u0442\u043e \u0442\u0430\u0439\u043b, \u0447\u044c\u044f \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0430\u044f \u0432\u044b\u0441\u043e\u0442\u0430 \u043c\u0435\u043d\u044c\u0448\u0435 32, \u0447\u0438\u0442\u0430\u0435\u0442 \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438. \u0421\u0442\u043e\u043b\u0431\u0446\u043e\u0432\u044b\u0439 \u0446\u0438\u043a\u043b \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u0442 <code>j<\/code> \u043e\u0442 0 \u0434\u043e \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0433\u043e <code>n<\/code>; \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0442\u0430\u0439\u043b\u044b \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043a\u0430\u0441\u0430\u044e\u0442\u0441\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432. \u0412\u043e\u0442 \u0438 \u0432\u0441\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u0440\u0430\u0451\u0432 \u043f\u0440\u0438 \u0437\u0430\u043f\u0438\u0441\u0438: \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u043d\u044b\u0435 \u0447\u0442\u0435\u043d\u0438\u044f \u043f\u043e \u043e\u0441\u0438 \u0441\u0442\u0440\u043e\u043a, \u0443\u043a\u043e\u0440\u043e\u0447\u0435\u043d\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u043f\u043e \u043e\u0441\u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432. \u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u044f\u0434\u0435\u0440 \u0434\u043b\u044f \u043f\u043e\u0434\u0447\u0438\u0441\u0442\u043a\u0438.<\/p>\n<p>\u0417\u0430\u0442\u0435\u043c \u0441\u0430\u043c\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u2014 \u0438 \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u044c, \u0440\u0430\u0434\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u0442\u043e\u0438\u0442 \u0432\u0435\u0441\u044c \u044d\u0442\u043e\u0442 \u0440\u0430\u0437\u0434\u0435\u043b. \u0423\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 BLAS \u2014 <code>C := alpha\u00b7AB + beta\u00b7C<\/code>, \u043d\u043e \u0432 \u043d\u0451\u043c \u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0441\u043e\u0431\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439. \u041a\u043e\u0433\u0434\u0430 <code>beta == 0<\/code>, \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 <code>C := alpha\u00b7AB<\/code>: \u043c\u0430\u0442\u0440\u0438\u0446\u0430 C <em>\u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f<\/em>, \u0438 \u0435\u0451 \u0441\u0442\u0430\u0440\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f. \u041f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e? \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0441\u0432\u0435\u0436\u0435\u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u0430\u044f \u0432\u044b\u0445\u043e\u0434\u043d\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043c\u0443\u0441\u043e\u0440, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f NaN, \u0430 <code>0\u00b7NaN<\/code> \u0440\u0430\u0432\u043d\u043e NaN, \u0430 \u043d\u0435 \u043d\u0443\u043b\u044e. \u0415\u0441\u043b\u0438 \u0434\u043e\u0431\u0440\u043e\u0441\u043e\u0432\u0435\u0441\u0442\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c <code>alpha\u00b7AB + beta\u00b7C<\/code> \u043f\u0440\u0438 <code>beta = 0<\/code> \u043d\u0430\u0434 \u043d\u0435\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 C, \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0439 NaN \u0438\u0441\u043f\u043e\u0440\u0442\u0438\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442 BLAS \u043f\u0440\u044f\u043c\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442, \u0447\u0442\u043e\u0431\u044b <code>beta == 0<\/code> \u043e\u0437\u043d\u0430\u0447\u0430\u043b\u043e \u00ab\u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0437\u0430\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u0442\u044c \u0432 C\u00bb. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f\u0434\u0440\u043e \u0432\u0435\u0442\u0432\u0438\u0442\u0441\u044f:<\/p>\n<pre><code>if ( *beta == 0.0f ) {    \/\/ \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044c: C \u043d\u0435 \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0438\u043a\u043e\u0433\u0434\u0430    svst1_f32( pm0, cj,      svmul_f32_x( pm0, ab0, valpha ) );    svst1_f32( pm1, cj + vl, svmul_f32_x( pm1, ab1, valpha ) );} else {    \/\/ \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u0435: \u0447\u0438\u0442\u0430\u0435\u043c C, \u0432\u043f\u043b\u0430\u0432\u043b\u044f\u0435\u043c \u0431\u0435\u0442\u0443    svfloat32_t c0 = svld1_f32( pm0, cj );    svfloat32_t c1 = svld1_f32( pm1, cj + vl );    c0 = svmla_f32_x( pm0, svmul_f32_x( pm0, ab0, valpha ), c0, vbeta );    c1 = svmla_f32_x( pm1, svmul_f32_x( pm1, ab1, valpha ), c1, vbeta );    svst1_f32( pm0, cj,      c0 );    svst1_f32( pm1, cj + vl, c1 );}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u0435\u0442\u0432\u044c <code>beta == 0<\/code> \u0443\u043c\u043d\u043e\u0436\u0430\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 ZA \u043d\u0430 \u0430\u043b\u044c\u0444\u0443 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u2014 C \u043d\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u043d\u0438\u043a\u043e\u0433\u0434\u0430. \u041e\u0431\u0449\u0430\u044f \u0432\u0435\u0442\u0432\u044c \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 C, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 <code>alpha\u00b7AB + beta\u00b7C<\/code> \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u0438 \u0441\u043b\u0438\u0442\u044b\u043c \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435\u043c-\u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u0412\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435, \u043d\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d\u043e \u043e\u0442\u0434\u0435\u043b\u044f\u0435\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 BLAS \u043e\u0442 \u043d\u0435\u0443\u043b\u043e\u0432\u0438\u043c\u043e \u0441\u043b\u043e\u043c\u0430\u043d\u043d\u043e\u0433\u043e \u2014 \u0438 \u044d\u0442\u043e \u0440\u043e\u0432\u043d\u043e \u0442\u0430 \u0434\u0435\u0442\u0430\u043b\u044c, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u044f\u0434\u0440\u0430\u043c \u0438\u0437 \u0443\u0447\u0435\u0431\u043d\u044b\u0445 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432 \u0434\u0443\u043c\u0430\u0442\u044c \u043d\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c: \u043e\u043d\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e <code>C = A\u00b7B<\/code>. \u041d\u043e\u043b\u044c \u0437\u0434\u0435\u0441\u044c \u2014 \u043d\u0435 \u043f\u0443\u0441\u0442\u043e\u0435 \u043d\u0438\u0447\u0442\u043e: <code>0\u00b7NaN<\/code> \u043d\u0435 \u0433\u0430\u0441\u0438\u0442 \u043c\u0443\u0441\u043e\u0440, \u0430 \u0440\u0430\u0437\u043d\u043e\u0441\u0438\u0442 \u0435\u0433\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0431\u043d\u0443\u043b\u0435\u043d\u0438\u0435 C \u2014 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0435 \u043e\u0442\u0440\u0438\u0446\u0430\u043d\u0438\u0435, \u0430\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044c, \u0430 \u043d\u0435 \u0444\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u043d\u043e\u043b\u044c.<\/p>\n<h3>\u041f\u0440\u0438\u0451\u043c \u0441\u043e \u0441\u0442\u0435\u043a\u043e\u0432\u044b\u043c \u043a\u0430\u0434\u0440\u043e\u043c: \u043a\u0430\u043a \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u043f\u0443\u0442\u044c \u043a\u0440\u043e\u0448\u0435\u0447\u043d\u044b\u043c<\/h3>\n<p>\u041e\u0434\u043d\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u0430\u044f \u0434\u0435\u0442\u0430\u043b\u044c \u2014 \u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0437\u0435\u0446 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0438\u0438, \u043e\u0442\u043b\u0430\u0434\u043a\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u0442\u043e\u0438\u043b\u0430 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0445 \u0443\u0441\u0438\u043b\u0438\u0439. \u041c\u0438\u043a\u0440\u043e\u044f\u0434\u0440\u043e, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0435 BLIS, <code>bli_sgemm_armsme_2vlx2vl<\/code>, \u2014 \u0442\u043e\u043d\u043a\u0438\u0439 \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440:<\/p>\n<pre><code>if ( rs_c == 1 ) {           \/\/ C \u043f\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c: \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u043f\u0443\u0442\u044c    bli_sgemm_armsme_2vlx2vl_body( m, n, k, alpha, a, b, beta, c, cs_c );    return;}bli_sgemm_armsme_2vlx2vl_ct( ... );   \/\/ \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u0448\u0430\u0433 \u043f\u043e \u0441\u0442\u0440\u043e\u043a\u0430\u043c: \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0439 \u043f\u0443\u0442\u044c<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043e\u0442\u043e\u043a\u043e\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>_body<\/code> \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u043e\u0433\u043e \u0448\u0430\u0433\u0430 \u043f\u043e \u0441\u0442\u0440\u043e\u043a\u0430\u043c (C \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043f\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c) \u2014 \u044d\u0442\u043e \u043f\u043e\u0434\u0430\u0432\u043b\u044f\u044e\u0449\u0435 \u0447\u0430\u0441\u0442\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439, \u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u043d\u0430\u0448\u0435 \u044f\u0434\u0440\u043e \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u0442 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0435\u043d\u0438\u0435 (\u0447\u0430\u0441\u0442\u044c 3). \u041a\u043e\u0433\u0434\u0430 \u0443 C \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u0448\u0430\u0433 \u043f\u043e \u0441\u0442\u0440\u043e\u043a\u0430\u043c, \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0432 \u043d\u0435\u0451 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043d\u0435\u043b\u044c\u0437\u044f, \u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043c\u0438\u043a\u0440\u043e\u0442\u0430\u0439\u043b\u043e\u0432 BLIS \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0439 \u0431\u0443\u0444\u0435\u0440. \u041d\u043e \u044d\u0442\u043e\u0442 \u0431\u0443\u0444\u0435\u0440 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 16 \u041a\u0438\u0411, \u0438 \u0441\u0442\u043e\u0438\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0435\u0433\u043e \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c, \u043a\u0430\u043a \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u0443\u0435\u0442 \u043f\u043e\u0434 \u043d\u0435\u0433\u043e \u0441\u0442\u0435\u043a <em>\u0438<\/em> \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0441\u0442\u0435\u043a\u0430 (stack probe) \u2014 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0432\u044b\u0437\u043e\u0432\u0435, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u043f\u0443\u0442\u044c, \u0435\u0441\u043b\u0438 \u043e\u0431\u0430 \u043f\u0443\u0442\u0438 \u0436\u0438\u0432\u0443\u0442 \u0432 \u043e\u0434\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c <code>__attribute__((noinline))<\/code>. \u0421\u0442\u0435\u043a\u043e\u0432\u044b\u0439 \u043a\u0430\u0434\u0440 \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u043f\u0443\u0442\u0438 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043a\u0440\u043e\u0448\u0435\u0447\u043d\u044b\u043c \u2014 \u043d\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438, \u043d\u0438 \u043d\u0430\u043f\u0440\u0430\u0441\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0435\u0440\u0432\u0430, \u2014 \u0438 \u0432\u044b\u0437\u043e\u0432 \u0441\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432\u044b\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u043c, \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 99% \u0441\u043b\u0443\u0447\u0430\u0435\u0432, \u043d\u0435 \u043f\u043b\u0430\u0442\u0438\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u0437\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u0434\u043a\u043e\u0433\u043e. \u0422\u0430\u043a\u0438\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0442, \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u044f \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u0438 \u043d\u0435\u0434\u043e\u0443\u043c\u0435\u0432\u0430\u044f, \u043e\u0442\u043a\u0443\u0434\u0430 \u0443 \u0433\u043e\u0440\u044f\u0447\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0441\u0442\u0435\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0442\u0430\u043c \u0431\u044b\u0442\u044c \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e.<\/p>\n<h3>\u0427\u0442\u043e \u044d\u0442\u043e \u0434\u0430\u0451\u0442 \u0432 \u0447\u0438\u0441\u043b\u0430\u0445<\/h3>\n<p>\u041e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u0434\u0432\u043e\u0438\u0447\u043d\u044b\u0439 \u0444\u0430\u0439\u043b, \u043e\u0434\u0438\u043d \u043f\u043e\u0442\u043e\u043a, M5 Pro, n = 2000: \u044d\u0442\u043e \u044f\u0434\u0440\u043e \u0440\u0430\u0437\u0433\u043e\u043d\u044f\u0435\u0442 sgemm \u0434\u043e <strong>1357\u20131450 GFLOPS<\/strong> \u043f\u0440\u043e\u0442\u0438\u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 141 \u0443 \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430 NEON. \u0423\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432 9,6 \u0440\u0430\u0437\u0430 \u2014 \u043e\u0442 \u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0438\u043a\u0440\u043e\u044f\u0434\u0440\u0430 \u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u0431\u043b\u043e\u043a\u043e\u0432, \u043f\u0440\u0438 \u0442\u043e\u043c \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u0443\u044e \u043f\u0440\u043e\u0447\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b BLIS. \u041f\u0438\u043a\u043e\u0432\u0430\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u0430\u043c\u043e\u0433\u043e \u044f\u0434\u0440\u0430, \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u043d\u0430\u044f \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u043f\u0440\u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 K, \u2014 \u043e\u043a\u043e\u043b\u043e 2130 GFLOPS; \u0432 \u044d\u0442\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 \u0441\u0442\u0435\u043d\u043e\u0439 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0441\u0430\u043c \u0431\u043b\u043e\u043a SME. \u0420\u0430\u0437\u0440\u044b\u0432 \u043c\u0435\u0436\u0434\u0443 1450 \u0438 2130 \u2014 \u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0430 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u044b \u043a\u044d\u0448\u0430, \u043f\u0440\u0435\u0434\u043c\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u0431\u043b\u043e\u043a\u043e\u0432, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u044f \u0435\u0449\u0451 \u0432\u0435\u0440\u043d\u0443\u0441\u044c.<\/p>\n<p>\u0422\u043e, \u0447\u0442\u043e KC \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0441\u044f \u0431\u044b\u0442\u044c \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u043c (2048), \u043f\u0440\u044f\u043c\u043e \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0437 \u0441\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e. \u0410\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 32\u00d732 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u0436\u0438\u0432\u0451\u0442 \u0432 ZA \u0438 \u043d\u0435 \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u044c, \u0441\u043a\u043e\u043b\u044c \u0431\u044b \u0434\u043e\u043b\u0433\u043e \u043d\u0438 \u0434\u043b\u0438\u043b\u0430\u0441\u044c \u0440\u0435\u0434\u0443\u043a\u0446\u0438\u044f \u043f\u043e K. \u0417\u043d\u0430\u0447\u0438\u0442, \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 KC \u2014 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 A \u0438 B \u0443\u0434\u0430\u0451\u0442\u0441\u044f \u0443\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432 \u043a\u044d\u0448\u0435, \u0430 \u0432\u043e\u0432\u0441\u0435 \u043d\u0435 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432, \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u0435\u043b\u044c. \u0414\u0435\u043b\u0430\u0439\u0442\u0435 KC \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043c, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043a\u044d\u0448, \u2014 \u0438 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0438\u0437\u0434\u0435\u0440\u0436\u043a\u0438 (\u0432\u0445\u043e\u0434 \u0432 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u044b\u0439 \u0440\u0435\u0436\u0438\u043c, \u0447\u0442\u0435\u043d\u0438\u0435 ZA \u0432 \u043a\u043e\u043d\u0446\u0435) \u0430\u043c\u043e\u0440\u0442\u0438\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043d\u0430 \u0432\u0441\u0451 \u0431\u043e\u043b\u0435\u0435 \u0434\u043b\u0438\u043d\u043d\u043e\u0439 \u0440\u0435\u0434\u0443\u043a\u0446\u0438\u0438. \u0413\u0438\u0433\u0430\u043d\u0442\u0441\u043a\u0438\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432\u044b\u0439 \u0442\u0430\u0439\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0430\u0451\u0442 SME, <em>\u0442\u0440\u0435\u0431\u0443\u0435\u0442<\/em> \u0433\u0438\u0433\u0430\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \u043f\u043e K \u0441\u0435\u0431\u0435 \u043d\u0430 \u043f\u0440\u043e\u043a\u043e\u0440\u043c, \u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u0431\u043b\u043e\u043a\u043e\u0432 BLIS \u2014 \u0440\u043e\u0432\u043d\u043e \u0442\u043e \u043c\u0435\u0441\u0442\u043e, \u0433\u0434\u0435 \u043e\u0431 \u044d\u0442\u043e\u043c \u0441\u043e\u043e\u0431\u0449\u0430\u044e\u0442.<\/p>\n<p><strong>\u0412\u044b\u0432\u043e\u0434.<\/strong> \u041c\u0438\u043a\u0440\u043e\u044f\u0434\u0440\u043e sgemm \u2014 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 32\u00d732, \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u043f\u043e \u0432\u0441\u0435\u043c \u0447\u0435\u0442\u044b\u0440\u0451\u043c FP32-\u0442\u0430\u0439\u043b\u0430\u043c ZA; \u0435\u0433\u043e \u043f\u0438\u0442\u0430\u0435\u0442 \u0446\u0438\u043a\u043b \u043f\u043e K, \u0440\u0430\u0441\u0448\u0438\u0442\u044b\u0439 \u043f\u043e \u0434\u0432\u0430 \u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0449\u0438\u0439 \u0434\u0430\u043d\u043d\u044b\u0435 \u043c\u0443\u043b\u044c\u0442\u0438\u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u043c\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438 SME2, \u0441 \u0433\u043e\u0440\u044f\u0447\u0438\u043c \u043f\u0443\u0442\u0451\u043c \u043d\u0430 \u0441\u043f\u043b\u043e\u0448\u044c \u0438\u0441\u0442\u0438\u043d\u043d\u044b\u0445 \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u0430\u0445, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0435 \u0441 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043c \u043d\u0443\u043b\u044f\u043c\u0438. \u042d\u043f\u0438\u043b\u043e\u0433 \u0447\u0438\u0442\u0430\u0435\u0442 ZA \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0437\u0430 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u043c, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u0430\u043b\u044c\u0444\u0443 \u0438 \u0431\u0435\u0442\u0443 \u0438 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0437\u0431\u0435\u0433\u0430\u0435\u0442 \u043f\u0440\u0438\u043a\u043e\u0441\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u043a C \u043f\u0440\u0438 <code>beta == 0<\/code>, \u0447\u0442\u043e\u0431\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f NaN \u0438\u0437 \u0441\u0432\u0435\u0436\u0435\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043d\u0435 \u043f\u0440\u043e\u0441\u043e\u0447\u0438\u043b\u0438\u0441\u044c \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u0412\u0441\u0451 \u044d\u0442\u043e, \u043f\u043b\u044e\u0441 \u043f\u044f\u0442\u044c \u0447\u0438\u0441\u0435\u043b, \u2014 GEMM \u043e\u0434\u0438\u043d\u0430\u0440\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u0441 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435\u043c \u0432 9,6 \u0440\u0430\u0437\u0430.<\/p>\n<p><em>\u0414\u0430\u043b\u0435\u0435: \u0434\u0432\u043e\u0439\u043d\u0430\u044f \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u2014 \u0438 \u0441\u044e\u0440\u043f\u0440\u0438\u0437 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043f\u043e\u0447\u0442\u0438 \u043d\u0435\u0442. \u0412 \u0447\u0430\u0441\u0442\u0438 5 \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u0447\u0438\u0441\u043b\u0430 \u043e\u0434\u0438\u043d\u0430\u0440\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0434\u0432\u043e\u0439\u043d\u043e\u0439: \u0442\u0430\u0439\u043b \u0434\u0440\u0443\u0433\u043e\u0439 \u0444\u043e\u0440\u043c\u044b, \u0432\u043e\u0441\u0435\u043c\u044c \u0442\u0430\u0439\u043b\u043e\u0432 ZA \u0432\u043c\u0435\u0441\u0442\u043e \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u0438 \u043e\u0434\u0438\u043d \u0431\u0438\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 (<\/em><code><em>FEAT_SME_F64F64<\/em><\/code><em>), \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c\u044b\u0439 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u0440\u0435\u0448\u0430\u044e\u0449\u0438\u0439, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u0438 \u044f\u0434\u0440\u043e \u0434\u0432\u043e\u0439\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u0432\u043e\u043e\u0431\u0449\u0435, \u2014 \u0438 \u0447\u0442\u043e \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0440\u043e\u0432\u043d\u043e \u0442\u0435\u043c \u0436\u0435.<\/em><\/p>\n<\/div>\n<p>\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\/1071462\/\">https:\/\/habr.com\/ru\/articles\/1071462\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0427\u0430\u0441\u0442\u044c 4 \u0446\u0438\u043a\u043b\u0430 \u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 Apple Scalable Matrix Extension (SME2). \u0427\u0430\u0441\u0442\u044c 3 \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0430, \u0447\u0442\u043e BLIS \u0441\u0432\u043e\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u00ab\u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 GEMM \u043d\u0430 \u043d\u043e\u0432\u0443\u044e \u043c\u0430\u0448\u0438\u043d\u0443\u00bb \u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0438\u043a\u0440\u043e\u044f\u0434\u0440\u0430 \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e \u043f\u044f\u0442\u0438 \u0447\u0438\u0441\u0435\u043b \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u0431\u043b\u043e\u043a\u043e\u0432. \u042d\u0442\u0430 \u0447\u0430\u0441\u0442\u044c \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0441\u0430\u043c\u044b\u0439 \u0432\u0430\u0436\u043d\u044b\u0439 \u043f\u0440\u043e\u043f\u0443\u0441\u043a: \u043c\u0438\u043a\u0440\u043e\u044f\u0434\u0440\u043e \u043e\u0434\u0438\u043d\u0430\u0440\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438, \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043d\u043d\u043e\u0435 \u0441\u0442\u0440\u043e\u043a\u0430 \u0437\u0430 \u0441\u0442\u0440\u043e\u043a\u043e\u0439.\u041e\u0433\u043b\u0430\u0432\u043b\u0435\u043d\u0438\u0435-\u0434\u043e\u0433\u043e\u0432\u043e\u0440. \u0412 \u044d\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u044b \u0432\u043e\u0437\u044c\u043c\u0451\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u0438\u0437 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043e\u0432 BLIS \u2014 \u043c\u0438\u043a\u0440\u043e\u044f\u0434\u0440\u043e sgemm; \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0444\u043e\u0440\u043c\u0443 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 32\u00d732 \u0432 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u0442\u0430\u0439\u043b\u0430\u0445 ZA, \u0437\u0430\u0442\u0435\u043c \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u0433\u043e\u0440\u044f\u0447\u0438\u0439 \u0446\u0438\u043a\u043b \u043f\u043e K, \u043f\u043e\u0442\u043e\u043c \u044d\u043f\u0438\u043b\u043e\u0433 \u0441 alpha, beta \u0438 \u043b\u043e\u0432\u0443\u0448\u043a\u043e\u0439 NaN, \u0430 \u0432 \u043a\u043e\u043d\u0446\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a\u0438\u0435 \u0447\u0438\u0441\u043b\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0434\u0430\u0451\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u044f\u0434\u0440\u043e. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043e\u0441\u0442\u0430\u0432\u0438\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043f\u043e\u0447\u0442\u0438 \u0442\u043e\u0439 \u0436\u0435, \u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044e \u0442\u0430\u0439\u043b\u0430 \u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f \u044f\u0434\u0440\u0430.\u0412\u0441\u0451 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0435 \u0431\u044b\u043b\u043e \u0440\u0430\u0437\u0431\u0435\u0433\u043e\u043c; \u0437\u0434\u0435\u0441\u044c \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u0432\u0437\u043b\u0435\u0442\u0430\u0435\u043c. \u041c\u0438\u043a\u0440\u043e\u044f\u0434\u0440\u043e \u043e\u0434\u0438\u043d\u0430\u0440\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u2014 \u0442\u043e\u0442 \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u043c \u0446\u0438\u043a\u043b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u043c\u0430\u0442\u0440\u0438\u0447\u043d\u043e\u0433\u043e \u0434\u0432\u0438\u0436\u043a\u0430, \u0438 \u043e\u043d \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u0430\u043b \u2014 \u043e\u043a\u043e\u043b\u043e 120 \u0441\u0442\u0440\u043e\u043a \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b, \u2014 \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0435\u0433\u043e \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u0438 \u043f\u043e\u043d\u044f\u0442\u044c \u043a\u0430\u0436\u0434\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435. \u041a \u043a\u043e\u043d\u0446\u0443 \u044d\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0442\u043e\u0447\u043d\u043e \u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0442 1357 \u0434\u043e 1450 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u043e\u0432 \u0440\u0430\u0437 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u044f\u0434\u0440\u0435 M5, \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u043e\u043d\u043e \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a.\u0412\u0441\u043f\u043e\u043c\u043d\u0438\u043c \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0438\u0437 \u0447\u0430\u0441\u0442\u0438 3. BLIS \u0443\u0436\u0435 \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043b \u0432\u044b\u0441\u043e\u043a\u0443\u044e \u0443\u0437\u043a\u0443\u044e \u043f\u0430\u043d\u0435\u043b\u044c A \u0438 \u0448\u0438\u0440\u043e\u043a\u0443\u044e \u0443\u0437\u043a\u0443\u044e \u043f\u0430\u043d\u0435\u043b\u044c B \u0432 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u044b\u0435, \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0435 \u043d\u0443\u043b\u044f\u043c\u0438 \u0431\u0443\u0444\u0435\u0440\u044b. \u041c\u0438\u043a\u0440\u043e\u044f\u0434\u0440\u0443 \u043e\u043d \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u044d\u0442\u0438 \u0434\u0432\u0435 \u043f\u0430\u043d\u0435\u043b\u0438, \u0434\u043b\u0438\u043d\u0443 K, \u0430\u043b\u044c\u0444\u0443, \u0431\u0435\u0442\u0443 \u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043e\u0434\u0438\u043d \u0442\u0430\u0439\u043b MR\u00d7NR \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b C. \u041d\u0430\u0448\u0430 \u0440\u0430\u0431\u043e\u0442\u0430: \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c C := alpha\u00b7(A\u00b7B) + beta\u00b7C \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0430\u0439\u043b\u0430 \u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435. BLIS \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430\u0441 \u043f\u043e \u0440\u0430\u0437\u0443 \u043d\u0430 \u0442\u0430\u0439\u043b \u0438 \u0434\u0435\u043b\u0430\u0435\u0442 \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u0432\u0441\u0451 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435.\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u044f\u0434\u0440\u0430 MR = NR = 2VL; \u043f\u0440\u0438 512-\u0431\u0438\u0442\u043d\u043e\u0439 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u043e\u0439 \u0434\u043b\u0438\u043d\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0443 Apple VL \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 16 \u0447\u0438\u0441\u0435\u043b \u043e\u0434\u0438\u043d\u0430\u0440\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438, \u0442\u0430\u043a \u0447\u0442\u043e \u0442\u0430\u0439\u043b \u0438\u043c\u0435\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 32\u00d732. \u0417\u0430\u043f\u043e\u043c\u043d\u0438\u0442\u0435 \u044d\u0442\u043e \u0447\u0438\u0441\u043b\u043e: \u0432 \u043d\u0451\u043c \u0432\u0441\u044f \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u0431\u044b\u0441\u0442\u0440\u043e\u0442\u044b \u044f\u0434\u0440\u0430.\u0413\u0434\u0435 \u0436\u0438\u0432\u0451\u0442 \u0442\u0430\u0439\u043b 32\u00d732: \u0432\u0441\u0435 \u0447\u0435\u0442\u044b\u0440\u0435 \u0442\u0430\u0439\u043b\u0430 ZA \u0441\u0440\u0430\u0437\u0443\u0427\u0430\u0441\u0442\u044c 1 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0430 ZA \u043a\u0430\u043a \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0439 \u0431\u0430\u0439\u0442\u043e\u0432\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432, \u0440\u0430\u0437\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u043d\u0430 \u043d\u0443\u043c\u0435\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0442\u0430\u0439\u043b\u044b. \u041f\u0440\u0438 SVL 512 FP32-\u0447\u0430\u0441\u0442\u044c ZA \u2014 \u0447\u0435\u0442\u044b\u0440\u0435 \u0442\u0430\u0439\u043b\u0430 16\u00d716, \u043e\u0442 za0 \u0434\u043e za3. \u041e\u0434\u0438\u043d FMOPA \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u043e\u0434\u0438\u043d \u0438\u0437 \u043d\u0438\u0445 \u2014 \u0431\u043b\u043e\u043a 16\u00d716 (VL\u00d7VL). \u041d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 32\u00d732 \u2014 \u0447\u0435\u0442\u044b\u0440\u0435 \u0442\u0430\u043a\u0438\u0445 \u0431\u043b\u043e\u043a\u0430, \u2014 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0432\u0441\u0435 \u0447\u0435\u0442\u044b\u0440\u0435 \u0442\u0430\u0439\u043b\u0430 ZA \u043a\u0430\u043a \u043e\u0434\u0438\u043d \u043c\u0430\u043a\u0440\u043e\u0442\u0430\u0439\u043b 2\u00d72:              n: 0..VL-1   n: VL..2VL-1  m: 0..VL-1    za0          za2  m: VL..2VL-1  za1          za3\u042d\u0442\u043e \u0432\u044b\u0438\u0433\u0440\u044b\u0448 \u043e\u0442 \u043f\u043e\u0434\u0441\u0447\u0451\u0442\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u043a \u0438\u0437 \u0447\u0430\u0441\u0442\u0438 2. \u041e\u0434\u0438\u043d FMOPA \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 32 \u0447\u0438\u0441\u043b\u0430 (VL-\u0441\u0442\u043e\u043b\u0431\u0435\u0446 A, VL-\u0441\u0442\u0440\u043e\u043a\u0443 B) \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 256 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0439-\u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u2014 8 \u043d\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e. \u041d\u043e \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043c\u0430\u043a\u0440\u043e\u0442\u0430\u0439\u043b 2\u00d72, \u043c\u044b \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0434\u0432\u0430 VL-\u0441\u0442\u043e\u043b\u0431\u0446\u0430 A \u0438 \u0434\u0432\u0435 VL-\u0441\u0442\u0440\u043e\u043a\u0438 B \u2014 64 \u0447\u0438\u0441\u043b\u0430 \u2014 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0447\u0435\u0442\u044b\u0440\u0435 FMOPA, \u0442\u043e \u0435\u0441\u0442\u044c 1024 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f-\u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u042d\u0442\u043e 16 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0439-\u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u0439 \u043d\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u2014 \u0432\u0434\u0432\u043e\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u043e\u0434\u043d\u043e\u0442\u0430\u0439\u043b\u043e\u0432\u043e\u0433\u043e \u044f\u0434\u0440\u0430 \u0438\u0437 \u0443\u0447\u0435\u0431\u043d\u043e\u0433\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430. \u0422\u0430\u0439\u043b 32\u00d732 \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u0435\u043d: \u044d\u0442\u043e \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u0439 \u0442\u0430\u0439\u043b, \u043d\u0430\u0441\u044b\u0449\u0430\u044e\u0449\u0438\u0439 FP32-\u043c\u0430\u0441\u0441\u0438\u0432 ZA, \u0430 \u043d\u0430\u0441\u044b\u0449\u0435\u043d\u0438\u0435 ZA \u043e\u0442\u043e\u0434\u0432\u0438\u0433\u0430\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u043e\u0432 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0430 \u0437\u0430\u0434\u043d\u0438\u0439 \u043f\u043b\u0430\u043d, \u0447\u0442\u043e\u0431\u044b \u0443\u0437\u043a\u0438\u043c \u043c\u0435\u0441\u0442\u043e\u043c \u0441\u0442\u0430\u043b \u0431\u043b\u043e\u043a SME, \u0430 \u043d\u0435 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u0430\u043c\u044f\u0442\u0438.\u0427\u0435\u0442\u044b\u0440\u0435 FMOPA, \u0441\u0442\u0440\u043e\u044f\u0449\u0438\u0435 \u043c\u0430\u043a\u0440\u043e\u0442\u0430\u0439\u043b \u0438\u0437 \u043e\u0434\u043d\u043e\u0439 \u043f\u0430\u0440\u044b \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 A (a0, a1) \u0438 \u043e\u0434\u043d\u043e\u0439 \u043f\u0430\u0440\u044b \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 B (b0, b1), \u2014 \u043f\u043e\u043f\u0440\u043e\u0441\u0442\u0443 \u0447\u0435\u0442\u044b\u0440\u0435 \u0431\u043b\u043e\u043a\u0430 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f:za0 += a0 \u2297 b0     za2 += a0 \u2297 b1za1 += a1 \u2297 b0     za3 += a1 \u2297 b1\u041a\u0430\u0436\u0434\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 A \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 B; \u044d\u0442\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0430\u043d\u0433\u0430 1 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 32\u00d732 \u2014 \u043e\u0434\u0438\u043d \u0448\u0430\u0433 \u0440\u0435\u0434\u0443\u043a\u0446\u0438\u0438 \u043f\u043e k. \u0427\u0435\u0442\u044b\u0440\u0435 \u0442\u0430\u0439\u043b\u0430 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u2014 \u043d\u0435 \u0447\u0435\u0442\u044b\u0440\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043e\u0442\u0432\u0435\u0442\u0430, \u0430 \u043c\u043e\u043c\u0435\u043d\u0442\u044b \u043e\u0434\u043d\u043e\u0433\u043e \u0446\u0435\u043b\u043e\u0433\u043e: \u043f\u043e\u043a\u0430 \u0438\u0434\u0451\u0442 \u0440\u0435\u0434\u0443\u043a\u0446\u0438\u044f, \u043c\u0430\u043a\u0440\u043e\u0442\u0430\u0439\u043b \u0436\u0438\u0432\u0451\u0442 \u043a\u0430\u043a \u0435\u0434\u0438\u043d\u043e\u0435 C \u0438 \u0440\u0430\u0441\u043f\u0430\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0447\u0435\u0442\u0432\u0451\u0440\u043a\u0443 \u043b\u0438\u0448\u044c \u043f\u0440\u0438 \u0437\u0430\u043f\u0438\u0441\u0438.\u0426\u0438\u043a\u043b \u0440\u0435\u0434\u0443\u043a\u0446\u0438\u0438: \u0440\u0430\u0441\u0448\u0438\u0442 \u043f\u043e \u0434\u0432\u0430, \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043f\u043e \u0447\u0435\u0442\u044b\u0440\u0435\u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u0444\u043e\u0440\u043c\u0430 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u044f\u0441\u043d\u0430, \u043c\u043e\u0436\u043d\u043e \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043a\u043e\u0434 \u0431\u0435\u0437 \u043e\u0449\u0443\u0449\u0435\u043d\u0438\u044f, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439. \u0412\u043e\u0442 \u0433\u043e\u0440\u044f\u0447\u0438\u0439 \u0446\u0438\u043a\u043b \u0434\u043e\u0441\u043b\u043e\u0432\u043d\u043e \u2014 \u043a\u043e\u0434, \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0438\u0439\u0441\u044f KC \u0440\u0430\u0437 \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0442\u0430\u0439\u043b \u0438 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0440\u0430\u0437 \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 GEMM:for ( ; l + 1 &lt; k; l += 2 ){    svfloat32x4_t av = svld1_x4( pc, a );    svfloat32x4_t bv = svld1_x4( pc, b );    svmopa_za32_f32_m( 0, pall, pall, svget4( av, 0 ), svget4( bv, 0 ) );    svmopa_za32_f32_m( 1, pall, pall, svget4( av, 1 ), svget4( bv, 0 ) );    svmopa_za32_f32_m( 2, pall, pall, svget4( av, 0 ), svget4( bv, 1 ) );    svmopa_za32_f32_m( 3, pall, pall, svget4( av, 1 ), svget4( bv, 1 ) );    svmopa_za32_f32_m( 0, pall, pall, svget4( av, 2 ), svget4( bv, 2 ) );    svmopa_za32_f32_m( 1, pall, pall, svget4( av, 3 ), svget4( bv, 2 ) );    svmopa_za32_f32_m( 2, pall, pall, svget4( av, 2 ), svget4( bv, 3 ) );    svmopa_za32_f32_m( 3, pall, pall, svget4( av, 3 ), svget4( bv, 3 ) );    a += 4*vl;    b += 4*vl;}\u0417\u0434\u0435\u0441\u044c \u0441\u0442\u043e\u0438\u0442 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0442\u0440\u0451\u0445 \u0432\u0435\u0449\u0430\u0445.\u041e\u0434\u043d\u0430 \u043c\u0443\u043b\u044c\u0442\u0438\u0432\u0435\u043a\u0442\u043e\u0440\u043d\u0430\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043d\u0430 \u043e\u043f\u0435\u0440\u0430\u043d\u0434 \u2014 \u0434\u0432\u0430 \u0448\u0430\u0433\u0430 \u043f\u043e k. svld1_x4 \u2014 \u043c\u0443\u043b\u044c\u0442\u0438\u0432\u0435\u043a\u0442\u043e\u0440\u043d\u0430\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 SME2: \u043e\u0434\u043d\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0447\u0435\u0442\u044b\u0440\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0445 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043f\u0430\u043d\u0435\u043b\u044c \u0445\u0440\u0430\u043d\u0438\u0442 \u0448\u0430\u0433 l \u0438 \u0448\u0430\u0433 l+1 \u0432\u043f\u043b\u043e\u0442\u043d\u0443\u044e \u0434\u0440\u0443\u0433 \u043a \u0434\u0440\u0443\u0433\u0443, \u043e\u0434\u0438\u043d svld1_x4 \u043f\u043e A \u0437\u0430\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043e\u0431\u0430 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 A \u0434\u043b\u044f \u043e\u0431\u043e\u0438\u0445 \u0448\u0430\u0433\u043e\u0432 (av0, av1 \u0434\u043b\u044f \u0448\u0430\u0433\u0430 l; av2, av3 \u0434\u043b\u044f \u0448\u0430\u0433\u0430 l+1), \u0438 \u0442\u043e \u0436\u0435 \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e \u0434\u043b\u044f B. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0446\u0438\u043a\u043b \u0440\u0430\u0441\u0448\u0438\u0442 \u043f\u043e \u0434\u0432\u0430 \u0432\u0434\u043e\u043b\u044c K, \u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u043e\u043f\u0435\u0440\u0430\u043d\u0434 \u043e\u0431\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0440\u043e\u0432\u043d\u043e \u0432 \u043e\u0434\u043d\u0443 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0430 \u0434\u0432\u0430 \u0448\u0430\u0433\u0430. \u042d\u0442\u043e \u0432\u0430\u0436\u043d\u0435\u0435, \u0447\u0435\u043c \u043a\u0430\u0436\u0435\u0442\u0441\u044f: \u043d\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0445 K \u043c\u0435\u043d\u044c\u0448\u0435\u0435 \u0447\u0438\u0441\u043b\u043e \u0431\u043e\u043b\u0435\u0435 \u0448\u0438\u0440\u043e\u043a\u0438\u0445 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u043a \u0438\u0437\u043c\u0435\u0440\u0438\u043c\u043e \u0443\u0441\u043a\u043e\u0440\u044f\u0435\u0442 \u044f\u0434\u0440\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043d\u0435 \u0442\u043e\u043d\u0435\u0442 \u0432 \u043f\u043e\u0442\u043e\u043a\u0435 \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u044b\u0445 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u043a. \u041f\u0435\u0440\u0432\u044b\u0439 \u0431\u043b\u043e\u043a \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 FMOPA \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0435\u0442 \u0448\u0430\u0433 l; \u0432\u0442\u043e\u0440\u043e\u0439 \u2014 \u0448\u0430\u0433 l+1; \u0437\u0430\u0442\u0435\u043c \u043e\u0431\u0430 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u043f\u0440\u043e\u0434\u0432\u0438\u0433\u0430\u044e\u0442\u0441\u044f \u043d\u0430 4\u00b7VL (\u0434\u0432\u0430 \u0448\u0430\u0433\u0430 \u00d7 \u0434\u0432\u0430 VL-\u0432\u0435\u043a\u0442\u043e\u0440\u0430), \u0438 \u0432\u0441\u0451 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442\u0441\u044f.\u041f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u044b \u0441\u043f\u043b\u043e\u0448\u044c \u0438\u0441\u0442\u0438\u043d\u043d\u044b\u0435 \u2014 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e. \u041a\u0430\u0436\u0434\u044b\u0439 FMOPA \u043c\u0430\u0441\u043a\u0438\u0440\u043e\u0432\u0430\u043d \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u043e\u043c pall = svptrue_b32(), \u0438\u0441\u0442\u0438\u043d\u043d\u044b\u043c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430. \u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a \u043a\u0440\u0430\u0451\u0432 \u0432\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u043c \u0446\u0438\u043a\u043b\u0435. \u042d\u0442\u043e \u0434\u0438\u0432\u0438\u0434\u0435\u043d\u0434 \u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0438 (\u0447\u0430\u0441\u0442\u044c 7): \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u0430\u043d\u0435\u043b\u0438 BLIS \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u044b \u043d\u0443\u043b\u044f\u043c\u0438 \u0434\u043e \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0442\u0430\u0439\u043b\u0430 32\u00d732, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u0436\u0435 \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0438\u043c\u0435\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 30\u00d717, \u044f\u0434\u0440\u043e \u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0430\u0435\u0442 \u043f\u043e\u043b\u043d\u044b\u0435 32\u00d732, \u043f\u043e \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u043d\u0443\u043b\u0435\u0439. \u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0432\u043d\u043e\u0441\u0438\u0442 \u0432 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0440\u043e\u0432\u043d\u043e \u043d\u043e\u043b\u044c \u0438 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f, \u0442\u0430\u043a \u0447\u0442\u043e \u043e\u043d\u043e \u0431\u0435\u0437\u0432\u0440\u0435\u0434\u043d\u043e, \u2014 \u0430 \u0432\u0437\u0430\u043c\u0435\u043d \u0446\u0438\u043a\u043b \u0440\u0435\u0434\u0443\u043a\u0446\u0438\u0438 \u043b\u0438\u0448\u0451\u043d \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u0439, \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u043c \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u043e\u043c \u0438 \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u043e \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f. \u041c\u044b \u043f\u043b\u0430\u0442\u0438\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043b\u0438\u0448\u043d\u0435\u0439 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0438 \u043d\u0430 \u043d\u0443\u043b\u044f\u0445, \u0447\u0442\u043e\u0431\u044b \u0433\u043e\u0440\u044f\u0447\u0438\u0439 \u0446\u0438\u043a\u043b \u0431\u044b\u043b \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u043c. \u0414\u043b\u044f \u044f\u0434\u0440\u0430, \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f\u043c\u0438, \u044d\u0442\u043e \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u0430\u044f \u0441\u0434\u0435\u043b\u043a\u0430.ZA \u043f\u0440\u0438\u0448\u0451\u043b \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043e\u0431\u043d\u0443\u043b\u0451\u043d\u043d\u044b\u043c. \u041f\u0435\u0440\u0435\u0434 \u0446\u0438\u043a\u043b\u043e\u043c \u043d\u0435\u0442 \u0432\u044b\u0437\u043e\u0432\u0430 svzero_za(). \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0430 \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c __arm_new(&#171;za&#187;), \u0438 ARM ACLE \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u043e\u0431\u043d\u0443\u043b\u044f\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 ZA \u043f\u0440\u0438 \u0432\u0445\u043e\u0434\u0435. \u041e\u0431\u043d\u0443\u043b\u0435\u043d\u0438\u0435 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043f\u043e\u0440\u043e\u0434\u0438\u043b\u043e \u0431\u044b \u0432\u0442\u043e\u0440\u0443\u044e, \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u0443\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e zero {za} \u2014 Apple clang \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0440\u043e\u0436\u0434\u0430\u0435\u0442 \u0434\u0432\u0435, \u0435\u0441\u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u044d\u0442\u043e \u044f\u0432\u043d\u043e; \u0442\u0430\u043a \u044f \u044d\u0442\u043e \u0438 \u0437\u0430\u043c\u0435\u0442\u0438\u043b. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u043d\u0430\u043a\u0430\u043f\u043b\u0438\u0432\u0430\u0442\u044c.\u041f\u043e\u0441\u043b\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u044b\u0439 \u0445\u0432\u043e\u0441\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043d\u0435\u0447\u0451\u0442\u043d\u044b\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0448\u0430\u0433 \u043f\u043e k (\u0447\u0435\u0440\u0435\u0437 svld1_x2 \u0438 \u0447\u0435\u0442\u044b\u0440\u0435 FMOPA), \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e K \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0447\u0451\u0442\u043d\u043e. \u0422\u0430 \u0436\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f, \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043d\u043e\u0439 \u0448\u0438\u0440\u0438\u043d\u044b.\u0427\u0438\u0442\u0430\u0435\u043c \u043e\u0442\u0432\u0435\u0442: \u0430\u043b\u044c\u0444\u0430, \u0431\u0435\u0442\u0430 \u0438 \u043b\u043e\u0432\u0443\u0448\u043a\u0430 \u0441 NaN\u041a\u043e\u0433\u0434\u0430 \u0440\u0435\u0434\u0443\u043a\u0446\u0438\u044f \u043f\u043e K \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430, \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 32\u00d732 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 za0\u2013za3. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 BLAS \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 C. \u042d\u0442\u043e\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 \u043d\u0438 \u043e\u0434\u043d\u043e \u0438\u0437 \u0434\u0432\u0443\u0445 \u044f\u0434\u0435\u0440, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0445 \u0432 \u0447\u0430\u0441\u0442\u0438 2, \u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u0437\u0434\u0435\u0441\u044c \u043c\u0438\u043a\u0440\u043e\u044f\u0434\u0440\u043e \u0437\u0430\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0437\u0432\u0430\u043d\u0438\u0435 \u00abGEMM\u00bb.\u041c\u044b \u0447\u0438\u0442\u0430\u0435\u043c ZA \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u043c\u0443 \u0441\u0442\u043e\u043b\u0431\u0446\u0443, \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e. \u0414\u043b\u044f \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430 j \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 za0\/za1, \u0435\u0441\u043b\u0438 j &lt; VL (\u043b\u0435\u0432\u0430\u044f \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u043c\u0430\u043a\u0440\u043e\u0442\u0430\u0439\u043b\u0430), \u0438\u043b\u0438 \u0432 za2\/za3, \u0435\u0441\u043b\u0438 j \u2265 VL (\u043f\u0440\u0430\u0432\u0430\u044f \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430), \u0441 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c \u043d\u0430 \u0432\u0435\u0440\u0445\u043d\u0438\u0435 VL \u0441\u0442\u0440\u043e\u043a \u0438 \u043d\u0438\u0436\u043d\u0438\u0435 VL \u0441\u0442\u0440\u043e\u043a:if ( (uint64_t)j &lt; vl ) {    ab0 = svread_ver_za32_f32_m( svundef_f32(), pm0, 0, (uint32_t)j );    ab1 = svread_ver_za32_f32_m( svundef_f32(), pm1, 1, (uint32_t)j );} else {    ab0 = svread_ver_za32_f32_m( svundef_f32(), pm0, 2, (uint32_t)(j &#8212; vl) );    ab1 = svread_ver_za32_f32_m( svundef_f32(), pm1, 3, (uint32_t)(j &#8212; vl) );}pm0 \u0438 pm1 \u2014 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0435 \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u044b, \u043c\u0430\u0441\u043a\u0438 svwhilelt, \u043f\u043e\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 0..m \u0438 VL..m, \u2014 \u0442\u0430\u043a \u0447\u0442\u043e \u0442\u0430\u0439\u043b, \u0447\u044c\u044f \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0430\u044f \u0432\u044b\u0441\u043e\u0442\u0430 \u043c\u0435\u043d\u044c\u0448\u0435 32, \u0447\u0438\u0442\u0430\u0435\u0442 \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438. \u0421\u0442\u043e\u043b\u0431\u0446\u043e\u0432\u044b\u0439 \u0446\u0438\u043a\u043b \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u0442 j \u043e\u0442 0 \u0434\u043e \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0433\u043e n; \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0442\u0430\u0439\u043b\u044b \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043a\u0430\u0441\u0430\u044e\u0442\u0441\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432. \u0412\u043e\u0442 \u0438 \u0432\u0441\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u0440\u0430\u0451\u0432 \u043f\u0440\u0438 \u0437\u0430\u043f\u0438\u0441\u0438: \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u043d\u044b\u0435 \u0447\u0442\u0435\u043d\u0438\u044f \u043f\u043e \u043e\u0441\u0438 \u0441\u0442\u0440\u043e\u043a, \u0443\u043a\u043e\u0440\u043e\u0447\u0435\u043d\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u043f\u043e \u043e\u0441\u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432. \u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u044f\u0434\u0435\u0440 \u0434\u043b\u044f \u043f\u043e\u0434\u0447\u0438\u0441\u0442\u043a\u0438.\u0417\u0430\u0442\u0435\u043c \u0441\u0430\u043c\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u2014 \u0438 \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u044c, \u0440\u0430\u0434\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u0442\u043e\u0438\u0442 \u0432\u0435\u0441\u044c \u044d\u0442\u043e\u0442 \u0440\u0430\u0437\u0434\u0435\u043b. \u0423\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 BLAS \u2014 C := alpha\u00b7AB + beta\u00b7C, \u043d\u043e \u0432 \u043d\u0451\u043c \u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0441\u043e\u0431\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439. \u041a\u043e\u0433\u0434\u0430 beta == 0, \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 C := alpha\u00b7AB: \u043c\u0430\u0442\u0440\u0438\u0446\u0430 C \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0438 \u0435\u0451 \u0441\u0442\u0430\u0440\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f. \u041f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e? \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0441\u0432\u0435\u0436\u0435\u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u0430\u044f \u0432\u044b\u0445\u043e\u0434\u043d\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043c\u0443\u0441\u043e\u0440, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f NaN, \u0430 0\u00b7NaN \u0440\u0430\u0432\u043d\u043e NaN, \u0430 \u043d\u0435 \u043d\u0443\u043b\u044e. \u0415\u0441\u043b\u0438 \u0434\u043e\u0431\u0440\u043e\u0441\u043e\u0432\u0435\u0441\u0442\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c alpha\u00b7AB + beta\u00b7C \u043f\u0440\u0438 beta = 0 \u043d\u0430\u0434 \u043d\u0435\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 C, \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0439 NaN \u0438\u0441\u043f\u043e\u0440\u0442\u0438\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442 BLAS \u043f\u0440\u044f\u043c\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442, \u0447\u0442\u043e\u0431\u044b beta == 0 \u043e\u0437\u043d\u0430\u0447\u0430\u043b\u043e \u00ab\u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0437\u0430\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u0442\u044c \u0432 C\u00bb. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f\u0434\u0440\u043e \u0432\u0435\u0442\u0432\u0438\u0442\u0441\u044f:if ( *beta == 0.0f ) {    \/\/ \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044c: C \u043d\u0435 \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0438\u043a\u043e\u0433\u0434\u0430    svst1_f32( pm0, cj,      svmul_f32_x( pm0, ab0, valpha ) );    svst1_f32( pm1, cj + vl, svmul_f32_x( pm1, ab1, valpha ) );} else {    \/\/ \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u0435: \u0447\u0438\u0442\u0430\u0435\u043c C, \u0432\u043f\u043b\u0430\u0432\u043b\u044f\u0435\u043c \u0431\u0435\u0442\u0443    svfloat32_t c0 = svld1_f32( pm0, cj );    svfloat32_t c1 = svld1_f32( pm1, cj + vl );    c0 = svmla_f32_x( pm0, svmul_f32_x( pm0, ab0, valpha ), c0, vbeta );    c1 = svmla_f32_x( pm1, svmul_f32_x( pm1, ab1, valpha ), c1, vbeta );    svst1_f32( pm0, cj,      c0 );    svst1_f32( pm1, cj + vl, c1 );}\u0412\u0435\u0442\u0432\u044c beta == 0 \u0443\u043c\u043d\u043e\u0436\u0430\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 ZA \u043d\u0430 \u0430\u043b\u044c\u0444\u0443 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u2014 C \u043d\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u043d\u0438\u043a\u043e\u0433\u0434\u0430. \u041e\u0431\u0449\u0430\u044f \u0432\u0435\u0442\u0432\u044c \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 C, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 alpha\u00b7AB + beta\u00b7C \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u0438 \u0441\u043b\u0438\u0442\u044b\u043c \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435\u043c-\u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u0412\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435, \u043d\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d\u043e \u043e\u0442\u0434\u0435\u043b\u044f\u0435\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 BLAS \u043e\u0442 \u043d\u0435\u0443\u043b\u043e\u0432\u0438\u043c\u043e \u0441\u043b\u043e\u043c\u0430\u043d\u043d\u043e\u0433\u043e \u2014 \u0438 \u044d\u0442\u043e \u0440\u043e\u0432\u043d\u043e \u0442\u0430 \u0434\u0435\u0442\u0430\u043b\u044c, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u044f\u0434\u0440\u0430\u043c \u0438\u0437 \u0443\u0447\u0435\u0431\u043d\u044b\u0445 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432 \u0434\u0443\u043c\u0430\u0442\u044c \u043d\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c: \u043e\u043d\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e C = A\u00b7B. \u041d\u043e\u043b\u044c \u0437\u0434\u0435\u0441\u044c \u2014 \u043d\u0435 \u043f\u0443\u0441\u0442\u043e\u0435 \u043d\u0438\u0447\u0442\u043e: 0\u00b7NaN \u043d\u0435 \u0433\u0430\u0441\u0438\u0442 \u043c\u0443\u0441\u043e\u0440, \u0430 \u0440\u0430\u0437\u043d\u043e\u0441\u0438\u0442 \u0435\u0433\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0431\u043d\u0443\u043b\u0435\u043d\u0438\u0435 C \u2014 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0435 \u043e\u0442\u0440\u0438\u0446\u0430\u043d\u0438\u0435, \u0430\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044c, \u0430 \u043d\u0435 \u0444\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u043d\u043e\u043b\u044c.\u041f\u0440\u0438\u0451\u043c \u0441\u043e \u0441\u0442\u0435\u043a\u043e\u0432\u044b\u043c \u043a\u0430\u0434\u0440\u043e\u043c: \u043a\u0430\u043a \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u043f\u0443\u0442\u044c \u043a\u0440\u043e\u0448\u0435\u0447\u043d\u044b\u043c\u041e\u0434\u043d\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u0430\u044f \u0434\u0435\u0442\u0430\u043b\u044c \u2014 \u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0437\u0435\u0446 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0438\u0438, \u043e\u0442\u043b\u0430\u0434\u043a\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u0442\u043e\u0438\u043b\u0430 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0445 \u0443\u0441\u0438\u043b\u0438\u0439. \u041c\u0438\u043a\u0440\u043e\u044f\u0434\u0440\u043e, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0435 BLIS, bli_sgemm_armsme_2vlx2vl, \u2014 \u0442\u043e\u043d\u043a\u0438\u0439 \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440:if ( rs_c == 1 ) {           \/\/ C \u043f\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c: \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u043f\u0443\u0442\u044c    bli_sgemm_armsme_2vlx2vl_body( m, n, k, alpha, &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-491225","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/491225","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=491225"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/491225\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=491225"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=491225"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=491225"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}