首页 > 其他分享 >芯片架构设计及其作用

芯片架构设计及其作用

时间:2024-03-14 21:31:54浏览次数:24  
标签:架构设计 需要 140 芯片 及其 memory 模型

芯片架构设计是芯片流片前很重要的一个环节,俗称pre-silicon,芯片架构设计的好坏,决定了芯片产品的质量,决定了芯片产品是否易用,决定了芯片产品的性能,决定了芯片产品在市场上是否具有持久性。芯片生产是个大工程,芯片硬件和芯片软件具有非常不同的特性,芯片软件在release后可以持续完善和优化,但芯片硬件一经流片就无从更改(重新流片一次要几千万)。

打个形象的比喻,芯片架构设计就像大楼施工前的图纸设计,各种事情(户型,地基,车位,绿化,布线,监控,采暖,上下水,采暖,空调,通风,电梯,安全,材料选取,成本等)都要考虑好,一经施工,无从更改,要么成为精品小区,要么成为烂尾楼。

芯片架构设计概览

在架构设计前,需要进行市场需求调研,同时进行竞品调研,保障芯片在生产出来的时候,能满足市场需求,能有更大竞争力。

  • 市场需求调研

目前大语言模型和多模态模型蓬勃发展,芯片设计前需要进行尽可能多的市场调研,涉及如下方面:

-大模型的模型规模和计算类型是什么趋势?算力和带宽需求是什么?

-大模型的输入sequence length是否更长?多模态模型和LLM模型的输入sequence length有什么区别?

-芯片是面向大模型的推理,还是训练?市场需要的性能目标是什么?

-是否需要互联?互联带宽多少?

-未来的大模型的技术变化趋势?什么样的attention优化技术是最优的?

-芯片的面向客户对各种low precision的接受度和需求度如何?

-芯片面向客户的编解码需求是什么样的?性能指标是什么?

-客户的部署习惯影响芯片的使用和设计,一定要摸清?客户业务的痛点是什么?

-存储需求是什么样的?

-芯片需要达到的性价比指标是什么?

-客户的软件生态是什么样的?

  • 竞品调研

竞品调研主要考察当前市场上比较top的芯片厂商的软硬件设计情况,同时,预测各厂商的未来技术趋势,目前大模型背景下,市场上比较top的芯片厂商如下:

-英伟达

-AMD

-谷歌

-华为

硬件架构设计

1.top厂商的芯片架构概览

  • nvidia gpu架构

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

最上面图是H100的总体架构,最下面图是一个SM内部的架构图,详细可以看白皮书。

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

  • tpu架构

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

  • 昇腾架构

添加图片注释,不超过 140 字(可选)

2.硬件架构设计需要考虑的事情

整个的芯片设计的主要部分是SoC的设计,system on chip,SoC是由许许多多的IP组成的(自己设计或者买第三方的),chip designer的任务就是将这些IO装进SoC这个大箱子,装得要多,性能要好。大概需要考虑如下事情:

-面积

面积太小,放不下那么多资源,面积太大,同比竞品竞争力差(成本高)

-功耗

功耗低,供电不足,处理跟不上,功耗高,费电(大数据中心的电费还是很可观的)

-频率

整个芯片有一定的工作频率,每个IP也有自己的工作频率,高频率干活快,低频率干活慢。

-颗粒

纳米决定能装多少东西,尺寸有多大,目前美国就是在这方面卡我们脖子。台积电已经能做3纳米了。

-存储

用hbm,还是用gddr,这两者存储大小,峰值带宽,价格差距较大,需要根据模型应用需求和性价比考虑。目前芯片其实主要是在卖存储,所以搞存储的闷声发大财(尤其是在当前大模型背景下)。

-cpu core

无论是host端cpu core的数量及并行度,还是device端cpu core(例如,华为昇腾架构内的AI cpu core)的数量及并行度,都影响任务的异构并行处理,因为有些是适合device的AI tensor或vector计算任务,有些是适合cpu的非规则计算任务(例如,图和树的遍历与检索)。

-host和device间的访问延时与访存开销

