首页 > 其他分享 >并行前缀(Parallel Prefix)加法器

并行前缀(Parallel Prefix)加法器

时间:2025-01-09 20:55:15浏览次数:1  
标签:前缀 处理单元 并行 Prefix 加法器 Adder Parallel 进位

并行前缀(Parallel Prefix)加法器

并行前缀加法器的基本介绍

二进制加法器是目前数字计算单元中的重要模块,基础的加法器架构包括行波进位加法器(Ripple Carry Adder),超前进位加法器(Carry Look-Ahead Adder),进位选择加法器(Carry Select Adder)等。加法器的进位传播是其组合延迟的主要来源,在现代的高性能计算中,快速的加法器结构可以决定系统的运行,为了降低进位传播延迟,大部分现代加法器结构会采用并行前缀加法器(Parallel Prefix Adder)

并行前缀加法器根据拓扑的不同,可以分类为不同的类型,类如Kogge Stone Adder,Sklansky Adder,Brent Kung Adder,Han Carlson dder,Lander Fischer Adder等。不同的拓扑会具备不同的延迟、面积、功耗属性,需要在设计中酌情考虑。

并行前缀加法器的原理

并行前缀加法器通过三个基本阶段来实现加法操作,分别为:

  1. \(P_i\)与\(G_i\)的预运算
  2. 进位传播网络
  3. 后运算

第一个阶段是\(P_i\)与\(G_i\)的预运算,用于根据输入\(A\)和\(B\)的对应相加的每对比特产生生成(generate)和传播(propagate)信号,根据公式:

\[p_i=a_i \oplus b_i \]

\[g_i=a_i \cdot b_i \]

第二个阶段的进位传播网络是不同拓扑的进位前缀加法器产生延迟、面积、功耗差异的来源,对加法器起到决定性因素,其包含了处理单元和缓冲单元,更少的处理单元意味着更小的延迟,而缓冲单元的输出则与输入相同。处理单元的输出为:

\[g_{i,k}=g_{i,j}+p_{i,j}\cdot g_{j-1,k} \]

\[p_{i,k}=p_{i,j}\cdot p_{j-1,k} \]

image

第三阶段的后处理单元完成最终的求和与进位运算:

\[s_i=p_i\cdot g_{i-1,1} \]

\[c_{out}=g_{n,1} \]

关于这里的标号的含义,可以参考下图:

image

假定一个8bit的加法器结构(这个拓扑本质上是一个串级加法器),一共产生了8对初始的\(p_i\)和\(g_i\),这里\(i=1,2,3,4\dots 8\),除了进位链上的第一个处理单元之外,每个处理单元接收两对\((p,g)\)的输入,为了标记两对输入的来源,我们采用一对标号进行表示,第一个标号表示处理单元处于第几位的箭头上。第二个标号表示了这对\((p,g)\)能够"溯源"到第几位的箭头上,即我们直接观察该输入对所属的进位传播链的源头对应在第几位的箭头上。例如对于进位传播链上的最后一个处理单元,他的两对\((p,g)\)对的输入,分别应该对应\((p_8,g_8)\),根据前面所述规则,可以看作是\((p_{8,8},g_{8,8})\)和\((p_{7,1},g_{7,1})\),并根据处理单元的公式,产生\((p_{8,1},g_{8,1})\),根据后处理单元的公式,这一位的\(s_8=p_8\cdot g_{7,1}\),同时最终的进位为\(c_{out}=g_{8,1}\)。

从根本的数学原理上来说,实际上并行前缀加法器与超前进位加法器一致,基于相同的进位比特产生方程式。因为超前进位加法器属于教科书上基本都会讲解的加法器结构,这里不对其细节再做赘述。

并行前缀加法树的拓扑

在上一小节中我们提到了根据进位传播网络的不同,并行前缀加法器可以形成不同延迟、面积、功耗属性的拓扑。具体来说,这里以8bit加法器为例简单展示几种:

Kogge Stone Adder:

image

Sklansky Adder:

image

Brent Kung Adder:

image

对于不同拓扑的比较可见下表,在TSMC 90nm工艺下,以64bit位宽加法器作为对象,不同拓扑的属性情况:

image

可以看出,在延迟上Kogge Stone拓扑具有最显著的优势,而Brent Kung拓扑虽然在延迟上表现最差,但具有最优的面积和功耗。面积和功耗可以理解为受到处理单元个数的影响,而延迟则受到最大延迟传播链上处理单元数量的影响,从上面展示的图中可以显著的看出各个拓扑的差异。

并行前缀加法器的发展方向

由于AI的快速发展,高性能计算的需求暴涨,如何设计出合理的拓扑满足延迟、面积、功耗的平衡是一个复杂的问题。

在ISSCC2024的Plenary上,英伟达介绍了他们通过结合了强化学习策略实现的PrefixRL工具在并行前缀的拓扑上取得了比现有SOTA EDA工具更好的优化效果,实现了综合面积、延迟更好的并行前缀加法器电路。PrefixRL工具被用于了Hopper GPU中接近13000个电路的设计。

image

