在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SVE架構(gòu)特性和指令基本用法介紹

安芯教育科技 ? 來源:極術(shù)社區(qū) ? 作者:yang ? 2021-02-08 10:05 ? 次閱讀

SVE(Scalable Vector Extension)是arm AArch64架構(gòu)下的下一代SIMD指令集,旨在加速高性能計(jì)算,SVE引入了很多新的架構(gòu)特點(diǎn), 比如

? 可變矢量長(zhǎng)度

? 每通道預(yù)測(cè)

? 聚集加載和分散存儲(chǔ)

? 橫向操作

本文將對(duì)SVE做個(gè)基本介紹。

1. SIMD指令發(fā)展史 intel vs arm

eea2c696-6258-11eb-8b86-12bb97331649.jpg

從上圖我們可以看出,SIMD指令總體趨勢(shì)是向著越來越長(zhǎng)的方向發(fā)展的,到了arm SVE,最長(zhǎng)可以支持2048位的矢量操作。

2. 背景

Armv7的高級(jí)SIMD (即arm NEON 或“MPE” 多媒體處理引擎) 指令集自2005年發(fā)布,已經(jīng)面世十幾年了。Armv7 NEON的主要特性如下:

? 支持8/16/32位整數(shù)操作,支持非IEEE兼容單精度浮點(diǎn)操作,支持指令條件執(zhí)行

? 32個(gè)64位矢量寄存器,也可視為16個(gè)128位矢量寄存器

? 旨在CPU端加速多媒體處理任務(wù)

在升級(jí)到armv8架構(gòu)時(shí),AArch64 NEON指令集做出了許多改進(jìn),比如:

? 支持IEEE兼容單精度和雙精度浮點(diǎn)操作和64位整數(shù)矢量操作

? 32個(gè)128位矢量寄存器

? 這些改進(jìn)使NEON指令集更適用于通用計(jì)算,而不僅僅是多媒體計(jì)算

但是到了現(xiàn)在,armv8的新市場(chǎng)需要更徹底的SIMD指令改進(jìn)。我們需要能夠并行處理非常規(guī)數(shù)據(jù)和復(fù)雜數(shù)據(jù)結(jié)構(gòu),也需要更長(zhǎng)的矢量,SVE因此而生,SVE旨在加速高性能計(jì)算。

3. SVE特性

SVE是armv8 AArch64架構(gòu)的下一代SIMD指令集,它不是NEON的替代,而是聚焦于高性能計(jì)算。主要特性如下:

? 可變矢量長(zhǎng)度

? 128位的整數(shù)倍。 最高可支持2048位

? 不同的實(shí)現(xiàn)可以適應(yīng)不同的應(yīng)用場(chǎng)景,不用更改指令集

? 每通道預(yù)測(cè)

? 支持復(fù)雜嵌套循環(huán)和if/then/else條件跳轉(zhuǎn), 沒有循環(huán)尾數(shù)。

? 聚集加載和分散存儲(chǔ)支持復(fù)雜數(shù)據(jù)結(jié)構(gòu),如步長(zhǎng)數(shù)據(jù)存取、數(shù)組索引,鏈表等。

? 橫向操作

? 支持基本的reduction操作,降低循環(huán)依賴性

4. SVE寄存器

SVE寄存器有兩種:矢量寄存器和預(yù)測(cè)寄存器。

SVE共有32個(gè)可變長(zhǎng)矢量寄存器Z0-Z31(128位的整數(shù)倍, 最高可達(dá)2048位) ,其中Z0-Z31的低128位[127:0],與AArch64 SIMD&FP寄存器V0-V31共享硬件資源。假設(shè)SVE的矢量長(zhǎng)度為256,其矢量寄存器視圖如下。SVE支持8/16/32/64位整數(shù)操作和單精度/雙精度浮點(diǎn)操作。

eed8e460-6258-11eb-8b86-12bb97331649.jpg

