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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

SVE架構特性和指令基本用法介紹

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

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

? 可變矢量長度

? 每通道預測

? 聚集加載和分散存儲

? 橫向操作

本文將對SVE做個基本介紹。

1. SIMD指令發展史 intel vs arm

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

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

2. 背景

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

? 支持8/16/32位整數操作,支持非IEEE兼容單精度浮點操作,支持指令條件執行

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

? 旨在CPU端加速多媒體處理任務

在升級到armv8架構時,AArch64 NEON指令集做出了許多改進,比如:

? 支持IEEE兼容單精度和雙精度浮點操作和64位整數矢量操作

? 32個128位矢量寄存器

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

但是到了現在,armv8的新市場需要更徹底的SIMD指令改進。我們需要能夠并行處理非常規數據和復雜數據結構,也需要更長的矢量,SVE因此而生,SVE旨在加速高性能計算。

3. SVE特性

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

? 可變矢量長度

? 128位的整數倍。 最高可支持2048位

? 不同的實現可以適應不同的應用場景,不用更改指令集

? 每通道預測

? 支持復雜嵌套循環和if/then/else條件跳轉, 沒有循環尾數。

? 聚集加載和分散存儲支持復雜數據結構,如步長數據存取、數組索引,鏈表等。

? 橫向操作

? 支持基本的reduction操作,降低循環依賴性

4. SVE寄存器

SVE寄存器有兩種:矢量寄存器和預測寄存器。

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

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

SVE預測寄存器用于控制每通道操作,有16個可變長預測寄存器P0-P15。每一個預測寄存器的位對應矢量寄存器的字節。假設SVE的矢量長度為256,預測寄存器在管理32位和64位操作時,其視圖如下。在控制32位數據操作時,如果Pg寄存器的最低為1,則該通道操作為激活狀態,該通道操作結果被正常存儲到目的寄存器;如果Pg寄存器的最低為0,則該通道操作為未激活狀態,該通道操作結果不會被存儲到目的寄存器,目的寄存器的該通道數據有兩種可能:

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

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

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

5. SVE指令實例

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

a. 矢量加法

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

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

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

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

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

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

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

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

b. 矢量加載

對于加載指令,NEON指令通過助記符“ld1”、“ld2”表示加載一維數組、二維數組;通過寄存器后綴“.8h”、“.4s”表示加載八個16位、四個32位數據。

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

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

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

SVE加載指令添加指令助記符后綴 “h“、”w“表示讀取存儲元素寬度;寄存器后綴”.h“、”.s“表示元素在寄存器中的寬度。寄存器元素寬度必須大于等于讀取存儲寬度。對于加載指令,讀取元素可以通過符號擴展或者零擴展填充到矢量寄存器;對于存儲指令,每個矢量元素被截斷后存儲到內存中。

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

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

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

6. 小結

本文簡單介紹了SVE架構特性和指令基本用法,后續還會再寫文章介紹如何在C程序中利用SVE。

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

文章出處:【微信公眾號:安芯教育科技】歡迎添加關注!文章轉載請注明出處。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 指令集
    +關注

    關注

    0

    文章

    228

    瀏覽量

    23649
  • SIMD
    +關注

    關注

    0

    文章

    35

    瀏覽量

    10446

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

