哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

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

3天內不再提示

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

安芯教育科技 ? 來源:極術社區(qū) ? 作者:yang ? 2021-02-08 10:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

? 可變矢量長度

? 每通道預測

? 聚集加載和分散存儲

? 橫向操作

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

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

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

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

2. 背景

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

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

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

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

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

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

? 32個128位矢量寄存器

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

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

3. SVE特性

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

? 可變矢量長度

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

? 不同的實現(xiàn)可以適應不同的應用場景,不用更改指令集

? 每通道預測

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

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

? 橫向操作

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

4. SVE寄存器

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

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

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

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

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

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

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

5. SVE指令實例

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

a. 矢量加法

大家也許都熟悉NEON的指令格式(如下),NEON指令通過對指令助記符添加“f”前綴來區(qū)分整數(shù)操作和浮點操作,如“add”和“fadd”;另外通過寄存器后綴“.2s”、“.4s”、“.2d”表示操作兩個32位、四個32位數(shù)據(jù)、兩個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指令也通過對指令助記符添加 “f” 前綴來區(qū)分整數(shù)操作和浮點操作。但是SVE是未知矢量長度編程,因此在指令中我們只需要指明操作數(shù)據(jù)類型就可以了。

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

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

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

b. 矢量加載

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

? 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架構特性和指令基本用法,后續(xù)還會再寫文章介紹如何在C程序中利用SVE。

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

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

