【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_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 4 -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

运行用例

运行测试用例

cd $CY_DIR/sims/verilator# Run a small DNN workload in the functional simulator
spike --extension=gemmini ../../generators/gemmini/software/gemmini-rocc-tests/build/imagenet/resnet50-baremetal

对比结果

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

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

相关文章

TCP客户端进程分割输入输出

创建TCP客户端&#xff0c;创建子进程分割TCP客户端的read功能和write功能&#xff0c;实现分割I/O的目的。加快客户端速率。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <signal.h> #include …

Wi-Fi 6 在 2.4GHz 频段的速率与优化分析

Wi-Fi 6&#xff08;802.11ax&#xff09;在 2.4GHz 和 5GHz 频段均可工作&#xff0c;理论最高速率可达 1200 Mbps&#xff08;5GHz&#xff0c;80MHz&#xff0c;22 MIMO&#xff09;。但在 2.4GHz 频段&#xff0c;速率受 信道宽度、MIMO、调制方式、干扰、协议开销 影响&am…

WPF--Application.Current.Dispatcher.BeginInvoke

1.代码示例 private void LogInfoList_CollectionChanged(object? sender, NotifyCollectionChangedEventArgs e) {// 直接在这里修改集合会引发递归if (e.Action NotifyCollectionChangedAction.Add){if (logInfoList.Count > 200){logInfoList.RemoveAt(0); // 这里会…

ZooKeeper详解以及应用部署(AI)

ZooKeeper 是一个开源的分布式协调服务框架&#xff0c;旨在为分布式应用提供一致性保障和关键协调功能。其核心设计理念是将复杂的分布式一致性逻辑封装为简单可靠的接口&#xff0c;让开发者专注于业务逻辑而非底层协调难题。以下是其核心要点&#xff1a; &#x1f9e0; 一、…

将MySQL数据库中所有表和字段编码统一改为utf8mb4_unicode_ci

完整操作步骤 1. 首先修改数据库默认字符集 sql ALTER DATABASE 你的数据库名 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 2. 生成批量修改所有表的SQL语句 sql SELECT CONCAT(ALTER TABLE , table_schema, ., table_name, CONVERT TO CHARACTER SET utf8mb4 C…

jupyterhub的浅浅使用-重点在解决无法登录

jupyterhub的浅浅使用-重点在解决无法登录 jupyterhub的浅浅使用-重点在解决无法登录1、jupyterhub是什么2、创建Dockerfile3、启动容器3.1、生成配置文件jupyterhub --generate-config3.2、运行容器3.3、进入容器配置用户密码3.4、访问127.0.0.1:8000并登录 4、后台创建的用户…

【Bitcoin基础】比特币的地址格式有哪些?如何应用?

比特币地址格式的分类及应用场景 比特币地址是用于接收和发送比特币的标识符&#xff0c;主要有以下几种格式&#xff0c;每中类型都有其特定的用途和特点: 比特币地址格式 P2PKH 1xxxx leagcy地址 P2SH 3xxxx 允许更复杂的交易多重签名 bech32 bc1xxxx bech32mP2TR…

3.1.2_栈的顺序存储实现

知识总览&#xff1a; 顺序栈的定义&#xff1a; 顺序栈是用顺序存储实现的 &#xff0c;代码定义方式和顺序表类似(啥是顺序表来着&#xff1f;&#xff1f;&#xff1f;) 定义一个顺序栈struct结构体SqStack&#xff0c;结构体中有静态数组data来存放栈里边的元素1个int型的…

JavaEE初阶第一期:计算机是如何 “思考” 的(上)

专栏&#xff1a;JavaEE初阶起飞计划 个人主页&#xff1a;手握风云 一、冯诺依曼体系结构 1.1. 概念 冯诺依曼体系结构&#xff08;Von Neumann Architecture&#xff09;&#xff0c;是现代计算机的基础设计概念&#xff0c;核心思想是“存储程序控制”。具体来说&#xff0c…

SQL Server全局搜索:在整个数据库中查找特定值的高效方法

SQL Server全局搜索&#xff1a;在整个数据库中查找特定值的高效方法 一、需求背景&#xff1a;为什么需要数据库全局搜索&#xff1f; 在数据库管理和开发过程中&#xff0c;我们经常会遇到这样的场景&#xff1a; 只记得某个数据值&#xff0c;但忘记了它所在的表或列需要…

万物皆数:构建数字信号处理的数学基石

万物皆数&#xff1a;构建数字信号处理的数学基石 欢迎来到数字信号处理&#xff08;DSP&#xff09;的世界。在这里&#xff0c;声音、图像、通信信号、医疗数据……一切信息都被转化为一串串冰冷的数字。然而&#xff0c;正是通过对这些数字的精妙运算&#xff0c;我们得以实…

到院率最高提升40%,消费医疗用AI营销机器人跑赢增长焦虑

当前&#xff0c;消费医疗机构普遍依赖人工咨询师进行客户接待和营销咨询。然而&#xff0c;专业咨询师缺口高达20万人&#xff0c;大量“护士转咨询”“销售转咨询”现象导致方案设计专业性不足&#xff0c;客户投诉率提升40%。人工客服不仅医学知识薄弱&#xff0c;学习能力有…

【推荐算法】注意力机制与兴趣演化:推荐系统如何抓住用户的心?

注意力机制与兴趣演化&#xff1a;推荐系统如何抓住用户的心&#xff1f; 一、算法背景知识&#xff1a;从静态推荐到动态感知1.1 传统推荐系统的局限性1.2 人类注意力机制的启示 二、算法理论/结构&#xff1a;动态兴趣建模革命2.1 DIN&#xff08;深度兴趣网络&#xff09;&a…

快速入门:创建 Azure 数据资源管理器群集和数据库

前言 Azure 数据资源管理器是 Microsoft 提供的一项快速、完全托管的数据分析服务。 它允许用户分析来自应用程序、网站、物联网设备等的海量数据流,从而简化复杂的数据探索。 它能够处理数 PB 的数据,并支持快速检索数据以进行分析。 主要特点 高性能:ADX 针对快速数据提…

Redis集群模式之Redis Cluster(2)

上篇文章我们讲解了Redis Cluster中的主要模块和两种重定向方式&#xff0c;这篇文章我们来讲解一下Redis Cluster的状态监测和维护。 Redis Cluster状态监测及维护 要讲解Redis Cluster中节点的状态如何维护&#xff0c;我们要先知道Redis Cluster中的节点有哪些状态&#xf…

Step-Audio-AQAA 解读:迈向「纯语音」交互的端到端 LALM 新里程

引言:AI 从听到说 大型音频语言模型(Large Audio-Language Models, LALMs)正在彻底改变我们与机器交互的方式。我们不再满足于简单的文本问答,而是期望 AI 能够像人类一样,通过自然的语音进行交流,理解我们的意图,并以富有表现力的声音回应。然而,构建一个能够直接从语…

基于边缘计算的丝杆状态实时监测系统设计?

基于边缘计算的丝杆状态实时监测系统设计&#xff0c;可从系统架构、各层功能设计、关键技术应用等方面入手&#xff0c;以下为详细介绍&#xff1a; 系统架构设计 基于边缘计算的丝杆状态实时监测系统通常由感知层、边缘层和云端三部分组成。感知层负责数据采集&#xff0c;…

LeetCode 每日一题 2025/6/9-2025/6/15

记录了初步解题思路 以及本地实现代码&#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录 6/9 440. 字典序的第K小数字6/10 3442. 奇偶频次间的最大差值 I6/11 3445. 奇偶频次间的最大差值 II6/12 3423. 循环数组中相邻元素的最大差值6/13 2616. 最小化数对的最大…

PyTorch张量操作中dim参数的核心原理与应用技巧:

今天在搭建神经网络模型中重写forward函数时&#xff0c;对输出结果在最后一个维度上应用 Softmax 函数&#xff0c;将输出转化为概率分布。但对于dim的概念不是很熟悉&#xff0c;经过查阅后整理了一下内容。 PyTorch张量操作精解&#xff1a;深入理解dim参数的维度规则与实践…

Day 31

1. 规范的文件命名 核心原则&#xff1a; 清晰明确&#xff1a;文件名应准确描述内容&#xff08;如data_preprocessing.py&#xff09; 风格统一&#xff1a; 推荐小写下划线&#xff08;Python惯例&#xff0c;如model_training.py&#xff09; 或使用驼峰式&#xff08…