ACAM:基于在线学习的自适应近似计算

ACAM:基于在线学习的自适应关联记忆近似计算

物联网络(IoT)极大地增加了包括多媒体在内的许多应用所需处理的数据量。与传统计算环境不同,IoT的工作负载随时间变化显著。因此,需要高效的运行时分析来提取高频计算,并将其预先存储以用于基于内存的计算。本文提出一种使用低成本自适应关联记忆(ACAM)的近似计算技术,该技术利用运行时学习和分析。为了识别实际应用中数据的时间局部性,我们的设计采用结合最近最少使用(LRU)策略的强化学习算法来选择待分析的图像;分析器通过近似并发状态机实现。分析结果随后被存储到ACAM中以供计算复用。由于所选图像代表了观测到的输入数据集,借助关联存储器中表现出的高命中率,我们可以避免冗余计算。我们在最新的AMD南方群岛 GPU架构上对ACAM进行评估,实验结果表明,该设计在图像处理应用中实现了34.7%的节能,同时保持可接受的服务质量(即 PSNR>30dB)。

1. 引言

迈向物联网(IoT)和大数据计算显著增加了现代处理器上输入数据的规模。在这一时代,许多物联网工作负载将在移动设备或数据中心等云环境中的GPU上运行。特别是多媒体处理作为物联网工作负载的一个实例已迅速普及,为了满足实时性能需求,需要利用高效的大规模并行处理器 [1, 2] 进行加速。此外,由于数据集局部性,类似的计算会反复发生,从而为基于内存的计算 [3] 显著减少计算量提供了机会。为此,已采用以查找表形式存在的关联存储器来减少冗余计算的数量。一种软件实现方式是将频繁模式预存储在哈希表中,并通过一组键进行检索,以替代原始计算。为了提升查找表的性能,可以使用三元内容寻址存储器(TCAM)在硬件中实现关联存储器。

然而,要在存内计算[4],中使用TCAM,存在两个技术挑战。首先,系统设计必须考虑到实际工作负载会随着时间、地点和应用等不同上下文快速变化。市场研究表明,使用传感器应用与外部环境进行交互的需求显著增长。因此,显然在设计时通过离线数据填充关联存储器无法提供理想的命中率[5]。由于当今的交互式物联网工作负载需要一种上下文感知的关联存储器,能够适应环境变化。因此,运行时分析是关联存储器在并行处理器上实际部署的关键组成部分之一。其次,基于CMOS的 TCAM在搜索操作中消耗大量能量,这限制了这些存储器在分类和 IP路由[6]中的适用性。非易失性存储器(NVM)为高效的基于内存的计算[7]开辟了新的领域。阻变随机存取存储器(ReRAM)和自旋转移矩存储器(STT‐RAM)分别是基于忆阻器和磁隧道结(MTJ)器件的两种低漏电、高密度非易失性存储器。此外,基于NVM的 TCAM还可以通过应用电压超缩放(VOS)[8]或降低搜索切换活动 [9]进一步减少能耗。

本文提出了一种基于自适应关联存储器(称为ACAM)的新型近似计算框架,该框架具备基于学习的运行时分析能力。所提出的架构还解决了关联存储器在在线学习中的耐久性和成本问题,从而为并行处理器架构上的各种动态工作负载提供了稳健且实用的解决方案。我们的设计目标是寻找命中率更高的最佳输入数据,以自适应地填充关联存储器的行,从而提升整体能效。基于学习的分析按以下步骤运行:(i)机器学习算法根据像素相似度从输入数据集中找出感兴趣图像,并依据所提出的TD‐LRU策略识别最具代表性且可能在近期被使用的数据进行分析。(ii)我们基于一种低成本的近似并发状态机对选定的感兴趣图像进行分析,以跟踪重复计算的次数。这种近似分析通过哈希函数和布隆过滤器实现,在引入可接受的最小误差的同时提升了能效。在电路级设计中,为应对频繁运行时更新导致的耐久性和寿命问题,ACAM采用了高耐久性、鲁棒的基于磁隧道结的内容可寻址内存(MTJ‐based TCAM)和存储块。此外,我们对关联存储器的部分区域应用近似技术,以平衡能效与精度之间的权衡。得益于所提出的高效运行时分析方法,并行处理器能够借助自适应关联存储器高效处理大规模活跃数据集。我们的评估结果表明,所提出的ACAM在图像处理应用中使通用图形处理单元(GPGPU)的能效提升了34.7%,同时保持了可接受的峰值信噪比(PSNR)超过30dB。