責任編輯:haq

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

    關注

    0

    文章

    229

    瀏覽量

    24447
  • SIMD
    +關注

    關注

    0

    文章

    36

    瀏覽量

    11042

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    深入了解BASIC Stamp:架構、指令與應用全解析

    深入了解BASIC Stamp:架構、指令與應用全解析 一、前言 大家好,作為一名電子工程師,在硬件設計開發(fā)的道路上,我們常常會遇到各種各樣的微控制器。今天要和大家深入探討的就是Parallax公司
    的頭像 發(fā)表于 04-13 18:25 ?1082次閱讀

    ATmega8535(L)微控制器:特性、應用與設計要點

    架構,具有豐富的特性和廣泛的應用場景。本文將詳細介紹ATmega8535(L)的特性、引腳配置、寄存器和指令集等內容,為電子工程師在設計中提
    的頭像 發(fā)表于 04-06 13:40 ?630次閱讀

    ADSP - 2185M數(shù)字信號處理器深度剖析:特性、架構與應用指南

    ADSP-2185M數(shù)字信號處理器深度剖析:特性、架構與應用指南 在數(shù)字信號處理(DSP)領域,ADSP - 2185M這款單芯片微計算機憑借其卓越的性能和豐富的功能,成為了眾多工程師的首選。下面
    的頭像 發(fā)表于 03-23 16:20 ?200次閱讀

    SMJ320C80數(shù)字信號處理器:架構、特性與應用全解析

    的運算能力和豐富的功能特性,成為了眾多工程師在設計中的理想選擇。今天,我們就來深入探討一下SMJ320C80的架構特性以及應用場景。 文件下載: sm320c80.pdf 一、處理器概述 SMJ320C80是一款單芯片的MIM
    的頭像 發(fā)表于 03-06 16:55 ?1114次閱讀

    【「龍芯之光 自主可控處理器設計解析」閱讀體驗】+本書概覽與龍芯指令集基礎了解.docx

    課程設計的實踐指導書。 先從目錄了解下本書內容 第一章是基礎知識的介紹,先介紹了系統(tǒng)級芯片的基礎知識,然后是處理器架構指令集,這一部分屬于通識,對于嵌入式開發(fā)來說已經(jīng)很熟悉了,所
    發(fā)表于 01-15 23:07

    武漢芯源MCU的指令架構是什么?有哪些特點?

    武漢芯源MCU的指令架構是什么,有哪些特點?
    發(fā)表于 12-08 06:59

    modbus消息幀的模塊化架構介紹

    MODBUS消息幀的模塊化架構 1. 地址字段:通信尋址的核心 Modbus RTU協(xié)議采用單字節(jié)(8位)地址字段,支持1-247個從站設備(0保留為廣播地址)。 廣播機制:地址0的報文會被所有從站
    發(fā)表于 11-17 08:15

    C語言的printf基本用法介紹

    大家只需要掌握最基本的用法,以后隨著編程知識的學習,我們會逐步介紹更加高級的用法,最終讓大家完全掌握 printf。
    發(fā)表于 11-12 07:04

    歐盟CE-RED指令介紹

    歐盟CE-RED指令,全稱是RadioEquipmentDirective(無線電設備指令),指令編號為2014/53/EU,是歐盟針對所有帶無線發(fā)射功能設備制定的一項強制性法規(guī)。它是歐盟CE認證
    的頭像 發(fā)表于 11-05 14:01 ?1026次閱讀
    歐盟CE-RED<b class='flag-5'>指令</b><b class='flag-5'>介紹</b>

    利用蜂鳥內核實現(xiàn)指令的仿真模擬

    現(xiàn)在我們組在進行浮點擴展,既然要進行擴展,我們必須能夠檢驗擴展的正確性,因此本篇文章介紹一下自己編寫指令,并通過仿真觀察指令結果的正確性。 RSIC-V指令
    發(fā)表于 10-24 08:52

    利用蜂鳥內核來實現(xiàn)指令的仿真模擬

    現(xiàn)在我們組在進行浮點擴展,既然要進行擴展,我們必須能夠檢驗擴展的正確性,因此本篇文章介紹一下自己編寫指令,并通過仿真觀察指令結果的正確性。 RSIC-V指令
    發(fā)表于 10-24 08:17

    對于指令集中back2back情況的簡單介紹

    兩個4位操作數(shù)相乘的結果。但是對于RISC-V架構的CPU來說,它所有的通用寄存器都是32位的,如果我們要進行兩個32位操作數(shù)的乘法操作,那該如何保存這個操作的結果呢?RISC-V對于乘除法相關的指令
    發(fā)表于 10-23 06:52

    基于蜂鳥E203架構指令集K擴展

    蜂鳥E203是一款基于RISC-V架構的微處理器,其指令集包含RV32I的基本指令集,RV32M的乘法擴展指令集,以及一些常用的定點指令和控
    發(fā)表于 10-21 09:38

    同一水平的 RISC-V 架構的 MCU,和 ARM 架構的 MCU 相比,運行速度如何?

    ARM 架構與 RISC-V 架構的 MCU 在同一性能水平下的運行速度對比,需從架構設計原點、指令特性及實際測試數(shù)據(jù)展開剖析。以 ARM
    的頭像 發(fā)表于 07-02 10:29 ?1728次閱讀
    同一水平的 RISC-V <b class='flag-5'>架構</b>的 MCU,和 ARM <b class='flag-5'>架構</b>的 MCU 相比,運行速度如何?

    步進電機控制指令詳解

    這些指令主要是針對用 PLC 直接聯(lián)動伺服放大器,目的是可以不借助其他擴展設備(例如1GM 模塊)來進行簡單的點位控制, 使用這些指令時最好配合三菱的伺服放大器 (如 MR-J2)。然而,我們也可以用這些指令來控制步進電機的運行
    的頭像 發(fā)表于 06-12 10:33 ?2288次閱讀
    步進電機控制<b class='flag-5'>指令</b>詳解
    确山县| 富锦市| 资中县| 蒲城县| 元朗区| 龙陵县| 团风县| 锡林浩特市| 红安县| 安阳市| 定州市| 叙永县| 泗阳县| 凤翔县| 泗水县| 尼勒克县| 武鸣县| 朔州市| 新兴县| 望都县| 安化县| 武邑县| 沅江市| 盐山县| 原阳县| 嘉黎县| 密山市| 麻城市| 吴忠市| 满洲里市| 武隆县| 奇台县| 浦江县| 巴东县| 温宿县| 虹口区| 十堰市| 越西县| 镇坪县| 东丽区| 兴隆县|