You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

寻求支持官方规范定义的RISC-V向量扩展v1.0的可用C/C++工具链

支持RISC-V向量扩展v1.0的C/C++工具链推荐

好消息是你不用继续等了——现在已经有几个成熟的工具链完全支持RISC-V向量扩展v1.0,能和Spike无缝搭配使用:

1. GCC 13+ 搭配 riscv-gnu-toolchain

GCC 13已经正式合并了对RVV 1.0的完整支持,你可以通过两种方式获取:

  • 自行编译:克隆riscv-gnu-toolchain的官方仓库,配置时指定目标架构包含向量扩展,比如针对64位架构的配置命令:
    mkdir build && cd build
    ../configure --prefix=/path/to/your/install/dir --with-arch=rv64gcv --with-abi=lp64d
    make -j$(nproc)
    
    编译完成后,工具链就会支持RVV 1.0的代码生成。
  • 预编译包:不少开源社区提供了GCC 13+版本的RISC-V工具链预编译包,直接下载解压后即可使用。

2. LLVM/Clang 15+

LLVM从15版本开始正式支持RVV 1.0,如果你之前用的是13.0.0,升级到15或更高版本就能满足需求:

  • 预编译工具链:可以获取官方提供的支持RISC-V目标的Clang预编译包,解压后就能直接使用。
  • 自行编译:如果需要定制功能,可编译LLVM的最新稳定版或开发分支,配置时开启RISC-V目标支持:
    cmake -S llvm -B build -DLLVM_TARGETS_TO_BUILD="RISCV" -DCMAKE_INSTALL_PREFIX=/path/to/your/install/dir
    cmake --build build -j$(nproc)
    cmake --install build
    
    使用时,编译代码加上-march=rv64gcv(根据你的目标架构调整,比如rv32gcv)即可启用RVV 1.0扩展。

3. 验证工具链兼容性

你可以通过以下命令快速确认工具链是否支持RVV 1.0:

  • GCC:运行riscv64-unknown-linux-gnu-gcc -v确认版本为13+,再执行:
    riscv64-unknown-linux-gnu-gcc -march=rv64gcv -dM -E - < /dev/null | grep RVV
    
    若输出包含__RISCV_V__及对应v1.0的宏定义,说明支持正常。
  • Clang:运行clang --version确认版本为15+,再执行:
    clang -target riscv64-unknown-linux-gnu -march=rv64gcv -dM -E - < /dev/null | grep RVV
    
    同样检查相关宏定义是否存在。

这些工具链都能和Spike完美配合,你可以用它们编译RVV 1.0的代码后直接在Spike上运行测试。

内容的提问来源于stack exchange,提问作者Fabian

火山引擎 最新活动