Groq软件定义的横向扩展张量流多处理器-从芯片到系统架构概述

Groq软件定义的横向扩展张量流多处理器-从芯片到系统架构概述
1.大纲
1)张量流处理器(TSP)背景
2)软件定义的硬件和确定性执行
3)TSP微架构
4)系统封装、拓扑、路由和流控制
5)小结
2.软件定义方法
1)软硬件协同设计并不是什么新鲜事
2)重新检查硬件软件接口
① 静态-动态接口:在编译时(静态)与执行时(动态)的执行操作。此接口由运行时层管理。
② 硬件-软件接口:编译器可见的架构状态,以便能够推理正确性并提供可预测的性能。
3)计算图中的节点表示运算符,边是操作数和结果。
① 运算符仅在所有输入操作数都可用时才开始启动。
4)机器学习模型非常适合这种静态分析和确定性执行。
    软硬件协同、接口框架,如图9-9所示。
 
图9-9 软硬件协同、接口框架
3.设计决策
1)将硬件构建为高效的编译器目标。
2)整个设计选择需要适应确定性的设计理念。
3)硬件必须使用编译器和运行时接口,促进推理程序的执行。
① 必须很好地理解内存一致性模型——不允许对内存引用重新排序。
② 没有仲裁者、交叉杆、重放机制、缓存等反应性组件。
③ 软件必须能够访问系统可见的机器状态,以便用其上执行的指令拦截数据(操作数)。
4)编译器能识别片上每个张量的确切位置。
5)编译器同步布局操作数的到达和使用指令。生产者-消费者流编程模型,可用一组流寄存器文件来跟踪芯片的每个张量的状态。
4.避免芯片级别的复杂性
1)传统CPU增加了功能和复杂性。
2)需要动态分析来了解深度学习模型的执行时间和吞吐量特征。
3)推理预测性执行和无序退役,以提高指令级并行性——增加尾部延迟。
4)通过缓存层次结构的隐式数据流,引入了复杂性和不确定性。
 ① 例如,DRAM→L3→L2→L1→GPR,以隐藏DRAM访问延迟和压力,而不是能量或硅片效率。
5)TSP通过流编程简化数据流,可大规模预测性能。
6)大型单层SRAM缓存与确定性延迟。
7)在空间和时间上明确分配张量,解锁海量内存并发性,并在多个维度上实现计算灵活性:
① 设备、半球、内存片、存储体、地址偏移。
5. 避免系统级别的复杂性
1)仓储级计算机(WSC)和超级计算机。
①扩展到20K+节点。
②异构(SmartNIC、CPU、GPU、FPGA)。
③延迟差异限制了应用程序的规模。
④与网络直径有关。
⑤全局自适应路由很复杂(乱序消息、故障、热点、路由/负载不平衡、拥塞)。
2)软件定义的网络。
①编译器控制Groq C2C网络中的传输模式。
②片上自适应路由,以减少延迟方差并降低缓冲区占用率。
3)扩展到现有拓扑,没有陷阱。
①高基数交换机,以增加每个节点/交换机上的引脚带宽。
②低直径网络拓扑结构(例如,Dragonfly、扁平Butterfly、HyperX)。
数据包延迟分布,如图9-10所示。
1K节点网络中中间级交换机的最大缓冲入口,如图9-11所示。
 
图9-10数据包延迟分布
 
图9-11 1K节点网络中中间级交换机的最大缓冲入口

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

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

相关文章

Radeon GPU上使用ROCm一些技术点

Radeon GPU上使用ROCm一些技术点 1. 使用最新的高端AMD Radeon™7000系列GPU,将桌面变成机器学习平台 AMD已扩展了对RDNA™3 GPU上机器学习开发的支持,该GPU具有Radeon™软件,适用于Linux 24.10.3和ROCm™6.1.3! 使用PyTorch、ONNX运行时或TensorFlow的机器学习(ML)模型,…

推荐几本书1《AI芯片开发核心技术详解》、2《智能汽车传感器:原理设计应用》、3《TVM编译器原理与实践》、4《LLVM编译器原理与实践》

