arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2104.07699cs.ARcs.DC
收藏

pLUTo:通过查找表在DRAM中实现大规模并行计算

pLUTo: Enabling Massively Parallel Computation in DRAM via Lookup Tables

João Dinis Ferreira, Gabriel Falcao, Juan Gómez-Luna, Mohammed Alser, Lois Orosa, Mohammad Sadrosadati, Jeremie S. Kim, Geraldo F. Oliveira, Taha Shahroodi, Anant Nori, Onur Mutlu

AI总结:

提出pLUTo,一种基于DRAM的存内处理架构,利用查找表实现大规模并行计算,平均比CPU和GPU快713倍和1.2倍,能耗降低1855倍和39.5倍。

摘要:

主内存与处理器之间的数据移动是内存密集型应用中执行时间和能耗的关键因素。这种数据移动瓶颈可以通过存内处理(PiM)技术来缓解。PiM的一种类别是使用内存处理(PuM),其利用存储设备的固有模拟特性在存储阵列内进行计算。PuM具有高性能和高能效,但现有的PuM技术支持的操作范围有限。因此,当前的PuM架构在不大幅增加芯片面积和设计复杂度的情况下,无法高效执行某些复杂操作(如乘法、除法、指数运算)。为了克服现有PuM架构的这些局限性,我们提出了pLUTo(使用内存处理结合查找表操作),这是一种基于DRAM的PuM架构,利用DRAM的高存储密度来实现查找表(LUT)的大规模并行存储和查询。pLUTo的关键思想是用低成本、批量内存读取(即LUT查询)来替代复杂操作,而不是依赖复杂的额外逻辑。我们在11个真实工作负载上评估了pLUTo,这些工作负载展示了先前PuM方法的局限性,结果表明,我们的解决方案平均比优化的CPU和GPU基线分别快713倍和1.2倍,同时平均能耗分别降低1855倍和39.5倍。在这些工作负载中,pLUTo平均比最先进的PiM架构快18.3倍。我们还表明,不同版本的pLUTo在额外的DRAM面积开销(介于10.2%和23.1%之间)下提供不同级别的灵活性和性能。pLUTo的源代码可在https://github.com/CMU-SAFARI/pLUTo上完全公开获取。

英文摘要:

Data movement between the main memory and the processor is a key contributor to execution time and energy consumption in memory-intensive applications. This data movement bottleneck can be alleviated using Processing-in-Memory (PiM). One category of PiM is Processing-using-Memory (PuM), in which computation takes place inside the memory array by exploiting intrinsic analog properties of the memory device. PuM yields high performance and energy efficiency, but existing PuM techniques support a limited range of operations. As a result, current PuM architectures cannot efficiently perform some complex operations (e.g., multiplication, division, exponentiation) without large increases in chip area and design complexity. To overcome these limitations of existing PuM architectures, we introduce pLUTo (processing-using-memory with lookup table (LUT) operations), a DRAM-based PuM architecture that leverages the high storage density of DRAM to enable the massively parallel storing and querying of lookup tables (LUTs). The key idea of pLUTo is to replace complex operations with low-cost, bulk memory reads (i.e., LUT queries) instead of relying on complex extra logic. We evaluate pLUTo across 11 real-world workloads that showcase the limitations of prior PuM approaches and show that our solution outperforms optimized CPU and GPU baselines by an average of 713$\times$ and 1.2$\times$, respectively, while simultaneously reducing energy consumption by an average of 1855$\times$ and 39.5$\times$. Across these workloads, pLUTo outperforms state-of-the-art PiM architectures by an average of 18.3$\times$. We also show that different versions of pLUTo provide different levels of flexibility and performance at different additional DRAM area overheads (between 10.2% and 23.1%). pLUTo's source code is openly and fully available at https://github.com/CMU-SAFARI/pLUTo.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