2. 相关工作

阻变存储器(ReRAM)和STT‐RAM等非易失性存储器是设计高效且低漏电功耗关联存储器[7][10][11]的优良候选方案。早期的研究工作已利用这些ReRAM和STT‐RAM技术来设计稳定高效的TCAM。然而,ReRAMs的耐久性限制在 10^6‐10^7次写入操作,而 STT‐RAMs的耐久性非常高(>10^15)[12]。因此,提出了高效的基于磁隧道结的内容可寻址内存单元以解决ReRAM的耐久性问题[13]。

随着高效TCAM设计的发展,关联存储器利用大量的模式相似性来减少计算量[5, 14‐17]。在这种存内计算技术中,关联存储器由两个主要模块组成:用于输入查找表的TCAM和用于存储输出数据的存储器。由于流式核心在执行带有操作数(例如,“add $r1, $r2”指令中的 $r1和$r2)的指令时处理工作负载,TCAM会预存储频繁输入模式的一些操作数,而相应的输出则存储在存储器中。在实际计算过程中,已执行指令的输入操作数会与所有TCAM行并行比较,一旦发生命中(如果存在),系统便通过时钟门控技术停止处理器的计算。随后,匹配线上的信号将激活存储器中对应的行,以检索计算的输出结果。

基于NVM的关联存储器的低功耗特性推动了基于内存计算的多种应用场景,包括查询处理[18],搜索引擎、文本处理[19],图像处理[20],模式识别和数据挖掘[21]。

最近的研究主要致力于利用基于内存的计算来提高计算效率。在 GPU中,Zhang,et al. [22]利用电压过缩放(VOS)实现“不精确”的浮点运算单元(FPUs)。然而,当应用VOS时,基于SRAM的查找表等不精确模块会面临较高的错误率[22]。Rahimi,et al. 在[17]中使用基于忆阻器的查找表以增加GPGPU中的计算重用。Imani et al. 提出了一种可配置近似关联存储器架构,通过应用选择性电压过缩放来降低TCAM的能耗[8]。多访问单电荷TCAM通过减少对内容寻址存储器(CAM)的更新次数来降低搜索能耗[23, 24]。多级搜索关联存储器是另一种设计,它利用选择性行激活和提前预充电技术,分别改善能耗并减轻顺序访问带来的开销。这些先前的基于非易失性存储器的关联存储器由于阻性关联存储器的耐久性有限,在初始化 TCAM模块时使用离线分析数据,且不具备更新能力。然而,由于在实际中运行时数据集可能在不同上下文中发生显著变化,依赖有限样本量的设计时离线分析难以选择代表性数据集,因此并不适用。这限制了关联存储器在并行处理器上的应用适用性。

本文提出了一种具有在线学习能力的关联存储器,以解决在实际 GPU架构上实现近似计算的主要限制。在所提出的架构中,学习算法找到用于性能分析的最佳感兴趣输入数据集;然后,近似并发状态机在运行时对选定的输入进行性能分析。我们的评估表明,该设计基于在线学习显著提高了能效,尤其适用于具有大数据集的运行应用程序。

3. 所提ACAM的设计

在本节中,我们将详细描述所提出的近似计算框架ACAM。为了在 TCAM中填充高可重用性数据,该技术在运行时通过在线学习选择具有代表性的输入作为分析候选对象。该策略带来了两个主要优势。首先,通过考虑数据局部性自适应地填充TCAM,提高了TCAM命中率。因此,通过延长FPU处于时钟门控模式的平均时间,也提升了系统能效。其次,运行时分析使得在实际系统上实现基于内存的计算成为可能。例如,在处理多个应用程序以及设计时无法预知的新安装应用程序时,运行时分析能够动态选择代表性数据集。此外,我们还可以根据上下文更改TCAM中的预存数据。