需要考虑host与device间的通信一次的latency,因为有可能需要多次互通。

需要考虑host memory与device memory的互访互联及带宽,对大模型和推荐系统(embedding table)有益,可以看看nvidia的grace Hopper+grace cpu架构:

添加图片注释,不超过 140 字(可选)

-uvm统一虚拟内存,unified virtual memory

可以带来编程与处理的便捷性,可以很灵活的调度存储flow

-device memory bandwidth

带宽越大,传输越快,利于memory或IO bound的任务,所以,具体要看你的需求和场景,取决于选多大的带宽合适(既便宜,有满足需求)

-多级存储及shared memory(例如,nvidia)

需要考虑要几级memory?要不要dma?每级memory多少存储空间?这个其实和你的任务需求也是有关的,和你调度任务流水的方式也有关。

-多级cache(例如,nvidia的L1/L2)

你的cache有多少级?每级cache多大?指令cache和数据cache如何划分?cache的一致性和maintenance如何保障?硬件预取和软件预取是否完善?预取latency是多大?

-算力

算力,和带宽一样,其实是一个重要的指标?和场景与客户需求有关。需要什么精度的计算?每种精度的TOPS或TFLOPS是多少(取决于你的任务的TFLOPs或 TOPs)?需要稀疏计算(结构化稀疏,还是非结构化稀疏)吗?

-执行与调度模型

你的runtime的调度机制是什么样的?能支持最大outstanding是多少?

采用simd还是simt架构?simt架构的线程数及资源分配如何?simt的多线程调度开销如何?多线程间是否能隐藏指令流开销?

如果你只处理向量或matrix计算,那么,simd可能是最高效的,不需要simt的灵活性。如果你处理标量任务,那么,simt(如,nvidia implicit simd)可能更好。详细的simd与simt的机制最好熟练掌握。

-总线宽度

总线宽度和处理数据位宽,其实对调度很有影响取决于你的任务或需求粒度。

-互联拓扑和带宽

对大模型训练影响很大。

软件架构设计

芯片设计,讲究一个软硬协同设计,如果不考虑软件或客户的使用方式,不从top down是看架构设计,那么,设计出来的芯片硬件大概率是烂尾楼,兼容性差,迁移性差,软件编程难用,过分注重单一计算或单一模型(性能泛化差),等等一系列问题和痛点。

具体关注哪些?

-pytorch等框架或客户框架的eager mode和图模式分别如何执行的?

-框架或客户需要什么样的算子或api?

-模型的变种如何的?输入输出形状如何变化的?如何做通用支持?不要受限于具体形状或固定pattern。

-软件栈如何兼容c++语法?如何用最直接的方式编程?这些映射到硬件需要满足什么需求?例如,cuda

-软件的编码方式和生成的code size多大?例如,cuda

-模型部署方式?都线程?多进程?多模型并行?

-不同计算类型?每种类型的利用率分析?模型内的多分支结构?框架的多operator并行调度?

-你是否让用户关注了太多软件细节和调度细节?资源分配细节?这个导致软件不好用,软件可能本身也不是这样用的。

-算子的数据流编写方式需要反馈硬件,协同设计。

总之,希望以客户需求和习惯为目标,以技术发展趋势为原则指导芯片设计,坚持top->down,而不是down->top。

性能评估与建模

一个好的建模平台,对架构设计至关重要,因为架构设计之前,没有实实在在的东西,都是虚的,需要验证的内容太多,建模平台完备主要体现:

-灵活配置资源,验证各种数据流和计算流

-底层cost model健全,仿真器更趋向于真实硬件

-benchmark健全,测试无死角

标签:架构设计,需要,140,芯片,及其,memory,模型
From: https://blog.csdn.net/seasermy/article/details/136708694

