论文部分内容阅读
在推荐算法领域,基于邻域模型的协同过滤(Collaborative Filtering,CF)推荐算法是一类较为经典成熟的算法,广泛的应用于当今各式各类的推荐系统中。随着大数据时代的来临,数据规模在飞速增长,基于邻域模型的协同过滤推荐算法在处理越来越多的数据时需要花费的时间变的越来越长。因此,为了降低推荐系统的响应时间,及时为用户生成推荐信息,需要加快推荐算法的执行。目前主流的算法加速平台有三种:多核处理器机群、云计算平台和通用计算图形处理器(GPGPU)。目前有很多利用上述平台加速推荐算法的研究工作,尽管这些工作的确获得了不错的效果,但它们同时也存在着一些不可忽视的问题:基于通用CPU的机群/云计算节点在处理推荐算法任务时的计算效率相对较低,并伴随着较高的能耗开销;GPGPU由于其数据级并行的优势在处理推荐算法任务时有着很高的计算效率,但其同样存在着过大的能耗开销问题。为了在提升计算效率的同时尽可能的降低能耗,人们开始利用专用集成电路(ASIC)与现场可编程门阵列(FPGA)来研究算法的硬件加速结构。目前,在机器学习尤其是深度学习领域,涌现出了很多出色的设计,而对于推荐算法,相关的研究工作不但较少,并且存在很多局限。因此,本文针对基于邻域模型的协同过滤推荐算法开展硬件加速方面的研究,主要工作与贡献包括以下三个方面:1.针对User-based CF、Item-based CF以及SlopeOne三种基于邻域的算法的训练阶段与预测阶段,分别设计出了训练加速器和预测加速器结构与指令集。两种加速器都作为协处理器在宿主CPU的控制下以指令的方式运行,训练加速器支持User-based CF和Item-based CF在训练阶段所需的五种不同的相似度计算标准以及SlopeOne训练阶段所需的平均差异计算;预测加速器支持三种算法在预测阶段所需的五种预测值计算标准。此外,本文还对宿主CPU、内存、加速器以及DMA等外设之间的互联进行了设计,确定了它们之间的组织结构。2.针对训练加速器、预测加速器以及DMA设备在Linux操作系统环境下的设备驱动程序进行了设计与实现。3.为方便用户使用,针对硬件加速器以及DMA等设备的操作系统用户层调用接口进行了设计与封装工作。为了验证设计的硬件加速系统的性能,本文利用FPGA平台实现了该硬件加速系统原型,该原型基于ZedBoard ZYNQ开发板。实验结果表明,尽管存在一些局限和问题,但该硬件加速系统原型仍然具备良好的加速效果,并有着较低的运行时功率以及能耗开销。