示意图0

3.1 面向GPU的关联存储器设计

在我们提出的通用图形处理单元架构中,我们考虑的关键指令包括:加法器(ADD)、乘法器(MUL)、平方根(SQRT)和乘积累加器(MAC)。每条指令在每个流式核心的四个浮点单元(FPU)上执行。在每个流式核心旁边,我们部署了四个分别对应每种计算的关联存储器。ADD和MUL提供两个32位输入操作数,SQRT提供一个32位操作数,MAC提供三个32位操作数。每个关联存储器的每一行都保存已分析的操作数特征。由于分析器旨在为频繁出现的操作数生成特征,因此GPU处理能够更有可能重用关联存储器中预存的输出。

示意图1

图2展示了所提出的关联存储器的关联存储器结构。该存储器由三个模块组成:哈希函数、TCAM和STT‐RAM。首先,当每条指令在各个浮点运算单元上使用操作数执行时,哈希函数生成操作数的特征,然后通过所有内容可寻址存储器行搜索该签名。利用TCAM技术,此搜索操作可在单个周期内完成。任何内容可寻址存储器行的命中将通过激活时钟门控模式来停止处理器计算。最后,TCAM命中激活 STT‐RAM内存中相应的行,以读取预先计算的输出数据。

在这种存储器设计中,存在一个关键的技术挑战,即在运行时更新过程中可能产生的问题。大多数高速且稳定的TCAM采用阻变存储器设计,而这些存储器的寿命限制为10^6‐10^7次写入操作。有限的耐久性使得TCAM难以应用于频繁更新的场景。为了设计一种适用于频繁运行时更新的高效关联存储器,我们采用了具有高耐久性的 MTJ‐based TCAM。然而,大多数基于MTJ的TCAM(例如 6T‐2MTJ)存在感应裕度低和搜索延迟长(~2.1ns)的问题。因此,为了提升搜索操作的性能,我们采用了5T‐4MTJ TCAM结构[16],该结构还具备互补搜索操作的能力。5T‐4MTJ将单元的感应裕度提高至240mV,并增大了匹配线(ML)的摆幅,从而实现低于1.3 ns的搜索操作。此外,5T‐4MTJ在执行搜索操作时仅消耗0.68飞焦每搜索每位的能量,具有很高的能效,适合自适应更新。如图2所示,数据通过MTJ1和MTJ2的值存储在内容可寻址内存互补结构上。在搜索操作中,驱动器对匹配线(MLs)进行预充电,随后SL和 SL‐bar信号激活访问晶体管。同时,字线(PL)驱动器将输入搜索信号施加到字线1(PL1)和字线2(PL2)上。当输入特征出现不匹配时,单元的中间节点(节点 A)变为零,流经晶体管M5的漏电流将使匹配线(ML)放电。

已分析的操作数特征的输出结果存储在STT‐RAM中,如图2右侧所示。STT‐RAM内存由一个晶体管和一个MTJ器件组成。在向 STT‐RAM写入时,使能线选择目标单元,并在位线上施加写电压。在读模式下,TCAM模块激活使能线值,以读取STT‐RAM中的对应行。STT‐RAM的灵敏放大器是基于电阻的,并与感应电阻(RSense)配合工作。

在大多数情况下,从字长和行数来看,较大规模的TCAM可以提供更高的命中率。然而,对于大规模的TCAM,高搜索能耗会降低总体处理能效,且较长的字长由于单元漏电而导致单元稳定性降低。此外,具有大量行的TCAM由于输入缓冲区速度较慢,会导致搜索操作的能耗较高且性能下降。因此,需要使用可重用数据(即具有高命中率概率的数据)填充TCAM行,同时补偿关联存储器的搜索能耗。接下来,我们将描述我们的学习与性能分析方法,以说明如何用高可重用性数据填充TCAM行。

