RISC-V生态全景解析(五):Vector向量计算技术与SIMD技术的对比-阿里云开发者社区

开发者社区> 开发者小助手-bz2> 正文

RISC-V生态全景解析(五):Vector向量计算技术与SIMD技术的对比

简介: 芯片开放社区(OCC)面向开发者推出RISC-V系列内容,通过多角度、全方位解读RISC-V,系统性梳理总结相关理论知识,构建RISC-V知识图谱,促进开发者对RISC-V生态全貌的了解。
+关注继续查看

编辑语:

芯片开放社区(OCC)面向开发者推出RISC-V系列内容,通过多角度、全方位解读RISC-V,系统性梳理总结相关理论知识,构建RISC-V知识图谱,促进开发者对RISC-V生态全貌的了解。


自推出RISC-V系列内容以来,我们已经陆续更新了关于RISC-V发展概况代码密度以及安全拓展的文章,且仍在不断丰富该系列。为了帮助广大开发者洞悉RISC-V相关技术的发展动态,本期内容我们将带大家认识向量计算技术和SIMD技术。


什么是向量计算技术?什么是SIMD技术?它们之间有什么区别?看到这个标题的时候,相信大家可能会有各种各样的疑问。那么在本文中,我们将基于RISC-V指令集,以简单易懂的方式,向大家介绍两者的联系和区别,并分析RISC-V向量计算技术的优劣。


01 SIMD技术简介

传统的通用处理器都是标量处理器,一条指令执行只得到一个数据结果。但对于图像、信号处理等应用,存在大量的数据并行性计算操作,这个时候,提高数据的并行性从而提高运算的性能就显得尤为重要。因此,SIMD技术应运而生。


SIMD的英文全称是Single Instruction Multiple Data,即单指令流多数据技术,SIMD的概念是相对于SISD(Single Instruction Single Data,单指令流单数据)提出的。


SIMD技术最初通过将64位寄存器的数据拆分成多个8位、16位、32位的形式来实现byte、half word、word类型数据的并行计算;在后续,为了进一步增加计算的并行度,SIMD技术开始通过增加寄存器位宽来满足应用对算力的需求。对于传统的SIMD技术,Intel的MMX、SSE系列、AVX系列,以及ARM的Neon架构都是其中的代表。


image.png


02 向量计算技术简介

提高数据并行性的另一种方式就是向量计算技术。与传统的SIMD技术一样,其也是通过扩展寄存器位宽,来增加计算的并行度;但不同的是,向量寄存器是可变长度的寄存器,而不像SIMD那样嵌入在操作码中。矢量技术的代表就是RISC-VV扩展指令集和ARM的SVE架构。


03 Vector向量计算技术的优势

相比于传统的SIMD技术,矢量计算技术是一种硬件软件更加解耦的技术,其对编程人员更加友好,是一种软硬件协同的技术典范。


为何这么说呢?可以简单用下述的例子说明一下:

loop_start:

subs x2,x2,#96

