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向量技术推向下一个发展高潮。



相关实践学习
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
6月前
|
传感器 人工智能 物联网
穿戴科技新风尚:智能服装设计与技术全解析
穿戴科技新风尚:智能服装设计与技术全解析
534 85
|
6月前
|
人工智能 API 语音技术
HarmonyOS Next~鸿蒙AI功能开发:Core Speech Kit与Core Vision Kit的技术解析与实践
本文深入解析鸿蒙操作系统(HarmonyOS)中的Core Speech Kit与Core Vision Kit,探讨其在AI功能开发中的核心能力与实践方法。Core Speech Kit聚焦语音交互,提供语音识别、合成等功能,支持多场景应用;Core Vision Kit专注视觉处理,涵盖人脸检测、OCR等技术。文章还分析了两者的协同应用及生态发展趋势,展望未来AI技术与鸿蒙系统结合带来的智能交互新阶段。
367 31
|
6月前
|
编解码 监控 网络协议
RTSP协议规范与SmartMediaKit播放器技术解析
RTSP协议是实时流媒体传输的重要规范,大牛直播SDK的rtsp播放器基于此构建,具备跨平台支持、超低延迟(100-300ms)、多实例播放、高效资源利用、音视频同步等优势。它广泛应用于安防监控、远程教学等领域,提供实时录像、快照等功能,优化网络传输与解码效率,并通过事件回调机制保障稳定性。作为高性能解决方案,它推动了实时流媒体技术的发展。
337 5
|
6月前
|
数据采集 机器学习/深度学习 存储
可穿戴设备如何重塑医疗健康:技术解析与应用实战
可穿戴设备如何重塑医疗健康:技术解析与应用实战
226 4
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术如何重塑客服系统?解析合力亿捷AI智能客服系统实践案例
本文探讨了人工智能技术在客服系统中的应用,涵盖技术架构、关键技术和优化策略。通过感知层、认知层、决策层和执行层的协同工作,结合自然语言处理、知识库构建和多模态交互技术,合力亿捷客服系统实现了智能化服务。文章还提出了用户体验优化、服务质量提升和系统性能改进的方法,并展望了未来发展方向,强调其在客户服务领域的核心价值与潜力。
321 6
|
6月前
|
编解码 人工智能 并行计算
基于 Megatron 的多模态大模型训练加速技术解析
Pai-Megatron-Patch 是一款由阿里云人工智能平台PAI 研发的围绕英伟达 Megatron 的大模型训练配套工具,旨在帮助开发者快速上手大模型,打通大模型相关的高效分布式训练、有监督指令微调、下游任务评估等大模型开发链路。本文以 Qwen2-VL 为例,从易用性和训练性能优化两个方面介绍基于 Megatron 构建的 Pai-Megatron-Patch 多模态大模型训练的关键技术
|
6月前
|
监控 负载均衡 安全
静态IP代理与动态IP代理:提升速度与保障隐私的技术解析
本文探讨了静态IP代理和动态IP代理的特性和应用场景。静态IP代理通过高质量服务提供商、网络设置优化、定期更换IP与负载均衡及性能监控提升网络访问速度;动态IP代理则通过隐藏真实IP、增强安全性、绕过封锁和提供独立IP保障用户隐私。结合实际案例与代码示例,展示了两者在不同场景下的优势,帮助用户根据需求选择合适的代理服务以实现高效、安全的网络访问。
213 1
|
6月前
|
机器学习/深度学习 数据采集 自然语言处理
基于Python的情感分析与情绪识别技术深度解析
本文探讨了基于Python的情感分析与情绪识别技术,涵盖基础概念、实现方法及工业应用。文中区分了情感分析与情绪识别的核心差异,阐述了从词典法到深度学习的技术演进,并通过具体代码展示了Transformers架构在细粒度情感分析中的应用,以及多模态情绪识别框架的设计。此外,还介绍了电商评论分析系统的构建与优化策略,包括领域自适应训练和集成学习等方法。未来,随着深度学习和多模态数据的发展,该技术将更加智能与精准。
381 1
|
6月前
|
负载均衡 JavaScript 前端开发
分片上传技术全解析:原理、优势与应用(含简单实现源码)
分片上传通过将大文件分割成多个小的片段或块,然后并行或顺序地上传这些片段,从而提高上传效率和可靠性,特别适用于大文件的上传场景,尤其是在网络环境不佳时,分片上传能有效提高上传体验。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
6月前
|
缓存 算法 Oracle
深度干货 | 如何兼顾性能与可靠性?一文解析YashanDB主备高可用技术
数据库高可用(High Availability,HA)是指在系统遇到故障或异常情况时,能够自动快速地恢复并保持服务可用性的能力。如果数据库只有一个实例,该实例所在的服务器一旦发生故障,那就很难在短时间内恢复服务。长时间的服务中断会造成很大的损失,因此数据库高可用一般通过多实例副本冗余实现,如果一个实例发生故障,则可以将业务转移到另一个实例,快速恢复服务。

热门文章

最新文章

推荐镜像

更多
  • DNS