meton-robean / PaperNotes

记录阅读各类paper的想法笔记(关注体系结构,机器学习系统,深度学习,计算机视觉)
23 stars 1 forks source link

LACore: A Large-Format Vector Accelerator for Linear Algebra Applications(2017) #17

Open meton-robean opened 4 years ago

meton-robean commented 4 years ago

毕业论文 LACore: A Large-Format Vector Accelerator for Linear Algebra Applications 2017 发表论文 LACore: A Supercomputing-Like Linear Algebra Accelerator for SoC-Based Designs github项目 https://github.com/scale-lab/la-core

meton-robean commented 4 years ago

整体架构

Selection_103

1.这是一个在gme5的risc-v cpu模型上拓展指令集,拓展了一个紧耦合的线性代数加速器。 2.LACfg用于用于获取标量数据,以及配置 INPUT/OUTPUT LAMemUnit的的取数模式(取数是从LACache中取数,不使用DMA) 3.LAExecUnit 是用来计算的部件。利用fifo做到运算-访问存分离。输入是三输入A B C 支持如下多种运算: Selection_104

4.Private Scratchpad 用于保存中间结果。

meton-robean commented 4 years ago

提到了与gem5-aladdin区别

Selection_105

meton-robean commented 4 years ago

提到了与gem5-aladdin区别

Selection_105

meton-robean commented 4 years ago

与向量处理器区别

Selection_106

meton-robean commented 4 years ago

支持三种输出模式,其中多流输出比较有趣

Selection_107

前两种很常见, 第三种可以冲矩阵乘法运算中抽象出来:一行要和多列做乘加,那么可以发那以后重复多次并结成很长一行向量,再将多列拼接成很长的向量,这样就符合上面所说的多流输出。例子见下面:

Selection_109

meton-robean commented 4 years ago

取数配置寄存器组 和 取数单元 和 计算单元 (对应其自定义的LAcore ISA)

Selection_111 Selection_110 Selection_112

0.LAcore ISA其实在ricvc-v的ISA上拓展新增一些自己定制的指令 1.LACfg是取数配置寄存器。代表了访存模式(source ,dest, stride, skip, count) 由配置指令配置。 2.LAExecUnit是计算单元,由计算指令驱动,计算指令指定相应的LACfg号(代表输入输出),用以驱动LAMemUnit从对应的LACfg中读取访存信息,取数填入fifo,计算单元同时从fifo取数(可以exe/mem分离) 3.除此之外还有数据移动指令。

meton-robean commented 4 years ago

LCache的优化

Selection_114

疑问:cache居然可以一次同时从一个cache line取多个数?

meton-robean commented 4 years ago

StratchPad取数优化

Selection_113 其实就是多端口读数,利用了banking。