Bianbu 2.3.3 Spacemit K1 实例 RVV 1.0 编译报错求助

论坛发帖精简版(RVV 1.0 版)


标题:Bianbu 2.3.3 Spacemit K1 实例 RVV 1.0 编译报错求助

【环境】

  • 系统:Bianbu 2.3.3

  • 硬件:Spacemit K1

  • GCC:riscv64-linux-gnu-gcc 13.2.0

【问题】

平台宣称支持 RVV 1.0,但编译标准 RVV 1.0 代码时报错:

  • implicit declaration of function 'vsetvl_e64m1'

  • undefined reference to 'vle64_v_f64m1'

  • 相关 RVV 1.0 宏/类型无法识别

【已排查】

  1. 编译参数正确:-march=rv64gcv_zvl256b -mabi=lp64d

  2. 手动补全头文件/宏定义仍无法链接

  3. 编译器无 RVV 相关宏输出,疑似工具链/硬件未启用 RVV 1.0

【极简复现代码】

#include <riscv_vector.h>
int main() {
    size_t vl = vsetvl_e64m1(4);
    return 0;
}

编译:

riscv64-linux-gnu-gcc -march=rv64gcv_zvl256b -mabi=lp64d test.c -o test

【求助】

  1. 确认 K1 是否真正开放 RVV 1.0 指令集

  2. 求 Bianbu 2.3.3 下 RVV 1.0 正确环境配置/工具链

  3. 有无官方 RVV 1.0 开发说明

感谢大佬指点!

交叉编译的工具链:

https://www.spacemit.com/community/resources-download

Bianbu里面本地编译工具链:

apt install gcc-14
1 个赞

K1,我好像也遇到了这样的问题,我在bianbu下手写汇编,使用了vslideup指令,结果报非法指令错误,我查询了标准确认指令写的没问题,这个指令不是rvv1.0标准里的吗?芯片上也明确写了支持rvv1.0标准所有指令.

看起来是使用了旧版api
使用如下RVV Intrinsic v1.0 API 验证通过(k1本机使用gcc14工具链)

#include <riscv_vector.h>

int main() {
    size_t vl = __riscv_vsetvl_e64m1(4);
    return 0;
}
riscv64-linux-gnu-gcc -march=rv64gcv_zvl256b -mabi=lp64d test.c -o test

为了更好的兼容性,在k1本机建议升级到gcc14:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-14 100
sudo update-alternatives --set gcc /usr/bin/gcc-14
sudo update-alternatives --set g++ /usr/bin/g++-14

sudo update-alternatives --install /usr/bin/riscv64-linux-gnu-gcc riscv64-linux-gnu-gcc /usr/bin/riscv64-linux-gnu-gcc-14 100
sudo update-alternatives --install /usr/bin/riscv64-linux-gnu-g++ riscv64-linux-gnu-g++ /usr/bin/riscv64-linux-gnu-g++-14 100
sudo update-alternatives --set riscv64-linux-gnu-gcc /usr/bin/riscv64-linux-gnu-gcc-14
sudo update-alternatives --set riscv64-linux-gnu-g++ /usr/bin/riscv64-linux-gnu-g++-14

参考资料:

RVV 官方规范文档的 URL:
最新正式版本(v1.0)https://github.com/riscv/riscv-v-spec
PDF 直接下载: https://lists.riscv.org/g/tech-vector-ext/attachment/691/0/riscv-v-spec-1.0.pdf
在线阅读版本: RISC-V Vector Extension Web Page — RVV-web-page documentation
这是 RISC-V International 官方维护的 Vector Extension 规范,v1.0 是已冻结的正式版本。

1 个赞