3.2 基于在线学习的图像选择

为了高效利用基于内存的计算,在所提出的 GPU 上,AM 必须保留未来将出现的最佳预计算数据。然而,设计时对预存数据的决策无法适应工作负载变化。此外,即使在设计时拥有完整的大型输入数据集,由于应用和用户的多样性,在有限的存储区域内也无法保存所有有用的数据。因此,我们采用一种运行时分析方法。这里的主要挑战是如何选择适合作为未来计算分析依据的代表性输入数据集。我们的选择策略基于数据集的时间局部性进行设计。实际上,输入多媒体图像通常表现出两个重要特征:(i)相似图像组被反复处理;(ii)这些图像组会随着时间推移而发生变化,主要由于上下文变化,如一天中的时间或地点 [28]。例如,如果用户在夜间户外拍照,这些照片可被归类为背景以暗色为主的图像组。在这种情况下,流式核心上的计算也会相似,因此这些已计算数据非常适合被重用。随着时间推移,由于上下文的变化,图像组集合可能发生改变,从而影响代表性图像的集合。我们的图像选择策略称为 TD‐LRU,旨在应对这两个特性,如图3所示。

第一步是在定义图像组未来可用性的同时对其特征进行表征。我们利用时序差分(TD)学习 [29], 这是一种强化学习类算法。TD‐LRU 维护 k 个表示 k 个关注的图像组的状态。在每次迭代中,当给定一个输入图像时,每个状态会根据其与输入图像的像素相似度获得一个奖励值。例如,越相似的图像组获得的奖励值越高。更正式地说,对于 M 个状态 S1, S2, … SM,该算法管理一个向量 Vt=< Vt S1, Vt S2, …, Vt SM> ,其中每个向量元素在每次迭代 t 中记录各个跟踪状态的累积奖励值。一旦在第 t 次迭代中给出输入图像,每个元素 Vt Si 将按如下方式更新。

$$ Vt(Si) = Rt(Si) + \gamma \cdot Vt-1(Si) $$

在此方程中,Rt(Si)是输入图像与状态 Si (其中0 ≤ Rt(Si) ≤ 1)下跟踪图像之间像素相似度的奖励值,参数γ用于平衡所获得的奖励对先前 V值的影响。较大的γ在更新V值时会更多地考虑之前阶段的累积奖励,而较小的γ则优先考虑每个状态下当前奖励的影响。本文中我们将γ的值设为0.95。因此,一旦给定输入,每个状态将根据其像素相似度进行更新,同时更重视先前奖励。随着时间推移,频繁出现的图像组在向量中的值将更高,并被视为适合进行分析的良好候选。我们选择向量中前N个图像作为感兴趣图像(其中N ≤ M)。

为了考虑第二个特征,即图像组的时间局部性,我们维护另一个向量 Qt= ,该向量基于LRU(最近最少使用)策略跟踪图像组的时间访问模式。TD‐LRU将奖励小于阈值Tacc的图像视为未匹配状态。根据此标准,若为未匹配状态,则Qt Si增加1,否则重置为0。因此,长时间未被访问的图像组在该向量中将具有较大的值。在每次迭代中,如果所有当前状态的奖励均小于阈值Tnew,我们将该输入视为一个新的学习状态。在k个状态全部设置完毕之前,我们将新状态注册到这两个向量中。一旦向量已包含全部k个状态,新状态将触发替换策略,因此我们选择Qt Si 值最高的图像作为被替换项。为了给予新图像足够的分析机会,我们将新状态的V‐值设为V t的中位数值,从而使系统能够快速响应图像集的变化,例如由于上下文变化引起的变化。

示意图2

两个奖励阈值 Tacc 和 Tnew 为运行中的应用程序和工作负载提供了运行时可控性。例如,当处理器运行交互式工作负载,即图像组频繁变化时,较高的 Tacc 和 Tnew 值会鼓励更多新状态的替换。如果系统希望降低分析成本,可以选择较低的阈值,以避免已分析图像集的频繁变更。

