目录
一、简介
1.题目:
KNMC: 基于近内存计算的 k-NN 和 k-means 加速器设计
2.时间:
2022.05
3.来源:
Journal of Chinese Computer Systems(小型微型计算机系统 )
4.简介:
K近邻和K均值算法在人工智能领域应用广泛,但由于这两种算法在应用过程中需要不断进行距离计算,不断访问片外DRAM,导致能耗非常大。论文中提出的KNMC是基于近内存计算的可配置加速器,对上述提到的两种算法均实现了有效的性能以及能效提升。
5.论文主要贡献:
(1)加速器KNMC能通过硬件重配置灵活支持K-NN与K-means算法加速。
(2)在近内存架构前提下,关注到了片上缓存与PE规模对于近内存加速器的效率影响,通过求解加速器能效与片上缓存、PE规模的最优化问题,探索最佳的规模配置。
(3)与前人的加速器相比,两种算法均得到了不同程度的性能加速与提升。
二、相关名词
k-nearest neighbor:K近邻算法
k-means:K均值算法
near-memory computing:近内存计算
on-chip buffer:片上缓存
ASIC:application specific integrated circuit,专用集成电路
DRAM:dynamic random-access memory,动态随机存取存储器
PE:process element,处理单元
KNMC:我感觉或许这个缩写取得是K-NN、K-means和近内存计算(Near-Memory Computing)的首字母?
三、相关背景知识
1.近内存计算
顾名思义,近内存计算就是将数据处理单元设计在数据中心附近,能够最大限度地减少数据移动所带来的能耗开销。
2.K-NN算法
是一种分类和回归算法,主要用于对未知类型的数据进行分类(已知分类情况)。首先将待测样本与训练集样本进行欧氏距离计算,其次按照计算结果找出与待测样本距离最近的k个训练集样本。
3.K-means算法
是一种经典的无监督学习算法。主要步骤为:首先随机选取K个质心,然后将样本数据与K个质心进行欧式距离计算,每个样本所属与之最近的质心,同属一个质心的样本为一个群;接着为每个群进行质心更新操作,选出新的质心;重复上述步骤,直到新旧质心不再发生变化。
四、处理流程概述
1.KNMC硬件架构
KNMC组件,主要包括PE计算部件,片上缓存和 Centroid 模块。Centroid 模块用于实现对质心的更新和新旧质心比较。PE 模块用于计算不同数据间的距离,以及对所产生的结果进行累加。片上缓存共有五个,如下图中所示。
2.KNMC总调度流程
3.设计空间探索
论文中对于PE数量以及片上缓存(共五个)容量进行设计空间探索(DSE,design space exploration)。并且有以下约束:
可以看出每个变量个数有限,则使用穷举法对这些变量进行组合,可以找出最优解,也就得到了最高能效的配置。为了提高加速器对不同数据集的适应能力,论文中还采用了多个数据集进行设计空间探索,对所有调度的数据集的能效求几何平均。