喜欢0次
我们的队伍编号是CICC3835.本次分享的内容是,若想支持向量扩展需要什么样的工具链
对于标准指令集,RISC-V社区提供了完整的工具链支持、而对于非标准的自定义扩展指令,以及暂未批准或标准发布时间较短(注:RISC-V向量扩展标准RVV)的扩展指令集工具链的支持较差。
对于扩展指令的软件支持可以分为编译层面的支持和汇编层面的支持如下图所示。编译层面的支持有以下两种方式:一是在高级语言中定义新的数据类型和编译器内建函数,使得用户可以通过直接进行函数调用的形式使用扩展指令;二是通过编译优化技术将中间代码自动转化成机器码的扩展指令。汇编层面的支持是指将用户编写的含有扩展指令的汇编程序转化机器码。
目前LLVM对RVV1.0的支持较为活跃,可以采用LLVM编译GCC工具链提供基础库的方式进行交叉编译,完成程序的自动向量化。从而避免手撸RVV,甚至手撸汇编