相关文章

  • 认识经典:常见的素描石膏像及其来历
    经典的石膏素描像包括了多位历史人物和神话角色的头像,它们常用于美术基础教学,帮助学生练习素描技巧和理解光影效果。具体如下:卡拉卡拉:罗马皇帝塞普提米乌斯·赛维拉的大儿子,以其残暴著称,据说曾杀害自己的弟弟。他的石膏像是美术学习中常见的练习对象。古希腊哲学家:如苏格拉......
  • 并发支持库:互斥锁及其管理
    目录互斥std::mutex(c++11)std::timed_mutex(c++11)std::recursive_mutex(c++11)std::recursive_timed_mutex(c++11)std::shared_mutex(c++17)shared_timed_mutex(C++14)通用互斥(mutex)管理std::lock_guard(c++11)std::scoped_lock(c++17)std::unique_lock(C++11)std::shared_loc......
  • HS6621Cx 一款低功耗蓝牙SoC芯片 应用于键盘、鼠标和遥控器消费类产品
    HS6621Cx是一款功耗优化的真正片上系统(SOC)解决方案,适用于低功耗蓝牙和专有2.4GHz应用。它集成了高性能、低功耗射频收发器,具有蓝牙基带和丰富的外设IO扩展。HS6621Cx还集成了电源管理功能,可提供高效的电源管理。它面向2.4GHz蓝牙低功耗系统、专有2.4GHz系统、人机接口设备(键盘......
  • 【5V 转 3.3V,3V,2.5V芯片首选】PW2162高效恒压转换器,外围电路超简单
    在现代电子设备高速发展的今天,一款高效、稳定的电源管理芯片对于设备的性能至关重要。PW2162,作为一款完全集成、高效的2A同步整流降压转换器,凭借其出色的性能和广泛的应用领域,正引领着电源管理领域的新纪元。首先,让我们深入了解一下PW2162的独特之处。这款转换器在宽输出电流负载......
  • Java线程池参数详解及其示例
    线程池在Java并发编程中占据核心地位,通过复用线程资源,可以极大地提高系统资源利用率和响应速度。Java中的java.util.concurrent.ThreadPoolExecutor类提供了丰富的参数配置以满足不同场景的需求。下面我们将逐一介绍线程池的主要构建参数,并给出相应的例子说明:1.corePoolSi......
  • pcm5102芯片解析之基本概念
    一前记1在音频领域深耕,那就要不断的前行。最近有几个项目需要用到pcm5102这颗料,藉此机会,针对这个料进行深入的研究一下。做一一些简要的分析。二概念音频芯片的指标,其实,很多年都没啥变化了,唯一的问题就是这个应用形态有些变化。下面是该芯片的性能指标。 ......
  • 一致性哈希算法及其在分布式系统中的应用
    摘要本文将会从实际应用场景出发,介绍一致性哈希算法(ConsistentHashing)及其在分布式系统中的应用。首先本文会描述一个在日常开发中经常会遇到的问题场景,借此介绍一致性哈希算法以及这个算法如何解决此问题;接下来会对这个算法进行相对详细的描述,并讨论一些如虚拟节点等与此算......
  • 微信-架构设计师-谈ai
    此文含金量极大)AI搞钱的新路子,架构师快上车!!!架构师 2024-02-2722:00 广东如果问你:2024年,程序员必须掌握哪项技术?AI一定是榜首! 从去年起,AI大模型已是程序员的必备工具——‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 编程提效:编写更快,程序更稳定;代码更优:测试数、BUG对应减少;......
  • DevOps软件开发管理模式、CICD概念及其Jenkins使用
    一、什么是DevOpsDevOps是Develop与Operations的缩写,是开发和运营维护的总称。它是企业内开发、技术运营和质量保障这三方面工作的融合,用于促进开发、技术运营和质保部门之间的沟通、协作与整合。为巩固软件设计与开发结果,将开发、运维与测试结合一起,形成了DevOps软件开发管......
  • AXS4054 爱协生 单节锂电池 线性充电器芯片 600mA 概述文
    描述AXS4054是一款单节锂离子电池恒流/恒压线性充电器,简单的外部应用电路非常适合便携式设备应用,适合USB电源和适配器电源工作,内部采用防倒充电路,不需要外部隔离二极管。热反馈可对充电电流进行自动调节,以便在大功率操作或高环境温度条件下对芯片温度加以限制。AXS4054......