You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Spike模拟器运行FP16向量加法时触发非法指令问题求助

问题分析与解决方案

核心原因

你遇到的非法指令错误,是因为vfadd.vv属于RISC-V向量半精度浮点扩展(Zvfh),而当前Spike配置仅启用了标量半精度浮点扩展(ZFH),并未开启向量半精度指令的支持,导致Spike无法识别这条向量浮点加法指令。

具体修复步骤

  1. 重新编译Spike,添加Zvfh扩展支持
    修改Spike的配置命令,在ISA中加入Zvfh扩展:

    ../configure --prefix=$RISCV --with-isa=RV64IMAFDCVZFH_Zvfh --with-varch=vlen:256,elen:64
    

    执行配置后重新编译安装Spike:

    make && make install
    
  2. 更新编译命令,确保指令兼容性
    编译时显式指定包含Zvfh扩展的架构,避免编译器生成Spike不支持的指令:

    riscv64-unknown-elf-gcc test_fp16.c -o test_fp16 -march=rv64gcv_zfh_zvfh -mabi=lp64
    
  3. 修复代码冗余项
    你的汇编代码输入列表里包含未定义的[PK] "r"(K),会导致编译警告,建议删除该冗余项,修改后的输入段应为:

    : [LEN] "r"(len), [PA] "r"(A), [PB] "r"(B), [PC] "r"(C)
    

验证

完成上述步骤后,重新运行spike pk test_fp16,程序即可正常执行vfadd.vv指令并输出结果。

内容的提问来源于stack exchange,提问作者J.Lu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 22:07:32