《PERCIVAL: Open-Source Posit RISC-V Core With Quire Capability》(一)

好的,下面根据你的指令,完整、规范地用中文分析这篇论文 《PERCIVAL: Open-Source Posit RISC-V Core With Quire Capability》


1. 论文主要内容和研究方向

本论文提出了PERCIVAL,一种基于CVA6 RISC-V核扩展的开源Posit处理器,实现了完整的32位Posit数及其Quire累加器功能。这是首次将完整的Posit指令集(包括加法、减法、乘法、带Quire融合操作等)硬件集成到应用级RISC-V核心中,同时支持IEEE 754单精度、双精度浮点操作。
研究方向集中在新型数值表示方法(Posit格式)在处理器架构中的硬件实现编译器支持、以及与传统浮点数的对比分析(准确性与性能)


2. 研究方法介绍(附截图)

论文的方法体系包括:

  • 基于CVA6核心扩展设计:在CVA6的基础上新增Posit算术单元(PAU)和Posit寄存器文件;
  • 完整硬件支持:不仅实现Posit基本运算,还支持Quire融合累加操作
  • 编译器扩展:开发了Xposit RISC-V扩展,并集成到LLVM中,实现高层程序可直接使用Posit指令;
  • FPGA和ASIC综合:在Xilinx FPGA和TSMC 45nm工艺下对PERCIVAL进行硬件综合,评估面积和功耗;
  • 实验验证:通过矩阵乘法(GEMM)和最大池化(Max-Pooling)等典型神经网络运算,对比Posit与IEEE浮点在准确性和执行时间上的差异。

以下是论文中相关架构截图:

  • PAU(Posit Arithmetic Unit)结构图

  • Posit指令解码流程伪代码

  • Xposit指令结构图


3. 研究结果分析(有对比实验)

硬件开销对比

  • 32位Posit+Quire硬件成本比CVA6原生32位浮点单元大约3倍
  • 不考虑Quire时,Posit算术单元(PAU)仅比浮点单元多30%左右资源,符合预期。

准确性比较

  • 在矩阵乘法(GEMM)测试中,使用Posit+Quire时,结果的均方误差(MSE)比32位浮点数低最多四个数量级
  • 即使不使用Quire,Posit的准确度在常规范围(如[-1,1])内也普遍优于浮点数

性能比较

  • 执行速度上,在大矩阵计算中,32位Posit与32位浮点几乎同速,且明显快于64位浮点
  • 在神经网络Max-Pooling操作中,Posit与32位浮点执行时间几乎相同,均优于64位浮点。

其他项目

论文对比了其他相关项目如:

  • CLARINET:只支持部分Posit操作,且需要频繁在浮点与Posit之间转换;
  • PERC、PERI、POSAR:均未完全支持Quire或完整Posit运算。

其中如果有开源项目地址(如PERCIVAL的代码)已明确列出:

开源链接:https://github.com/artecs-group/PERCIVAL


4. 论文出处及期刊等级

  • 发表来源:IEEE Transactions on Emerging Topics in Computing (TETC)
  • 发表时间:2022年7月至9月,卷10第3期
  • DOI10.1109/TETC.2022.3187199
  • 期刊分区
    • 根据中科院分区(2023版),TETC属于计算机科学领域3区
    • CCF推荐目录中,TETC属于B类国际期刊

5. 是否有论文相关的开源代码网站

✅ 有开源代码,地址为:

https://github.com/artecs-group/PERCIVAL

该库提供了PERCIVAL处理器的源代码,包括Posit算术单元(PAU)、CVA6集成扩展、Xposit指令集支持及示例程序等内容。


6. 与原文内容相关的出处引用

  • PERCIVAL架构、PAU设计与功能描述来自原文;
  • FPGA与ASIC综合实验结果来自原文;
  • Posit与IEEE-754浮点数的准确度与性能对比数据来自原文;
  • 相关开源地址引用自原文。

要不要继续帮你把这篇文章的章节结构重要公式实验详细表格截图也整理一下?
要的话告诉我!🌟
要继续吗?


好的,我来根据论文内容,详细整理PERCIVAL这篇文章中关于软件层面验证的部分,主要包括:


PERCIVAL论文中软件层面验证的详细介绍


1. 软件验证的整体思路