4本书推荐《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》由清华大学出版社资深编辑赵佳霓老师策划编辑的新书《AI芯片开发核心技术详解》已经出版,京东、淘宝天猫、当当等网上,相应陆陆续续可以购买。该…

ragflow-naive模式pdf解析 调试日志

测试用例1:test_emf 无图映射解析结果 boxes1: {x0: 70.0, x1: 308.6666666666667, top: 76.0, text: Test with three images in unusual formats, bottom: 90.0, page_number: 1, layout_type: } {x0: 70.66666666666667, x1: 152.33333333333334, top: 109.66666666666667, …

树形DP 树的重心

树形DP 树的重心 给定一颗树,树中包含 \(n\) 个结点(编号 \(1 \sim n\))和 \(n-1\) 条无向边。 请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。 重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个…

Bootstrap5入门

Bootstrap 5 入门教程 目录Bootstrap 简介 环境配置 布局与网格系统 常用组件 工具类与工具函数 定制化与主题 项目实战示例1. Bootstrap 简介什么是 Bootstrap?开源前端框架,用于快速构建响应式网页。 基于 HTML、CSS、JavaScript。Bootstrap 5 新特性移除 jQuery,依赖原生…

如何写自己的springboot starter?自动装配原理是什么?

如何写自己的springboot starter?自动装配原理是什么? 官方文档地址:https://docs.spring.io/spring-boot/docs/2.6.13/reference/html/features.html#features.developing-auto-configuration 1. 不用starter有什么弊端?我们开发需要引入maven依赖,如果我们需要的依赖又有…

清理 node.js 包管理工具 npm 的缓存

清理 node.js 包管理工具 npm 的缓存清理 node.js 包管理工具 npm 的缓存 要清理 Node.js 包管理工具 npm 的缓存,可以按照以下步骤操作。npm 的缓存主要用于存储下载的包,通常位于用户主目录下的 .npm 文件夹中。以下是清理方法: 1. 检查 npm 缓存位置 npm 默认将缓存存储在…

清理 Python 包管理工具 pip 的缓存

清理 Python 包管理工具 pip 的缓存清理 Python 包管理工具 pip 的缓存 要清理 pip 的缓存,可以按照以下步骤操作(适用于 Python 的包管理工具 pip):检查 pip 缓存位置 pip 默认会将下载的包缓存在本地。你可以通过以下命令查看缓存目录: pip cache dir常见的缓存路径:Wi…

清理 Python 的包管理工具 pip 的缓存

清理 Python 的包管理工具 pip 的缓存清理 Python 的包管理工具 pip 的缓存 要清理 pip 的缓存,可以按照以下步骤操作(适用于 Python 的包管理工具 pip):检查 pip 缓存位置 pip 默认会将下载的包缓存在本地。你可以通过以下命令查看缓存目录: pip cache dir常见的缓存路径…

微服务的网关配置

微服务的网关配置 1. 网关路由 1.1 网关 1.1.1 存在问题 单体架构时我们只需要完成一次用户登录、身份校验,就可以在所有业务中获取到用户信息。而微服务拆分后,每个微服务都独立部署,这就存在一些问题:每个微服务都需要编写身份校验、用户信息获取的接口,非常麻烦。 用户…

博客图床 VsCode + PigGo + 阿里云OSS方案

关键字 写博客,图床,VsCode,PigGo,阿里云OSS 背景环境 我想把我在本地写的markdown文档直接搬到CSDN上和博客园上,但是图片上传遇到了问题。我需要手动到不同平台上传文件,非常耗费时间和经历。 为了解决这个问题,我想到了图床方案,我只需要把图片链接放到我本地写好的…

20244203张晨曦 实验一《Python程序设计》实验报告

20244203张晨曦《Python程序设计》实验一报告 课程:《Python程序设计》 班级: 2442 姓名: 张晨曦 学号:20244203 实验教师:王志强 实验日期:2025年3月18日 必修/选修: 专选课 1.实验内容 1.熟悉Python开发环境; 2.练习Python运行、调试技能; 3.编写程序,练习变量和…