3.3 近似分析器

我们提出的分析器运行在与主 GPU 计算并行,以跟踪学习所选图像的频繁操作数模式。这将需要大量内存用于存储每个操作数及其计数以确定操作数的排名。此外,还需要较高的计算开销,包括性能和能量方面的开销,来搜索操作数是否已被计数。运行时分析的高开销可能会大到掩盖基于内存的计算的优势。因此,所提出的分析器以近似方式识别频繁操作数模式,以最小化分析开销,但会牺牲准确性。我们使用一个近似并发状态机 [25, 26]。该并发状态机利用布隆过滤器,通过k个哈希函数生成输入特征。签名被保存在一个m位的向量上。系统误差由向量的大小和成员度定义,成员度表示可能具有相同签名值的操作数的数量。当有n个成员时,误报错误由以下公式给出:

$$ gf = (1 - e^{-nk/m})^k $$

在使用三个哈希函数生成6万个不同的128位长度签名的评估中,我们对操作数的频率模式进行性能分析所需的内存空间比精确分析情况低5倍。由于我们只需要近似找出频繁操作数的列表,而不需要其精确排名,因此仍能以可接受的5.3%误差率识别出频繁操作数的签名。因此,我们可以在对最终处理器计算结果影响较小的情况下显著加速性能分析。

根据分析结果,我们使用每种FPU操作的前l个输入操作数来更新 TCAM行。由于我们为通过TD‐LRU选择的多个代表性图像填充行,每个图像在未来出现的概率不同。我们还通过为每个图像分配不同数量的内容可寻址存储器行来考虑这一因素。我们利用TD‐LRU生成的向量Vt ,使得更频繁出现的图像组获得更高比例的行。对于由N个分析状态组成的图像状态 Si ,分配比例PS i按如下方式计算:

$$ PS_i = \frac{V_t(S_i)}{\sum_{j=1}^{N} V_t(S_j)} $$

例如,对于图像状态为V t Sa= 0.4的频繁分析的操作数,其所需的行数是另一个图像状态为V t Sb= 0.2的操作数的两倍。这种分配策略通过为频繁出现的图像组分配更高比例的TCAM行,从而提升了命中率。

4. 实验结果

4.1 实验设置

为了评估所提出的ACAM框架,我们在基于Multi2Sim周期精确处理器模拟器[30]的最新AMD南方群岛GPU架构上进行了实现。例如,Radeon HD 7000系列即基于该架构设计。需要注意的是,我们提出的设计可适用于大多数现代GPU架构。对于电路级仿真,我们使用HSPICE工具设计了TCAM阵列和STT‐RAM内存,并采用NVsim工具[31]估算内存访问能耗。六级平衡FPU在45纳米ASIC流程中使用Synopsys设计编译器设计,并根据对应TCAM延迟对FPU进行了功耗优化。所提关联存储器的能耗计算采用了文献[13]中的详细仿真参数(如尺寸、电阻和电容等),并通过Multi2Sim模拟器提取的计算次数来计算流处理器的总能耗。

我们维护10个图像状态用于在线学习,并选择前五幅图像进行运行时分析(即M=10和N=5)。通过经验设定两个阈值:Tacc = 0.1 和 Tnew = 0.3。为降低像素相似性计算的运行开销,在学习阶段将图像尺寸缩小一半(即宽度和高度均为原图的1/2)。即使经过下采样,仍能获得足够准确的相似性度量。为了识别程序何时在流处理器上开始执行工作负载,我们修改了AMD计算抽象层(CAL)。AMD CAL提供了一个运行时设备驱动程序库,允许主机程序在流处理器上执行内核(主机程序的程序实例)。因此,我们可以在内核启动时对图像进行分析和学习,并并行更新所有计算单元的 TCAM。