ldp q3,q4,[x1,#0]

stp q3,q4,[x0,#0]

ldp q3,x4,[x1,#32]

stp q3,x4,[x0,#32]

ldp q3,x4,[x1,#64]

stp q3,x4,[x0,#64]

add x1,x1,#96

add x0,x0,#96

bgt loop_start

Loop_start:

vsetvli  t0, a2, e8, m4

vlb.v  v0, (a1)

add    a1, a1, t0

sub    a2, a2, t0

vsb.v  v0, (a3)

add    a3, a3, t0

bnez   a2, Loop_start


上述代码是分别基于ARM Neon指令集RISC-V V指令集的典型应用程序memory copy。对于ARM的代码部分,LDP和STP分别为指定为128位宽的load和store操作,每次循环操作96个字节。而对于RICS-V的代码,上述的循环控制完全通过vsetvli指令以及sub指令实现,软件不需要显示每遍循环计算了多少数据量,仅需要给出总的数据量即可。即使硬件中矢量寄存器的长度从128变为256,上述代码也不需要进行任何修改。 


从两者对比可以看出,由于指令集限定了数据操作位宽,那么每次硬件对并行度的扩展都意味着指令集的扩展以及代码的重写,这将增加更多额外劳动,对开发者也更不友好。


然而随着处理器应用领域的不断扩大,对数据硬件并行性的需求也在不断提高,硬件架构并行度升级似乎成为一种必然趋势。纵观Intel SIMD指令集的发展,从MMX的64位,到SSE系列的128位,AVX、AVX2的256位,以及最新的AVX-512的512位,寄存器的位宽在短短20年里扩大了8倍。这对于软件的适配来说也是不小的工作。


04 Vector向量计算技术的劣势

RISC-V相比ARM Neon等SIMD指令架构来说,有着可变长、软件维护方便等优势。那是否就说明RISC-V 的Vector向量架构就没有任何缺点呢?


其实不然,首先,向量架构带来更灵活的使用本身也可能带来一些负面影响。由于操作数本身不指定操作数类型,需要通过vsetvli指令专门设置,则当出现频繁的数据类型切换时,必然会带来更多的指令数。


另外,除了操作数据类型,向量长度(VL)也是通过vsetvli指令非显示的设置的,在超标量乱序处理器中,若频繁的更改向量长度,则可能带来潜在的性能损失。除此之外,RISC-V V指令集制定时间较短,相比于ARM Neon等发展多年的SIMD指令集,在指令功能的丰富性上尚有欠缺,因此,在碰到一些特定场景时,需要使用更多的指令去实现相应的功能,进一步降低了整体的性能。


05 小结

虽然RISC-V矢量技术还有不完善的地方,但瑕不掩瑜,其解决了SIMD技术带来的二进制不兼容问题,使同一份代码可以跑在基于RISC-V架构的任何矢量位宽的处理器上,这意味着软件维护成本的大大降低,对其生态的建设是具有重大意义的。


而且RISC-V是开源架构,包括我们平头哥在内的众多团体和个人都将成为架构制定的参与者,相信在大家的集思广益下,RISC-V向量架构会更加完善,并将Vector向量技术推向下一个发展高潮。



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
8512 0
Java Spring Boot 2.0性能监控实战与Actuator机制解析
Java Spring Boot 2.0 性能监控 实战与 Actuator 机制解析: 内容摘要:应用程序性能监控和日志采集管理是非常重要问题,Java Spring Boot网站、API等应用程序如何进行远程性能监控、日志采集,远程控制,本次课程一起深入学习Actuator新特性与API机制。
3705 0
业界首个机密计算容器运行时—Inclavare Containers正式进入CNCF!
Inclavare Containers 通过云原生计算基金会(CNCF)TOC 投票正式成为 CNCF 官方沙箱项目。
162 0
DataSimba系列之流式计算
市场变化越来越快,企业对于数据及时性的需求,也越来越大,另一方面,当下数据容量呈几何倍暴增,数据的价值在其产生之后,也将随着时间的流逝,逐渐降低。 因此,我们最好在事件发生之后,迅速对其进行有效处理,实时,快速地处理新产生的数据,帮助企业快速地进行异常管理和有效决策,而不是待数据存储在一起之后,再进行批量处理。
1389 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
10342 0
Springboot之Actuator的使用解析
Springboot之Actuator的使用解析 Actuator是spring boot提供的对应用系统的自省和监控的集成功能,可以对应用系统进行配置查看、相关功能统计等。
1026 0
Spark in action on Kubernetes - Spark Operator的原理解析
在上篇文章中,向大家介绍了如何使用Spark Operator在kubernetes集群上面提交一个计算作业。今天我们会继续使用上篇文章中搭建的Playgroud进行调试与解析,帮助大家更深入的理解Spark Operator的工作原理。
12701 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
12189 0
634
文章
0
问答
来源圈子
更多
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载