跨层近似框架:技术与应用解析
1. 跨层近似面临的挑战
在众多可选的近似算术单元中选择合适的单元,以满足应用输出的质量要求,是一项具有挑战性的任务。特别是在使用机器学习模型预测应用最终输出时,若模型在新的近似电路上表现不佳,问题会更加突出。为解决这一问题,我们对近似有符号乘法器进行误差分析,通过一组参数来表示每个组件,从而能够为任意输入数据集估计乘法器的近似结果。这些参数将用于高级行为框架,以训练机器学习模型,快速估计给定跨层自由度配置下应用的输出质量。
2. 近似乘法器的误差分析
2.1 与应用无关的误差分析
我们考虑了曲线拟合和多项式回归(PR)技术,用一组唯一的参数来表示每个近似乘法器。
-
曲线拟合技术
:使用非线性最小二乘法,将函数“f”拟合到近似乘法器的所有输入组合结果上。该函数利用一组参数来减少实际近似乘积与拟合结果之间的误差。然而,由于可用乘法器存在各种类型的近似,单一函数无法准确估计所有乘法器。为确定可行的拟合函数,我们使用多种数据分布对所有近似乘法器进行分布拟合,并使用Kolmogorov - Smirnov(K - S)拟合度指标评估其有效性。我们为每个近似乘法器选择前五个分布来实现相应的拟合函数。但实验表明,基于正态分布的函数拟合与实际误差值存在显著偏差,其他乘法器使用各种拟合函数时也观察到实际和估计统计误差指标之间的巨大差异。
-
多项式回归技术
:PR技术利用度参数表示用于估计目标函数的系数数量。例如,对于输入为x和y的近似乘法器,2度PR生成六个系数(c0 - c5),如以下方程所示:
[f (x, y) = c0 + c1x + c2y + c3x^2 + c4xy + c5y^2]
通过训练这些系数,使乘法器所有输入组合的实际输出和估计输出之间的平方误差之和最小化。我们还评估了PR模型在8位近似加法器上的有效性,结果显示,PR模型的估计误差(MAE)低至18%,而曲线拟合技术的估计误差(MAE)高达84%。误差分析结果表明,PR技术对近似乘法器的估计效果优于曲线拟合技术。
以下是一个简单的流程说明:
1. 收集近似乘法器的所有输入组合结果。
2. 对这些结果进行曲线拟合,使用非线性最小二乘法找到合适的函数“f”。
3. 使用多种数据分布进行分布拟合,用K - S指标评估拟合效果。
4. 采用PR技术,根据度参数生成系数,训练系数以最小化误差。
5. 比较曲线拟合和PR技术的估计误差。
2.2 与应用相关的误差分析
行为误差估计是CLAppED中最具应用特定性的分析阶段。虽然这里以高斯平滑应用为例进行测试,但该框架原则上是与应用无关的。通过通用设计空间探索(DSE)方法与应用特定估计方法之间的适当接口,该框架可用于任何任意应用。
-
高斯平滑的行为误差估计
:我们实现了一个二维(2D)卷积版本,集成了不同自由度(DoF)的影响,如缩放、步长变化(有或无下采样)、卷积模式(2D或1D - 水平(1DH)→1D - 垂直(1DV))以及使用不同的近似乘法器。通过在一组图像上执行相应的可执行文件,可以直接评估这些DoF的任意配置的影响。
-
监督ML模型的应用
:我们提供了一个接口,使用在一组随机生成的配置上训练的监督ML模型,来预测新的跨层近似配置下应用的输出质量。我们使用各种可用的DoF生成输入配置,为ML模型生成训练和测试数据。对于训练和测试集中的每个配置,我们实现应用的行为函数以生成相应的真实标签(实际输出)。
与之前的方法相比,CLAppED框架允许在加速器配置中使用异构的近似算子组合,提供了更详细的加速器设计空间探索。之前的应用级ML模型考虑的是同质加速器设计,而CLAppED框架提供了粗粒度和细粒度的近似算子排列。
然而,使用N位标识符方法存在两个局限性:
- N位字符串与相应算术运算符的功能之间没有特定关联,这限制了算法(特别是ML模型)理解运算符功能和评估其影响的能力。
- 实例化近似乘法器的行为模型进行乘法运算的计算量很大,会显著增加探索时间。为解决这些问题,CLAppED框架利用PR系数来识别和实现每个近似算子的功能,PR系数的值定义了算子的功能,有助于ML模型评估其对应用输出质量的影响。
3. 加速器性能估计
加速器性能估计是CLAppED的架构特定设计方法,包括以下几个阶段:
1.
设计加速器
:设计可用于应用的各种加速器,只考虑那些可能导致不同加速器架构的DoF,而不考虑算子级近似。例如,在高斯平滑的2D卷积示例中,改变窗口大小或卷积模式会导致不同数量和类型的加速器。我们实现了基于行缓冲的滑动窗口加速器,用于2D、1DH和1DV操作,HLS设计支持奇数窗口大小和不同步长的变化。
2.
考虑算子特定近似
:考虑在加速器中使用算子特定近似的影响,我们对来自特定库的近似有符号乘法器进行加速器表征。需要注意的是,这里不探索HLS指令的影响,仅配置近似乘法器和其他应用特定的DoF。
3.
ML - 基于的性能预测
:由于使用综合工具进行实际性能估计非常耗时,我们采用ML - 基于的性能预测方法来估计硬件指标。对于2D卷积,每个性能指标模型的维度是以下特征的子集:输入图像大小、步长、下采样标志以及设计中每个乘法运算的精度和类型。实际和ML - 基于的方法为CLAppED的DSE方法提供了不同结果质量和估计时间的替代方法。
以下是加速器性能估计的mermaid流程图:
graph LR
A[设计加速器] --> B[考虑算子特定近似]
B --> C[ML - 基于的性能预测]
4. DSE方法
之前描述的误差和加速器性能估计方法可用于任何基于随机算法的优化,如遗传算法(GA)和模拟退火。但这些方法通常需要评估大量配置,如果适应度函数的评估时间长,会导致DSE时间增加。相比之下,贝叶斯优化(BO)提供了更有针对性的搜索方法,并且可以从更快的设计点评估中受益。我们实现了多目标贝叶斯优化(MBO)作为CLAppED中的DSE方法。
-
优化问题建模
:我们将跨层近似设计建模为一个优化问题,实现了一个框架,允许使用新颖的ML - 基于的估计方法作为低成本的适应度函数,以实现更快的DSE。我们为每个设计目标生成多个概率模型,例如在应用准确性和LUT利用率的联合优化中,代理函数由两个目标的单独概率模型(高斯过程回归)组成。
-
采集函数的实现
:采集函数的实现包括生成随机的跨层近似配置,然后使用代理函数中的相应概率模型预测其目标指标,并根据其排他超体积贡献对样本进行排名。将固定数量的排名靠前的样本添加到下一次迭代的配置集中。
-
估计方法的选择
:之前的章节介绍了真实和ML - 基于的估计方法,真实估计涉及报告具有跨层近似配置的加速器实际实现的指标。这两种方法仅作为目标函数的替代方法。代理函数基于概率模型,但与目标函数中使用的模型不同,它独立于被测应用。该框架允许设计者在目标函数评估期间独立选择误差和硬件性能估计的方法(真实/ML - 基于)。如果使用ML - 基于的方法,DSE结果可用于邻域搜索,并进行实际评估以进一步提高结果质量。
以下是DSE方法的操作步骤:
1. 将跨层近似设计建模为优化问题。
2. 为每个设计目标生成概率模型。
3. 实现采集函数,生成随机配置,预测目标指标,排名样本。
4. 选择估计方法(真实/ML - 基于)进行目标函数评估。
5. 若使用ML - 基于的方法,进行邻域搜索和实际评估。
跨层近似框架:技术与应用解析
5. 实验设置与工具流程
实验涉及概率分析和硬件设计。基于高级综合(HLS)的加速器设计使用C++实现,并使用Xilinx Vivado Design Suite进行综合。所有设计均针对Xilinx Zynq UltraScale + MPSoC(xczu3eg - sbva484 - 1 - e设备)实现。概率分析(包括曲线拟合、多项式回归(PR)、应用级基于ML的建模以及基于MBO的DSE方法)使用Python实现,借助了多个包,如scikit - learn、TensorFlow和PyGMO。
6. 行为分析
6.1 PR模型对近似乘法器输出的预测效果
PR模型预测近似乘法器输出的有效性通过其决定系数$R^2$来衡量。$R^2$值接近1表示模型对实际输出的拟合良好。PR模型的复杂度由其度参数定义。在对近似乘法器的误差分析中发现,至少3度的PR模型能对实际近似结果进行显著准确的估计。而且,训练后生成的所有系数并非具有同等重要性。我们可以分析特定度的PR模型下所有乘法器的生成系数,并对其整体重要性进行排名,然后去除不太重要的系数。
例如,对七个近似乘法器的平均绝对相对误差进行比较,使用3度PR模型,通过仅使用8、6和5个训练系数(分别表示为Clipped_8、Clipped_6和Clipped_5)来估计近似乘法器。结果显示,PR模型对实际平均相对误差值的估计相当准确,平均差异为15%。Clipped_5图表显示,所考虑的乘法器的估计值平均仅下降0.06%。
我们还可以利用训练系数的排名,实现使用减少数量的系数重新训练的自定义PR模型。以mul8s_1L1G乘法器为例,比较使用不同数量系数(C2 - C9)重新训练时的平均相对误差和最大误差。结果表明,仅使用2和3个系数(C2和C3)的PR模型与相应的近似结果有较大偏差,表现得像精确乘法器;而具有超过三个系数的PR模型产生较高的$R^2$值,能有效表示近似乘法器。对于mul8s_1L1G,增加系数数量超过6对PR模型的准确性没有影响。这种对使用适当数量系数的精细控制有助于降低用于估计应用行为准确性的ML模型的复杂度。
以下是不同系数数量下PR模型效果的表格:
| 系数数量 | 平均相对误差表现 | 最大误差表现 | $R^2$值 |
| ---- | ---- | ---- | ---- |
| 2(C2) | 偏差大 | 偏差大 | 低 |
| 3(C3) | 偏差大 | 偏差大 | 低 |
| 4(C4) | 接近实际值 | 接近实际值 | 高 |
| 6及以上 | 稳定 | 稳定 | 高 |
6.2 MLP模型预测应用输出准确性
为预测各种自由度(DoF)对应用输出准确性的影响,我们使用了基于多层感知器(MLP)的模型。该模型用于预测在随机跨层近似DoF配置下实现噪声去除的准确性,并与黄金配置进行比较。模型使用包含2000个配置的输入数据集进行训练和测试,这些配置包含所考虑DoF的各种均匀分布组合。模型使用输入数据集的80%进行训练,20%进行测试,并且在训练阶段使用20%的训练数据集进行验证。
在表示应用卷积核中的九个乘法器时,我们使用了基于索引、误差指标和PR系数的方法:
-
基于索引的方法
:为每个乘法器分配一个唯一的随机值进行标识。这种方法在训练和测试阶段产生的平均绝对误差(MAE)最高,分别为6.37和13.12,表明模型无法识别乘法器索引与近似乘法器对输出质量下降影响之间的相关性。
-
基于误差指标的方法
:使用每个乘法器的四个统计误差指标(最大绝对误差、平均相对误差、误差概率和均方误差)进行标识,记为M4;也尝试仅使用一个统计误差指标(记为M1)。M1和M4方法产生的MAE值低于基于索引的方法,例如M4方法在训练和测试数据集上的MAE值分别为3.5和5.0。
-
基于PR系数的方法
:使用PR系数表示乘法器显著提高了MLP模型的准确性。即使使用两个PR系数,MLP模型的训练和测试准确性也有所提高,MAE分别为3.2和5.46。C4(使用四个PR系数)、C5和C6表示的乘法器为MLP模型提供了最小的平均误差,例如C4方法在训练和测试数据集上的MAE值分别为1.4和2.4。然而,增加表示乘法器的系数数量会直接影响MLP模型的可训练参数总数,对于给定的数据集,C7 - C10表示的乘法器由于训练数据不足会降低模型的输出准确性。
以下是不同表示方法下MLP模型MAE的表格:
| 表示方法 | 训练MAE | 测试MAE |
| ---- | ---- | ---- |
| 基于索引 | 6.37 | 13.12 |
| M1 | - | - |
| M4 | 3.5 | 5.0 |
| C2 | 3.2 | 5.46 |
| C4 | 1.4 | 2.4 |
| C7 - C10 | 增加 | 增加 |
为进一步评估MLP模型的性能,我们使用了保真度指标。该指标表示输入配置与其相应实际和预测值之间的关系。结果显示,基于索引的方法产生的保真度最低,而C4 - C6表示的乘法器在训练和测试集上产生的保真度最高,分别为99.2%和98.9%。
在分析PR系数数量与MLP模型推理时间的关系时发现,平均而言,使用更多系数表示乘法器会使MAE降低,但推理时间增加。对于给定的MLP模型和测试数据集,C4方法在低MAE和推理时间方面产生了最佳结果。
此外,PR系数表示近似乘法器使MLP模型能够关联近似乘法器及其对应用输出准确性的影响,从而能够预测新乘法器(未包含在训练和验证数据集中)的应用输出质量。实验表明,即使测试数据集中包含未在训练数据集中出现的乘法器,基于PR系数表示的MLP模型仍能产生高输出准确性,保真度高达98.4%。
以下是MLP模型相关性能分析的mermaid流程图:
graph LR
A[生成输入配置] --> B[训练MLP模型]
B --> C[测试MLP模型]
C --> D{评估指标}
D --> E[MAE]
D --> F[保真度]
D --> G[推理时间]
综上所述,通过对近似乘法器的误差分析、加速器性能估计、DSE方法以及MLP模型的应用,我们可以更有效地进行跨层近似设计,提高应用的输出质量和加速器的性能。在实际应用中,我们可以根据具体需求选择合适的方法和参数,以实现最佳的设计效果。
超级会员免费看

403

被折叠的 条评论
为什么被折叠?



