Open meton-robean opened 4 years ago
1.这是一个在gme5的risc-v cpu模型上拓展指令集,拓展了一个紧耦合的线性代数加速器。
2.LACfg用于用于获取标量数据,以及配置 INPUT/OUTPUT LAMemUnit的的取数模式(取数是从LACache中取数,不使用DMA)
3.LAExecUnit 是用来计算的部件。利用fifo做到运算-访问存分离。输入是三输入A B C 支持如下多种运算:
4.Private Scratchpad 用于保存中间结果。
前两种很常见, 第三种可以冲矩阵乘法运算中抽象出来:一行要和多列做乘加,那么可以发那以后重复多次并结成很长一行向量,再将多列拼接成很长的向量,这样就符合上面所说的多流输出。例子见下面:
0.LAcore ISA其实在ricvc-v的ISA上拓展新增一些自己定制的指令 1.LACfg是取数配置寄存器。代表了访存模式(source ,dest, stride, skip, count) 由配置指令配置。 2.LAExecUnit是计算单元,由计算指令驱动,计算指令指定相应的LACfg号(代表输入输出),用以驱动LAMemUnit从对应的LACfg中读取访存信息,取数填入fifo,计算单元同时从fifo取数(可以exe/mem分离) 3.除此之外还有数据移动指令。
疑问:cache居然可以一次同时从一个cache line取多个数?
其实就是多端口读数,利用了banking。
毕业论文 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