我们使用了AMD APP SDK v2.5[32]中的四个OpenCL图像处理应用:Sobel、Robert、Sharpen和Shift。实验中,我们将所提出的ACAM与一种离线分析策略进行比较,该策略使用从整个数据集中随机选取5%构成的固定图像集预先计算并预存数据。为了评估技术在不同数据集大小(包括大量图像)下的表现,我们在100到4000张图像的多种输入数据集规模上测试了该技术。我们还使用了两种类型的数据集验证设计优势:(i) 局部性数据集和(ii) 随机数据集。对于局部性数据集,首先创建一个初始序列,使相似图像(如猫和蝴蝶)相邻排列,然后在数据集大小5%的窗口内随机交换两张图像,重复交换次数等于图像总数。相比之下,随机数据集的图像顺序完全随机。为了评估图像处理结果的准确性,我们将其与精确计算的黄金图像进行比较。

4.2 对准确性和开销的影响

如第3节所述,可通过调整哈希函数数量(k)和布隆向量大小(m)控制分析器的误报错误预期值。在我们的配置中,误报错误率为5.3%。为了理解该误差如何影响实际应用结果,我们在不同TCAM行大小下评估了PSNR值。表1显示了评估结果。由于当PSNR低于30dB时,认为Sobel和Shift应用不可接受[34],因此我们假设TCAM行数应限制在64行以内。例如,图4展示了Robert应用在原始计算(理想图像)和近似计算下的视觉结果,两者之间无明显差异。

表1. 不同应用和TCAM尺寸的峰值信噪比(PSNR)比较

应用 4行 8行 16行 32行 64行 128行
Robert 62 60 58 52 47 41
Sobel 59 49 46 41 39 28
Sharpen 64 62 58 55 51 46
Shift 47 41 38 35 31 26

示意图3

所提出的设计与原始GPU执行相比不会牺牲性能。性能分析和在线学习的额外步骤与GPU计算并行执行,且所提出的关联存储器设计使得基于内存的计算能够以与浮点运算单元相同的时钟频率运行。此外,由于内容可寻址存储器行数量极少(即少于64),面积开销可忽略不计。然而,由于学习、性能分析以及附加的关联存储器,所提出的ACAM可能增加能耗开销。因此,我们将在下一节中对能耗开销进行彻底评估。

4.3 命中率和节能比较

图5比较了在不同TCAM容量下,ACAM使用离线分析和运行时分析的命中率。实验使用包含1000张图像的局部性数据集。结果表明,所提方法在命中率方面始终优于离线分析,说明GPU有更高机会应用时钟门控。该结果表明,ACAM能够通过考虑系统迄今接收的全部数据集,自适应地将更优输入模式填入TCAM。此外,随着TCAM容量增大,命中率差异也更加显著,因为更大TCAM空间能保留更多从选定图像中重复使用的操作数。

为评估命中率对能耗的影响,我们将两种分析策略的节能效果与精确计算情况(称为Exact-FPU)进行比较。图6显示了GPGPU在不同关联存储器大小下的归一化能耗相对于Exact-FPU的情况。结果显示,所提出的ACAM平均可将GPGPU节能提升34.7%。此外,命中率水平显著影响GPU节能效果。例如,小尺寸TCAM(如2行)无法提供高命中率,因此近似技术对能耗改变不明显。然而,由于更大尺寸关联存储器具有更高命中率,所提ACAM在能耗方面始终优于离线分析策略,平均比后者多节省2.9倍能量。

为更好理解ACAM能耗情况,我们将能耗细分为两部分:浮点单元(FPU)与关联存储器中的能量计算(红色柱)以及考虑内存访问的在线学习与分析的能耗开销(黑色柱)。对于离线分析和运行时分析,最低能耗点均出现在TCAM容量的中间范围。离线分析策略在约8行时表现出最小能耗点,而所提ACAM则在约16行时达到最小能耗点。这是因为在FPU与关联存储器之间存在能量权衡。在离线分析中,由于数据集固定,学习与分析能耗保持恒定。尽管更大TCAM容量可提供更高命中率,但也带来更高能量成本。然而,由于命中率更高,FPU可在更长时间内处于时钟门控模式,从而实现整体节能。例如,64行TCAM容量无法显著提升FPU命中率以补偿其自身能耗。因此,在本案例中,16行为实现最高节能的最佳设置。

