18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

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)特性和指令基本用法介紹

安芯教育科技 ? 來(lái)源:極術(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ì)是向著越來(lái)越長(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), 沒(méi)有循環(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í)例

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

a. 矢量加法

大家也許都熟悉NEON的指令格式(如下),NEON指令通過(guò)對(duì)指令助記符添加“f”前綴來(lái)區(qū)分整數(shù)操作和浮點(diǎn)操作,如“add”和“fadd”;另外通過(guò)寄存器后綴“.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指令也通過(guò)對(duì)指令助記符添加 “f” 前綴來(lái)區(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指令通過(guò)助記符“l(fā)d1”、“l(fā)d2”表示加載一維數(shù)組、二維數(shù)組;通過(guò)寄存器后綴“.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ì)于加載指令,讀取元素可以通過(guò)符號(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ī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 指令集
    +關(guān)注

    關(guān)注

    0

    文章

    228

    瀏覽量

    24169
  • SIMD
    +關(guān)注

    關(guān)注

    0

    文章

    36

    瀏覽量

    10770

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    利用蜂鳥(niǎo)內(nèi)核來(lái)實(shí)現(xiàn)指令的仿真模擬

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

    對(duì)于指令集中back2back情況的簡(jiǎn)單介紹

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

    基于蜂鳥(niǎo)E203架構(gòu)指令集K擴(kuò)展

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

    浮點(diǎn)指令擴(kuò)展中16位指令的處理

    指令取代對(duì)應(yīng)的寬指令由它們決定。 為了能在一系列的程序上得到良好的代碼壓縮效果, RISC-V 架構(gòu)師精心挑選了 RVC擴(kuò)展中的指令。同時(shí),基于以下的三點(diǎn)觀察,
    發(fā)表于 10-20 11:02

    舵機(jī)PWM信號(hào)介紹

    舵機(jī) PWM 信號(hào)介紹 PWM(Pulse Width Modulation,脈沖寬度調(diào)制)信號(hào)是舵機(jī)的核心控制方式,其通過(guò)脈沖的寬度變化來(lái)精確指令舵機(jī)輸出軸的旋轉(zhuǎn)角度。以下從信號(hào)特性、參數(shù)標(biāo)準(zhǔn)
    的頭像 發(fā)表于 08-22 10:59 ?1115次閱讀

    同一水平的 RISC-V 架構(gòu)的 MCU,和 ARM 架構(gòu)的 MCU 相比,運(yùn)行速度如何?

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

    步進(jìn)電機(jī)控制指令詳解

    這些指令主要是針對(duì)用 PLC 直接聯(lián)動(dòng)伺服放大器,目的是可以不借助其他擴(kuò)展設(shè)備(例如1GM 模塊)來(lái)進(jìn)行簡(jiǎn)單的點(diǎn)位控制, 使用這些指令時(shí)最好配合三菱的伺服放大器 (如 MR-J2)。然而,我們也可以用這些指令來(lái)控制步進(jìn)電機(jī)的運(yùn)行
    的頭像 發(fā)表于 06-12 10:33 ?1355次閱讀
    步進(jìn)電機(jī)控制<b class='flag-5'>指令</b>詳解

    RISC-V核低功耗MCU指令架構(gòu)(ISA)特點(diǎn)

    RISC-V核低功耗MCU通過(guò)開(kāi)源生態(tài)、模塊化架構(gòu)與能效優(yōu)化技術(shù),成為物聯(lián)網(wǎng)、穿戴設(shè)備等領(lǐng)域的理想選擇?。 一、?開(kāi)源與可定制性? 完全開(kāi)源免費(fèi)?:RISC-V ISA無(wú)需專利授權(quán)費(fèi)用,允許開(kāi)發(fā)者
    的頭像 發(fā)表于 04-23 10:01 ?916次閱讀

    CPU的各種指令和執(zhí)行流程

    、數(shù)據(jù)傳輸?shù)裙δ?。要深入理解CPU的指令,我們需要從多個(gè)維度進(jìn)行分析,尤其是指令的構(gòu)成、分類、執(zhí)行流程以及與不同架構(gòu)的關(guān)系。
    的頭像 發(fā)表于 04-18 11:24 ?1596次閱讀

    博世GTM IP模塊架構(gòu)介紹

    上篇文章我們介紹了博世GTM IP模塊的核心功能及基礎(chǔ)結(jié)構(gòu)模塊。本篇文章將繼續(xù)解析GTM模塊架構(gòu),重點(diǎn)介紹I/O模塊,特殊功能模塊及內(nèi)核模塊。這些模塊不僅增強(qiáng)了GTM的信號(hào)處理能力,還極大提升了系統(tǒng)的靈活性和集成度,能夠滿足汽車
    的頭像 發(fā)表于 03-07 17:50 ?1738次閱讀
    博世GTM IP模塊<b class='flag-5'>架構(gòu)</b><b class='flag-5'>介紹</b>

    RISC-V架構(gòu)及MRS開(kāi)發(fā)環(huán)境回顧

    一、RISC-V架構(gòu)介紹 1. RISC 架構(gòu)的起源 1981年,在David Patterson(大衛(wèi)·帕特森)的帶領(lǐng)下,美國(guó)加州大學(xué)伯克利分校的一個(gè)研究團(tuán)隊(duì)起 草了RISC-I,是今天RISC
    發(fā)表于 12-16 23:08

    RISC-V指令集概述

    RISC-V就是RISC的第五代指令架構(gòu)。而RISC-V目標(biāo)就是“成為一種完全開(kāi)放的指令架構(gòu),可被任何學(xué)術(shù)機(jī)構(gòu)或商業(yè)組織自由使用”。 RISC-V
    發(fā)表于 11-30 23:30

    基于risc-v架構(gòu)的芯片與linux系統(tǒng)兼容性討論

    : RISC-V架構(gòu)概述 RISC-V(Reduced Instruction Set Computing - V)是一個(gè)開(kāi)源的可自由使用、修改和分發(fā)的指令架構(gòu)(ISA)。它由加州大學(xué)伯克利分校的計(jì)算機(jī)科學(xué)
    發(fā)表于 11-30 17:20

    ?ISP算法及架構(gòu)分析介紹

    一、ISP算法及架構(gòu)分析介紹 ISP即Image Signal Processor,是一種圖像處理架構(gòu),不是我們用的下載器。 ISP其實(shí)算是圖像處理的一個(gè)特例,一般應(yīng)用于前端設(shè)備(相對(duì)于SENSOR
    的頭像 發(fā)表于 11-26 10:05 ?2452次閱讀
    ?ISP算法及<b class='flag-5'>架構(gòu)</b>分析<b class='flag-5'>介紹</b>

    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 ?1714次閱讀
    Matter <b class='flag-5'>SVE</b>認(rèn)證經(jīng)驗(yàn)分享