SVE預(yù)測(cè)寄存器用于控制每通道操作,有16個(gè)可變長(zhǎng)預(yù)測(cè)寄存器P0-P15。每一個(gè)預(yù)測(cè)寄存器的位對(duì)應(yīng)矢量寄存器的字節(jié)。假設(shè)SVE的矢量長(zhǎng)度為256,預(yù)測(cè)寄存器在管理32位和64位操作時(shí),其視圖如下。在控制32位數(shù)據(jù)操作時(shí),如果Pg寄存器的最低為1,則該通道操作為激活狀態(tài),該通道操作結(jié)果被正常存儲(chǔ)到目的寄存器;如果Pg寄存器的最低為0,則該通道操作為未激活狀態(tài),該通道操作結(jié)果不會(huì)被存儲(chǔ)到目的寄存器,目的寄存器的該通道數(shù)據(jù)有兩種可能:

? 指令指定為Pg/z - 清零模式,該通道數(shù)據(jù)被清零。

? 指令指定為Pg/m – 合并模式,該通道數(shù)據(jù)保持原值

ef163554-6258-11eb-8b86-12bb97331649.jpg

5. SVE指令實(shí)例

下面我們通過一些實(shí)例來介紹常用SVE指令的用法。

a. 矢量加法

大家也許都熟悉NEON的指令格式(如下),NEON指令通過對(duì)指令助記符添加“f”前綴來區(qū)分整數(shù)操作和浮點(diǎn)操作,如“add”和“fadd”;另外通過寄存器后綴“.2s”、“.4s”、“.2d”表示操作兩個(gè)32位、四個(gè)32位數(shù)據(jù)、兩個(gè)64位數(shù)據(jù)。

? add v0.4s, v0.4s, v1.4s

? fadd v0.2s, v0.2s, v1.2s

? fadd v0.2d, v0.2d, v1.2d

SVE指令也通過對(duì)指令助記符添加 “f” 前綴來區(qū)分整數(shù)操作和浮點(diǎn)操作。但是SVE是未知矢量長(zhǎng)度編程,因此在指令中我們只需要指明操作數(shù)據(jù)類型就可以了。

? add z0.s, z0.s, z1.s

? fadd z0.s, z0.s, z1.s

? fadd z0.d, z0.d, z1.d

b. 矢量加載

對(duì)于加載指令,NEON指令通過助記符“l(fā)d1”、“l(fā)d2”表示加載一維數(shù)組、二維數(shù)組;通過寄存器后綴“.8h”、“.4s”表示加載八個(gè)16位、四個(gè)32位數(shù)據(jù)。

? ld1 {v0.8h}, [x1]

? ld1 {v0.4s}, [x1]

? ld2 {v0.4s, v1,4s}, [x1]

SVE加載指令添加指令助記符后綴 “h“、”w“表示讀取存儲(chǔ)元素寬度;寄存器后綴”.h“、”.s“表示元素在寄存器中的寬度。寄存器元素寬度必須大于等于讀取存儲(chǔ)寬度。對(duì)于加載指令,讀取元素可以通過符號(hào)擴(kuò)展或者零擴(kuò)展填充到矢量寄存器;對(duì)于存儲(chǔ)指令,每個(gè)矢量元素被截?cái)嗪蟠鎯?chǔ)到內(nèi)存中。

? ld1h {z0.h}, p0/z, [x1]

? ld1w {z0.s}, p0/z, [x1]

? ld2w {z0.s, z1.s}, p0/z, [x1]

6. 小結(jié)

本文簡(jiǎn)單介紹了SVE架構(gòu)特性和指令基本用法,后續(xù)還會(huì)再寫文章介紹如何在C程序中利用SVE。

原文標(biāo)題:一文了解SIMD指令集SVE(可伸縮矢量擴(kuò)展),加速高性能計(jì)算

文章出處:【微信公眾號(hào):安芯教育科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 指令集
    +關(guān)注

    關(guān)注

    0

    文章

    227

    瀏覽量

    23400
  • SIMD
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

    10311

原文標(biāo)題:一文了解SIMD指令集SVE(可伸縮矢量擴(kuò)展),加速高性能計(jì)算