文章出處:【微信號:Ithingedu,微信公眾號:安芯教育科技】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Matter SVE認證經驗分享

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

    數控車床m99指令用法

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

    Armv9 CPU中SVE2的實際用例

    隨著每一代新產品的推出,Arm CPU 都會實現代際性能提升,并引入架構改進,以滿足不斷演進的計算工作負載的需求。本文將重點介紹三個用例,以展示 Armv9 CPU 的架構特性在實際場
    的頭像 發表于 10-21 09:54 ?793次閱讀
    Armv9 CPU中<b class='flag-5'>SVE</b>2的實際用例

    指令架構與微架構的區別

    指令架構(Instruction Set Architecture,ISA)與微架構(Microarchitecture)是計算機體系結構中的兩個重要概念,它們在處理器的設計和實現中扮演著不同的角色。以下是對兩者區別的詳細闡述
    的頭像 發表于 10-05 15:10 ?907次閱讀

    簡述微處理器的指令架構

    微處理器的指令架構(Instruction Set Architecture,ISA)是計算機體系結構中的核心組成部分,它定義了計算機能夠執行的指令集合、數據類型、寄存器、內存訪問方式等,是連接
    的頭像 發表于 10-05 14:59 ?882次閱讀

    傳感器的動態特性和靜態特性參數介紹

    傳感器的特性可以分為靜態特性和動態特性兩大類,這兩類特性分別描述了傳感器在不同輸入條件下的輸出響應特點。下面將詳細介紹這兩類
    的頭像 發表于 09-29 16:24 ?4477次閱讀

    國產主流8位單片機-RISC架構精簡指令集單片機

    在當前的電子產品開發領域,8位單片機仍然占據著重要的地位,尤其是在嵌入式系統和低功耗應用中。RISC(簡化指令集計算)架構以其高效性和簡單性,成為了國產主流8位單片機。RISC架構通過減少指令
    發表于 09-27 10:15

    risc-v與esp32架構對比分析

    RISC-V與ESP32在架構上存在顯著的差異,這些差異主要體現在處理器類型、設計原則、功能特性以及應用場景等方面。以下是對兩者架構的詳細對比分析: 一、處理器類型與設計原則 RISC-V : 類型
    發表于 09-26 08:40

    RISC--V架構的目標和特點

    RISC--V架構的目標 RISC--V架構的目標如下 成為一種完全開放的指令集,可以被任何學術機構或商業組織所自由使用 成為一種真正適合硬件實現且穩定的標準指令集 RISC--V
    發表于 08-23 00:42

    復雜指令集和精簡指令集有什么區別

    的兩種主要指令架構,它們在多個方面存在顯著的差異。以下是對這兩種指令架構的詳細比較,涵蓋設計理念、指令復雜性、尋址方式、實現方式、性能特
    的頭像 發表于 08-22 11:00 ?4972次閱讀

    微處理器的指令架構介紹

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

    三菱PLC傳送指令用法

    三菱PLC(可編程邏輯控制器)在工業自動化領域中扮演著至關重要的角色。其中,傳送指令(MOV)作為PLC編程中的基礎指令之一,其正確使用對于實現數據的準確、高效傳輸至關重要。本文將詳細講解三菱PLC傳送指令(MOV)的
    的頭像 發表于 06-18 09:41 ?5598次閱讀

    PLC中SFTL指令用法

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

    數控車床m99指令用法

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

    RISC--V架構的特點

    RISC--V架構的特點 RISC-V架構RISC-V 架構是基于 精簡指令集計算(RISC)原理建立的開放 指令
    發表于 05-24 08:01
    主站蜘蛛池模板: 免费一级毛片 | 中文字幕在线一区二区在线 | 777色淫网站女女 | 韩日一级毛片 | 亚洲视频免费一区 | 女人午夜啪啪性刺激免费看 | 丁香六月婷婷七月激情 | 白嫩美女一级高清毛片免费看 | 免费观看国产网址你懂的 | 黄色午夜视频 | 欧美经典三级春潮烂漫海棠红 | 欧美另类激情 | 6969精品视频在线观看 | 日本一区二区免费看 | 伊人丁香婷婷综合一区二区 | 欧美xxxxbbbb| 末满18以下勿进色禁网站 | 又黄又免费的网站 | 欧美四虎影院 | 日本特黄特色aaa大片免费欧 | 午夜精品久久久久久久第一页 | 天堂8在线天堂资源在线 | 东北美女野外bbwbbw免费 | 国产网站免费视频 | 国产精品成人va在线观看入口 | 天天插插插 | 人人艹在线 | 日韩一区二区在线观看 | www四虎在线高清 | tube69xxxxhd日本 | 女人张开腿等男人桶免费视频 | 国产一区二区三区在线观看影院 | 黄色在线观看视频 | 嘿嘿嘿视频在线观看网站 | 日韩精品你懂的在线播放 | 色老板在线视频一区二区 | 丁香5月婷婷 | 国产精品久久久精品三级 | 欧美成人a视频 | 一区二区三区视频在线观看 | 天堂网中文在线最新版 |