【Chipyard】修改Gemmini 中PE的数量

实战目标

PE数量扩大到原来4倍

原来配置

 tileRows: Int = 1,tileColumns: Int = 1,meshRows: Int = 16,meshColumns: Int = 16,

改后配置

 tileRows: Int = 1,tileColumns: Int = 1,meshRows: Int = 32,meshColumns: Int = 32,

修改配置

1. 修改gemmini的scala配置文件,用于构建 chipyard rtl和测试程序

修改配置文件,chipyard/generators/gemmini/src/main/scala/gemmini/GemminiConfigs.scala

的 GemminiArrayConfig  内容

  1. meshRows/meshColumns 的数值
  2. Scratchpad and accumulator memory parameters ,同倍数放大

修改后如下:

object GemminiConfigs {val defaultConfig = GemminiArrayConfig[SInt, Float, Float](// DatatypesinputType = SInt(8.W),weightType = SInt(8.W),accType = SInt(32.W),spatialArrayInputType = SInt(8.W),spatialArrayWeightType = SInt(8.W),spatialArrayOutputType = SInt(20.W),// Spatial array size optionstileRows = 1,tileColumns = 1,// meshRows = 16,// meshColumns = 16,meshRows = 32,//扩大两倍meshColumns = 32,//扩大两倍// Spatial array PE optionsdataflow = Dataflow.BOTH,// Scratchpad and accumulator//sp_capacity = CapacityInKilobytes(256), //acc_capacity = CapacityInKilobytes(64),sp_capacity = CapacityInKilobytes(1024), //扩大四倍acc_capacity = CapacityInKilobytes(256),//扩大四倍

2 . 修改 spike 的Gemmini 配置文件,用于更新gemmini spike

有两处gemmini_params.h 文件需要更新,他们分别位于 chipyard、generators/gemmini/software/gemmini-rocc-tests/include和/chipyard/generators/gemmini/software/libgemmini 中,修改后的关键内容如下:

#define XCUSTOM_ACC 3
//#define DIM 16
#define DIM 32 // 扩大到两倍
#define ADDR_LEN 32
#define BANK_NUM 4
#define BANK_ROWS 4096
#define ACC_ROWS 1024
//#define MAX_BYTES 64
#define MAX_BYTES 128 //扩大到两倍
#define MAX_BLOCK_LEN (MAX_BYTES/(DIM*1))
#define MAX_BLOCK_LEN_ACC (MAX_BYTES/(DIM*4))

重和新编译

因为是重新编译,-s 1 表示跳过第一条

cd $CY_DIR
./build-setup.sh -s 1 -s 6 -s 7 -s 8 -s 9

更新libgemmini

source env.shcd $CY_DIR/generators/gemmini
make -C software/libgemmini install

重新编译仿真器

cd $CY_DIR/sims/verilator
#make CONFIG=GemminiRocketConfig# Or, if you want a simulator that can generate waveforms, run this:
make -j$(nproc) debug CONFIG=GemminiRocketConfig

重新编译测试程序

cd $CY_DIR/generators/gemmini/software/gemmini-rocc-tests
rm -rf build
./build.sh

运行用例

对比结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/910622.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【论文阅读笔记】高光反射实时渲染新突破:3D Gaussian Splatting with Deferred Reflection 技术解析

文章目录 3D Gaussian Splatting with Deferred ReflectionInfoAbstractIntroductionMethod1.渲染模型2. Loss函数和Normal 梯度3. 训练 RESULTS AND EVALUATION1.和基线的比较 Ablation StudyLimitations总结思考 3D Gaussian Splatting with Deferred Reflection Info 会议 …

数据结构-为什么双指针法可以用来解决环形链表?-使用O(1)的空间复杂度去解决环形链表的思路

环形链表 前言一、环形链表二、代码实现三、证明当fast一次走两步,slow一次走一步时,相遇情况当fast一次走三步,slow一次走一步时,相遇情况当fast一次走四步,slow一次走一步时,相遇情况第一种:N…

医疗行业网络安全的综合防护策略

随着数字医疗的不断发展,医疗行业面临着前所未有的网络安全挑战。患者的健康信息、财务数据以及医疗服务的连续性,均受到潜在网络攻击的威胁。为了保护这些敏感信息,医疗机构必须实施全面的网络安全策略,确保数据的安全性和系统的…

AI常用工具指南

引言 今天晚上听了一个公开课程,讲述了在人工智能技术爆发式增长的今天,AI工具已渗透到内容创作的各个环节。感受颇深,引用大都督的一句名言“既然我们不能阻挡AI的脚步,那我们就躬身入局,深入理解AI底层,…

基于Orange Pi Zero3的音频管理系统搭建与远程访问实现

文章目录 前言1. 添加镜像源2. 本地部署Melody3. 本地访问与使用演示4. 安装内网穿透5. 配置Melody公网地址6. 配置固定公网地址 前言 各位朋友们!本期将为您呈现一套融合物联网思维的音频处理系统——以Orange Pi Zero3开发板为基础,结合内网穿透技术打…

2024年12月6级第二套第一篇

第二段就是第二题的解题区域了,只能死磕第一段,前面说过多的注意力在城市,后面肯定就是说乡村关注少了不确定的情况下,句间并列继续向下找,没聊经济 题干在前,答案在谓语宾语,主干没答案&#x…

机器学习与深度学习19-线性代数02

目录 前文回顾6.协方差矩阵与主成分分析7.矩阵的奇异值分解8.神经网络的前向传播和反向传播9.矩阵的迹10.特征工程的多项式特征扩展 前文回顾 上一篇文章链接:地址 6.协方差矩阵与主成分分析 协方差矩阵是一个对称矩阵,用于衡量随机变量之间的线性相关…

【android bluetooth 框架分析 04】【bt-framework 层详解 2】【如何配置和启动蓝牙profile服务】

1. 问题 蓝牙协议栈在启动的时候,会启动很多协议服务, 例如 A2dpService、A2dpSinkService、AvrcpTargetService、AvrcpControllerService、BassClientService、BatteryService、CsipSetCoordinatorService、HeadsetService、HeadsetClientService … …