文章出處:【微信號(hào):Ithingedu,微信公眾號(hào):安芯教育科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Matter SVE認(rèn)證經(jīng)驗(yàn)分享

    Spec Validation Event(SVE)活動(dòng)都能更好地驗(yàn)證設(shè)備是否符合最新的Matter認(rèn)證測(cè)試要求,這篇文章就是參加SVE活動(dòng)的經(jīng)驗(yàn)分享。
    的頭像 發(fā)表于 11-13 09:16 ?328次閱讀
    Matter <b class='flag-5'>SVE</b>認(rèn)證經(jīng)驗(yàn)分享

    數(shù)控車床m99指令用法

    我們將詳細(xì)介紹M99指令用法。  一、M99指令的基本含義  M99指令是數(shù)控車床編程中的一個(gè)輔助功能代碼,其基本含義是“程序結(jié)束并返回到
    的頭像 發(fā)表于 10-23 15:52 ?852次閱讀

    指令架構(gòu)與微架構(gòu)的區(qū)別

    指令架構(gòu)(Instruction Set Architecture,ISA)與微架構(gòu)(Microarchitecture)是計(jì)算機(jī)體系結(jié)構(gòu)中的兩個(gè)重要概念,它們?cè)谔幚砥鞯脑O(shè)計(jì)和實(shí)現(xiàn)中扮演著不同的角色。以下是對(duì)兩者區(qū)別的詳細(xì)闡述
    的頭像 發(fā)表于 10-05 15:10 ?629次閱讀

    簡(jiǎn)述微處理器的指令架構(gòu)

    微處理器的指令架構(gòu)(Instruction Set Architecture,ISA)是計(jì)算機(jī)體系結(jié)構(gòu)中的核心組成部分,它定義了計(jì)算機(jī)能夠執(zhí)行的指令集合、數(shù)據(jù)類型、寄存器、內(nèi)存訪問方式等,是連接
    的頭像 發(fā)表于 10-05 14:59 ?526次閱讀

    國產(chǎn)主流8位單片機(jī)-RISC架構(gòu)精簡(jiǎn)指令集單片機(jī)

    在當(dāng)前的電子產(chǎn)品開發(fā)領(lǐng)域,8位單片機(jī)仍然占據(jù)著重要的地位,尤其是在嵌入式系統(tǒng)和低功耗應(yīng)用中。RISC(簡(jiǎn)化指令集計(jì)算)架構(gòu)以其高效性和簡(jiǎn)單性,成為了國產(chǎn)主流8位單片機(jī)。RISC架構(gòu)通過減少指令
    發(fā)表于 09-27 10:15

    微處理器的指令架構(gòu)介紹

    微處理器的指令架構(gòu)(Instruction Set Architecture,ISA)是計(jì)算機(jī)體系結(jié)構(gòu)中至關(guān)重要的部分,它定義了微處理器能夠執(zhí)行的操作和指令的集合,以及這些指令如何被
    的頭像 發(fā)表于 08-22 10:53 ?1441次閱讀

    三菱PLC傳送指令用法

    三菱PLC(可編程邏輯控制器)在工業(yè)自動(dòng)化領(lǐng)域中扮演著至關(guān)重要的角色。其中,傳送指令(MOV)作為PLC編程中的基礎(chǔ)指令之一,其正確使用對(duì)于實(shí)現(xiàn)數(shù)據(jù)的準(zhǔn)確、高效傳輸至關(guān)重要。本文將詳細(xì)講解三菱PLC傳送指令(MOV)的
    的頭像 發(fā)表于 06-18 09:41 ?4436次閱讀

    PLC中SFTL指令用法

    Left Logical)指令是PLC指令集中的一種重要指令,用于處理數(shù)據(jù)的左移操作。本文將詳細(xì)闡述PLC指令SFTL的用法,包括其定義、
    的頭像 發(fā)表于 06-15 17:48 ?3550次閱讀

    數(shù)控車床m99指令用法

    詳細(xì)介紹M99指令用法。 一、M99指令的基本含義 M99指令是數(shù)控車床編程中的一個(gè)輔助功能代碼,其基本含義是“程序結(jié)束并返回到程序開始處
    的頭像 發(fā)表于 06-14 15:52 ?4994次閱讀

    RISC--V架構(gòu)的特點(diǎn)

    RISC--V架構(gòu)的特點(diǎn) RISC-V架構(gòu)RISC-V 架構(gòu)是基于 精簡(jiǎn)指令集計(jì)算(RISC)原理建立的開放 指令
    發(fā)表于 05-24 08:01

    嵌入式系統(tǒng)的概念與范圍開發(fā) 指令架構(gòu)要怎么選才合適?

    想要搭建一套嵌入式系統(tǒng),首先得確認(rèn)想要采用的指令架構(gòu)(Instruction Set Architectures, ISA),各家的指令架構(gòu)各有其優(yōu)缺點(diǎn)與擁護(hù)者,本文將為您大致
    的頭像 發(fā)表于 03-28 09:35 ?858次閱讀
    嵌入式系統(tǒng)的概念與范圍開發(fā) <b class='flag-5'>指令</b>集<b class='flag-5'>架構(gòu)</b>要怎么選才合適?

    loop指令用法及功能

    循環(huán)指令是計(jì)算機(jī)編程中的一種基本控制結(jié)構(gòu),用于重復(fù)執(zhí)行特定的代碼塊,以實(shí)現(xiàn)重復(fù)操作、批處理和自動(dòng)化等功能。循環(huán)指令在編程中具有廣泛的應(yīng)用場(chǎng)景,并且使用循環(huán)可以大大提高代碼效率和減少冗余。 循環(huán)指令
    的頭像 發(fā)表于 02-14 16:12 ?2308次閱讀

    【RISC-V開放架構(gòu)設(shè)計(jì)之道|閱讀體驗(yàn)】理解指令設(shè)計(jì)思想的好指導(dǎo)

    感謝電子發(fā)燒友論壇和電子工業(yè)出版社提供的試讀機(jī)會(huì)。 在上一篇文章中我們簡(jiǎn)單地介紹了《RISC-V開放架構(gòu)設(shè)計(jì)之道》這本書的情況,今天來談?wù)勊?b class='flag-5'>指令設(shè)計(jì)方面的特色。 我以前在課堂講授過x86和ARM
    發(fā)表于 01-28 16:58

    【RISC-V開放架構(gòu)設(shè)計(jì)之道|閱讀體驗(yàn)】學(xué)習(xí)處理器體系架構(gòu)的一本好書

    (Andrew Waterman),SiFive 的總工程師和聯(lián)合創(chuàng)始人。SiFive 由RISC-V 架構(gòu)的發(fā)明者們創(chuàng)辦,旨在提供基于RISC-V 的低成本定制芯片。 和其他介紹指令架構(gòu)
    發(fā)表于 01-23 20:08

    【RISC-V開放架構(gòu)設(shè)計(jì)之道|閱讀體驗(yàn)】一本好書,開卷有益

    目標(biāo)。模塊化特性源于可選的標(biāo)準(zhǔn)擴(kuò)展,如RV32I在必須按基礎(chǔ)指令集(RV32I)上添加了乘法(RV32M)、單度浮點(diǎn)(RV32F)和雙精度浮點(diǎn)(RC32D)擴(kuò)展。 ISA基本原則、權(quán)衡:成本、簡(jiǎn)潔、架構(gòu)
    發(fā)表于 01-21 17:03
    主站蜘蛛池模板: 影院在线观看免费| 四虎永久在线精品国产| 99国产精品农村一级毛片| 黄色免费大全| 国产精品久久久久久久久福利| 国产伦子一区二区三区| 欧美综合影院| 六月丁香婷婷网| 国产精品久久久久久久久kt| 888米奇色狠狠俺去啦| 天天干天天草天天射| 久久天天躁狠狠躁狠狠躁| 天天操好逼| 加勒比一本大道香蕉在线视频| 国产理论视频| 国产伦精品一区二区三区在线观看| 福利区在线观看| 国产成人永久在线播放| 欧美成人区| 最新四虎4hu影库地址在线| 日本aaaaa毛片动漫| 一区| 最黄毛片| 人成xxxwww免费视频| 国产黄色三级网站| 人人干人人干| 激情福利视频| 永久免费av网站| 香蕉色综合| 狼人激情网| 亚洲欧美圣爱天天综合| 成人精品综合免费视频| 1000rt人体1000欧美| 九九九精品午夜在线观看| 在线看av的网址| 一级色视频| 人碰人操| 一级特黄aaa大片| tube亚洲高清老少配| 99热99热| 六月婷婷精品视频在线观看|