浅谈RISC-C C Intrinsic的发展情况 - RISC-V MCU技术社区 - 电子技术论坛 - 广受欢迎的专业电子论坛
分享 收藏 返回

马誉铭 关注 私信
[文章]

浅谈RISC-C C Intrinsic的发展情况

## Intrinsic介绍
RISC-V C Intrinsic 是一种编程技术,它允许开发者在高级编程语言(如C或C++)中直接使用底层硬件指令,从而提高程序的性能。对于RISC-V架构,C Intrinsic 特别适用于向量扩展(RVV),这是因为RVV提供了对数据并行处理的原生支持。

## RISC-V C Intrinsic 标准
RISC-V C Intrinsic 的标准由RISC-V国际协会的矢量工作组制定。这个工作组由来自行业和学术界的专家组成,旨在创建一个普遍采用的矢量扩展标准。RISC-V的向量扩展(RVV)允许基于RISC-V指令集架构的处理器内核处理数据阵列,加速对大型数据集的单个指令流计算。
## RISC-V C Intrinsic 支持情况
1. 支持的编译器:RISC-V C Intrinsic 已经在GCC和LLVM编译器中得到了支持。这些编译器提供了对RISC-V向量扩展的Intrinsic的支持,使得开发者可以利用这些编译器来编译和优化RISC-V向量代码。
2. 类型系统:RISC-V C Intrinsic 定义了一套类型系统,这些类型系统将SEW(标准元素宽度)和LMUL(向量寄存器组)编码为数据类型。例如,对于SEW≤64的数据类型,可以有vint64m1_t, vint64m2_t等类型,分别对应不同的LMUL值。
3. 命名规则:RISC-V C Intrinsic 遵循一定的命名规则,这有助于开发者理解和使用。例如,函数名通常由指令名、数据基本类型简写和向量寄存器组lmul组成,如 vfmul_vv_f32m1 表示两个向量寄存器中各自的float32数据逐个相乘。
4. 应用案例:RISC-V C Intrinsic 在图像处理、AI模型等领域有广泛应用。例如,可以使用矢量内在函数加速图像的滤波操作。
5. 开发资源:RISC-V社区维护了一个名为rvv-intrinsic-doc的开源项目,该项目提供了RISC-V矢量扩展的C语言内在函数的文档和规范。开发者可以通过这个项目来理解和使用RISC-V矢量指令集。
6. 未来工作:RISC-V向量扩展的Intrinsic支持将继续完善,并且可能会在OpenCV等项目中使用RVV intrinsics来实现基于RISC-V向量指令的加速运算。

更多回帖

×
发帖