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



相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
9天前
|
Web App开发 数据采集 开发者
某查”平台请求头反爬技术解析与应对
某查”平台请求头反爬技术解析与应对
|
2天前
|
机器学习/深度学习 缓存 自然语言处理
深入解析Tiktokenizer:大语言模型中核心分词技术的原理与架构
Tiktokenizer 是一款现代分词工具,旨在高效、智能地将文本转换为机器可处理的离散单元(token)。它不仅超越了传统的空格分割和正则表达式匹配方法,还结合了上下文感知能力,适应复杂语言结构。Tiktokenizer 的核心特性包括自适应 token 分割、高效编码能力和出色的可扩展性,使其适用于从聊天机器人到大规模文本分析等多种应用场景。通过模块化设计,Tiktokenizer 确保了代码的可重用性和维护性,并在分词精度、处理效率和灵活性方面表现出色。此外,它支持多语言处理、表情符号识别和领域特定文本处理,能够应对各种复杂的文本输入需求。
29 6
深入解析Tiktokenizer:大语言模型中核心分词技术的原理与架构
|
1月前
|
机器学习/深度学习 人工智能 算法
DeepSeek技术报告解析:为什么DeepSeek-R1 可以用低成本训练出高效的模型
DeepSeek-R1 通过创新的训练策略实现了显著的成本降低,同时保持了卓越的模型性能。本文将详细分析其核心训练方法。
538 11
DeepSeek技术报告解析:为什么DeepSeek-R1 可以用低成本训练出高效的模型
|
2天前
|
移动开发 前端开发 JavaScript
从入门到精通:H5游戏源码开发技术全解析与未来趋势洞察
H5游戏凭借其跨平台、易传播和开发成本低的优势,近年来发展迅猛。接下来,让我们深入了解 H5 游戏源码开发的技术教程以及未来的发展趋势。
|
5天前
|
机器学习/深度学习 人工智能 监控
鸿蒙赋能智慧物流:AI类目标签技术深度解析与实践
在数字化浪潮下,物流行业面临变革,传统模式的局限性凸显。AI技术为物流转型升级注入动力。本文聚焦HarmonyOS NEXT API 12及以上版本,探讨如何利用AI类目标签技术提升智慧物流效率、准确性和成本控制。通过高效数据处理、实时监控和动态调整,AI技术显著优于传统方式。鸿蒙系统的分布式软总线技术和隐私保护机制为智慧物流提供了坚实基础。从仓储管理到运输监控再到配送优化,AI类目标签技术助力物流全流程智能化,提高客户满意度并降低成本。开发者可借助深度学习框架和鸿蒙系统特性,开发创新应用,推动物流行业智能化升级。
|
13天前
|
人工智能 文字识别 自然语言处理
保单AI识别技术及代码示例解析
车险保单包含基础信息、车辆信息、人员信息、保险条款及特别约定等关键内容。AI识别技术通过OCR、文档结构化解析和数据校验,实现对保单信息的精准提取。然而,版式多样性、信息复杂性、图像质量和法律术语解析是主要挑战。Python代码示例展示了如何使用PaddleOCR进行保单信息抽取,并提出了定制化训练、版式分析等优化方向。典型应用场景包括智能录入、快速核保、理赔自动化等。未来将向多模态融合、自适应学习和跨区域兼容性发展。
|
22天前
|
人工智能 自然语言处理 算法
DeepSeek模型的突破:性能超越R1满血版的关键技术解析
上海AI实验室周伯文团队的最新研究显示,7B版本的DeepSeek模型在性能上超越了R1满血版。该成果强调了计算最优Test-Time Scaling的重要性,并提出了一种创新的“弱到强”优化监督机制的研究思路,区别于传统的“从强到弱”策略。这一方法不仅提升了模型性能,还为未来AI研究提供了新方向。
468 5
|
2天前
|
存储 自然语言处理 监控
深度解析淘宝商品评论API接口:技术实现与应用实践
淘宝商品评论API接口是电商数据驱动的核心工具,帮助开发者高效获取用户评价、画像及市场趋势。其核心功能包括多维度信息采集、筛选排序、动态更新、OAuth 2.0认证和兼容多种请求方式。通过该接口,开发者可进行商品优化、竞品分析、舆情监控等。本文详细解析其技术原理、实战应用及挑战应对策略,助力开启数据驱动的电商运营新篇章。
|
5天前
|
人工智能 编解码 算法
视频云技术解析:春晚“子弹时间”背后的黑科技
视频云技术解析:春晚“子弹时间”背后的黑科技

热门文章

最新文章

推荐镜像

更多