论文在软件层面验证方面,主要做了两件事:

  • (1)开发和扩展编译器
    在LLVM编译器中,增加了对Posit指令的支持(命名为Xposit扩展),使得用户能够将带有Posit运算的C程序编译为PERCIVAL能够直接执行的指令。

  • (2)设计并运行标准化测试程序
    使用了矩阵乘法(GEMM)最大池化(Max-Pooling)两个典型神经网络计算任务,分别使用IEEE-754浮点数Posit数(带Quire与不带Quire)进行比较,来验证功能正确性、数值准确性和执行性能


2. 软件工具链支持

(1)编译器扩展:Xposit

  • 基于LLVM 12版本进行修改;
  • 新增了Xposit RISC-V扩展指令集,包括:
    • Posit基本运算指令(PADD、PSUB、PMUL、PDIV、PSQRT等);
    • Quire相关指令(QMADD、QMSUB、QCLR、QNEG、QROUND);
    • Posit与整数之间的转换指令(如PCVT、PCVTW等);
    • Posit负载存储指令(PLW、PSW);
  • 这些指令都通过0001011(custom-0)这个Opcode扩展编码。

论文中明确指出,目前C语言层面暂不直接支持Posit运算符,因此:

  • C程序仍然使用普通编写;
  • 在关键计算核(如矩阵乘加)中嵌入内联汇编,调用Xposit指令。

3. 验证程序设计与实验设置

(1)矩阵乘法(GEMM)验证

  • 功能:验证PERCIVAL能够正确执行高密度数值运算;
  • 测试方法
    • 分别使用32位IEEE单精度浮点(float32)和32位Posit数(Posit32)进行矩阵乘法;
    • 输入矩阵元素分别来自区间[-10,10][-1,1][-100,100][-1000,1000]等不同范围;
    • 随机生成输入数据,使用SoftPosit库转换;
    • 用64位浮点运算(double)作为参考标准,计算输出误差(MSE均方误差);
  • 关键点
    • Posit版本特别测试了带Quire累加(QMADD)和不带Quire(PADD+PMUL)两种情况;
    • 测试矩阵规模从16×16到256×256;

(2)最大池化(Max-Pooling)验证

  • 功能:验证PERCIVAL能够正确处理神经网络常见的空间降采样操作;
  • 测试方法
    • 模拟LeNet-5、AlexNet、ResNet-50中的典型最大池化层;
    • 记录Posit32、float32、float64三种情况下的执行时间;
  • 关键点
    • 由于最大池化主要是比较操作,因此Posit直接复用整数ALU比较单元,而非PAU。

4. 结果分析

(1)准确性验证

  • 带Quire的Posit32,在GEMM中比float32的MSE低4个数量级
  • 即使不带Quire,在[-1,1]区间下Posit32也比float32更准确;
  • 只有在非常大范围(如[-1000,1000])下且不使用Quire时,float32在极端累加误差控制上略好。

(2)性能验证

  • 在大矩阵GEMM任务中,Posit32带Quire的执行时间与float32基本相同,优于float64;
  • Max-Pooling任务中,Posit32与float32速度几乎无差异,float64稍慢;
  • 还特别对比了商业产品(VividSparks提供的FPGA Posit加速器),PERCIVAL在GEMM中速度快了8倍以上。

5. 特别注意

论文也指出,虽然PERCIVAL可以正确支持Posit与浮点共存,但有两个限制:

  • Quire是内部寄存器,无法存取到内存,因此不能自动上下文切换(比如中断时需要特别注意保护);
  • 现阶段C语言尚不能直接使用Posit数据类型,需要通过内联汇编手动插入指令。

总结归纳

验证方面 内容 工具/环境
编译器支持 LLVM 12 + Xposit扩展,手动插入内联汇编 RV64GCXposit架构
功能测试 矩阵乘法(GEMM)、最大池化(Max-Pooling) C语言+内联汇编程序
验证指标 功能正确性、准确率(MSE)、执行时间(ms) 比较float32、float64和Posit32
参考基准 64位浮点(double)输出作为黄金标准 SoftPosit转换工具辅助生成测试输入

要不要我顺便帮你把验证部分的GEMM和MaxPooling实验的测试流程画个流程图?这样写报告或者答辩展示也很直观!
要的话告诉我!✅

posted @ 2025-04-29 20:48  江左子固  阅读(50)  评论(0)    收藏  举报