此外对于具备一定的容错性的计算负载,可以通过近似计算的优化手段来牺牲计算准确度换取更好的综合性能表现,Morgana Macedo Azevedo da Rosa等人提出了一种近似并行前缀加法器结构,在相同的MRED(平均相对错误距离)下,取得了相对于传统近似加法器结构,如LOA,Trunc,ETAI等更好的能耗和面积节省。

image

参考文献

  1. "A Comparative Analysis of Parallel Prefix Adders", Megha Talsania et. al.
  2. "Parallel Prefix Adders- A Comparative Study For Fastest Response", Er. Aradhana Raju et. al.
  3. "Parallel prefix adders", KostasVitoroulis
  4. "AxPPA: Approximate Parallel Prefix Adders", Morgana Macedo Azevedo da Rosa et. al.

标签:前缀,处理单元,并行,Prefix,加法器,Adder,Parallel,进位
From: https://www.cnblogs.com/sasasatori/p/18662877

相关文章

  • Peft框架不提供merge_and_unload方法,如何进行peft方法和Base model的合并?以prefix tun
    Merge_peft_methods_prefix_and_prompt_tuning问题描述我想要把prefixtuning,prompttuning训练的参数和basemodel模型的参数合并,但是huggingface的peft框架只有lora存在merge_and_unload方法,其他的peft方法没有。那应该怎么办呢?这就是本文想解决的问题,把笔者踩得坑记录......
  • PD19 Parallels Desktop 虚拟机 安装Windows10系统 操作步骤(保姆级教程,轻松上手)
    PD19ParallelsDesktop虚拟机安装Windows10系统操作步骤(保姆级教程,轻松上手)ParallelsDesktop19,是一款Mac虚拟机软件,能在搭载Intel或Apple芯片的任何Mac上运行Windows,体验不同操作系统之间的无缝集成。使用ParallelsDesktop19forMac不断创新。在您的Mac中......
  • pd虚拟机 [po] Parallels Desktop 20 激活 for Mac [jie] 安装教程【支持M芯片】
    pd虚拟机[po]ParallelsDesktop20激活forMac[jie]安装教程【支持M芯片】ParallelsDesktop20,是一款Mac虚拟机软件,在搭载AppleM系列芯片的任何Mac上运行Windows,体验不同操作系统之间无缝集成。使用ParallelsDesktop20forMac体验macOS和Windows的双重最优......
  • Parallel.ForEach与for与foreach效率问题
    做到物流分拣项目,处理格口数据报警状态问题,使用了并行Parallel.ForEach。后面做了下几个循环的效率,也记录了一下;  循环体内不做任何事情时,发现Parallel.ForEach更耗时。Parallel.ForEach不是并行的吗,怎么会更耗时呢?颠覆了认知。。。。别急:这是因为循环体内执行的任务开销太......
  • Sigrity System SI Parallel Bus Analysis模式进行DDR3 FlyBy拓扑地址组仿真分析-4个
    SigritySystemSIParallelBusAnalysis模式进行DDR3FlyBy拓扑地址组仿真分析-4个颗粒SigritySystemSIParallelBusAnalysis模式提供了简易的已搭建好的模板,方便用户直接在模板上替换数据文件进行仿真分析,下面介绍addr_bus_sparam_4mem模板的使用,是一个4颗粒的Fly-By......
  • 【优选算法】Prefix-Kage:前缀和的算法影(下)
    文章目录1.前缀和+后缀和1.1寻找数组的中心下标1.2除自身以外数组的乘积2.前缀和+哈希表2.1和为k的子数组2.2和可被k整除的子数组2.3连续数组3.二维前缀和拓展3.1矩阵区域和希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力!本篇是前缀和算法......
  • 解析大模型常用微调方法:P-Tuning、Prefix Tuning、Adapter、LoRA
    作者:王海原文:https://zhuanlan.zhihu.com/p/7474042360预训练大模型虽然具有强大的泛化能力和广泛的知识,但它们通常是针对大量通用数据集进行训练的,这使得它们在处理特定任务时可能无法达到最佳效果,比如ChatGPT、混元、文心一言在回答一些常识性问题时表现的非常出色,但在物理......
  • Sigrity System SI Parallel Bus Analysis模式进行DDR3仿真分析-传输线模型带VRM
    SigritySystemSIParallelBusAnalysis模式进行DDR3仿真分析-传输线模型带VRMSigritySystemSIParallelBusAnalysis模式提供了简易的已搭建好的模板,方便用户直接在模板上替换数据文件进行仿真分析,下面介绍data_bus_welem_vrm模板的使用,具体操作如下双击启动SystemS......
  • DTS202TC Foundation of Parallel Computing
     Modulecode andTitleDTS202TCFoundationofParallelComputingSchoolTitleSchoolofAIandAdvanced ComputingAssignmentTitleIndividual Assessment 2Submission DeadlineFriday Dec. 20th, 2024@ 11:59pmFinalWord ......
  • ACL与Prefix List(前缀列表)
    匹配工具一般搭配其他操作,可实现NAT,路由策略,策略路由,MQC,流量过滤等操作通配符掩码我们都知道子网掩码的1是精确匹配,1是大致匹配,1必须连续我们也知道反掩码的1是大致匹配,0是精确匹配,0必须连续那么通配符掩码其实和反掩码很像,ta的0也是精确匹配,1也是大致匹配,但与前两者不同......