此外,离线分析的最低能耗点在在线分析中向更大TCAM容量偏移(从8行到16行)。在线分析在更大TCAM容量下实现了更高命中率提升,表明其是实现更高能效的重要设计策略。

4.4 不同数据集的比较

图7展示了数据集大小从100增至4000时,针对离线分析和在线ACAM的GPGPU能效及ACAM命中率提升。为公平比较节能效果,对离线分析使用8行TCAM,对ACAM使用16行TCAM。图7显示,所提运行时分析在大规模输入数据集上表现出更高节能效果,这对近期物联网工作负载更具代表性。例如,对于最大数据集(4000幅图像),在线ACAM方法可通过考虑数据局部性及时自适应更新预存TCAM值。因此,在四个应用中,ACAM相比离线情况平均实现3.3倍更多的节能提升。此外,随着数据集增大,分析能耗开销变得更低。由于ACAM仅在代表性图像状态变化时进行工作负载分析,因此在选定图像足以代表整个数据集前需频繁分析;一旦在线学习充分覆盖数据集,分析次数趋于饱和。因此,所提ACAM技术在需处理大量工作负载的实际应用中表现更优。

然而,离线分析的简单采样方法无法识别合适分析图像,导致命中率较低。因此,与ACAM相比,低命中率降低了GPGPU能效。相比之下,对于小规模数据集(如100),两种策略命中率差异较小。由于离线方法具有零分析能量开销,其能效更优。但随着数据集增大,离线方法节能效果下降,即使其通过分析5%数据集获取知识。由于TCAM大小在设计时受限(如本例中64行),离线分析无法容纳足够多高频模式,限制了命中率提升。相比之下,在线分析方法能基于时间局部性自适应更新TCAM,从而实现高命中率和节能。

示意图4

示意图5

为理解ACAM在不同数据局部性水平下的工作情况,我们也使用无数据局部性的随机数据集对ACAM框架进行了评估。通常多媒体应用具有高时间局部性,但少数应用可能处理局部性低的数据集。本实验中定义度量指标为随机与局部性数据集下GPGPU能耗差异,每种能耗均归一化到Exact-FPU情况。表2列出了不同数据集大小下所有应用的结果。直观来看,ACAM在局部性数据集上表现更优,因其TD-LRU旨在优化发现数据局部性。随着数据规模增加,能耗差异也增大,因在线学习算法能基于局部性做出更好图像选择决策。因此,最大数据集实现最佳节能效果,因学习算法有更大机会找到相关分析图像。但我们还观察到,即使在随机数据集上,ACAM也能节省GPGPU能耗并优于离线分析策略。这是因为学习算法还能识别不同图像状态下的图像,从而选择覆盖整个数据集中更多代表性图像的操作数。

表2. GPGPU 能效差异归一化(ΔE)使用局部性和随机数据集

数据集大小 100 500 1000 2000 3000 4000
Robert 0.04 0.04 0.07 0.09 0.11 0.13
Sobel 0.02 0.06 0.13 0.15 0.16 0.18
Sharpen 0.05 0.08 0.14 0.17 0.19 0.21
Shift 0.04 0.05 0.09 0.11 0.12 0.14

示意图6

5. 结论

本文提出了一种基于自适应关联记忆(ACAM)的近似计算框架,具备基于在线学习的运行时分析能力。为支持关联存储器的运行时更新,所提技术利用基于磁隧道结的TCAM存储器(MTJ-based TCAM memory),解决了阻变TCAM耐久性低的问题。在该技术中,使用机器学习算法根据提出的TD-LRU算法找出最佳感兴趣图像。此外,实现了近似并发状态机以对选定输入图像进行分析,将分析开销减少约5倍,同时保持5.3%的低错误率。我们在AMD Southern Islands GPU上的实验结果表明,所提设计平均实现34.7%的节能,是离线分析情况下的2.1倍,同时提供可接受的服务质量。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值