- 博客(150)
- 资源 (8)
- 收藏
- 关注
原创 【AI】LLM的硬件视角 -- 分块
在Prefill阶段,即便是处理一个Prompt,其产生的 Q 、 K 、 V 矩阵(例如 seq_len x d_model )也常常因为太大而无法一次性放入片上内存(SRAM),更不用说一次性被计算单元处理了。因此, 分块(Tiling / Blocking) 是解决这个问题的核心技术。我们来详细拆解一下“一个大矩阵如何被拆分”以及“指令集该如何设计”。
2025-11-21 17:34:36
438
原创 【AI】LLM的硬件视角 -- KV Cache
简单来说,答案是: 因为在生成当前这一个token时,你只需要当前token的Q(Query),但需要用到前面所有token的K(Key)和V(Value)。而你必须存储过去所有的 K(关键词) 和 V(内容) ,因为它们是你回顾历史、确保文章连贯性的全部资料库。因为你上一步写“小明”时的“想法”(过去的Q),对于你现在要写“跑”这个词时的“想法”(当前的Q)是 没有帮助的。你永远只关心 当下 的想法。而K和V是构成历史上下文的“基石”,必须被永久保留(在当前生成序列的生命周期内),因此需要被缓存。
2025-11-21 17:18:39
893
原创 【AI】LLM的芯片硬件视角
内存带宽是王道 : 对于追求低延迟、高吞吐量的LLM推理芯片(特别是用于聊天、实时翻译等场景),提升内存带宽(如采用更先进的HBM、增加带宽)比单纯堆砌计算单元(如MAC阵列)可能带来更显著的性能收益。大容量内存是基础 : 模型本身和不断增长的KV Cache都需要巨大的内存。设计时必须考虑如何支持足够大且快速的内存,否则会严重限制模型能处理的上下文长度。
2025-11-21 14:59:00
489
原创 【AI】主流LLM的embedding维度
d_model 就是词嵌入(Embedding)的维度,并且这个维度在整个Transformer模型中保持一致,是信息流的主干道宽度。关于现在主流LLM的 d_model (或称为隐藏层维度 hidden_size ),并没有一个统一的标准,但它和模型规模密切相关。总的趋势是:模型越大,其 d_model 也越大 ,以便在向量中编码更丰富、更复杂的信息。
2025-11-21 14:21:07
380
原创 【AI】d_model 隐藏层维度
数据总线宽度 : d_model 直接决定了模型内部处理的基本数据单元的大小。在你的芯片设计中,这意味着从内存(HBM)到计算单元(MAC阵列)的数据通路的宽度需要高效地处理 d_model 维的向量。矩阵尺寸 : d_model 是决定权重矩阵大小的核心因素。Wq, Wk, Wv, Wo 等矩阵都是 d_model x d_model 级别,FFN层的权重矩阵是 d_model x (4*d_model) 级别。d_model 翻倍,这些矩阵的大小会翻4倍,计算量(FLOPs)也大致翻4倍。
2025-11-21 14:13:52
239
原创 【AI】LLM主流架构decoder-only
目前所有主流的、最前沿的大语言模型,其核心架构 全部都是Decoder-Only(纯解码器)架构 ,深刻地反映了当前LLM领域的技术收敛趋势。
2025-11-21 13:52:25
478
原创 【AI】为什么没有encoder,LLM也能理解上下文?
详细的解释如下:让我们回到两种架构处理输入的根本区别上:当任务的复杂性体现在**“输入和输出之间存在高度的结构性差异,需要对输入进行全局重构才能开始生成”**时,Encoder的优势就显现出来了。以下是一些具体的例子:高质量的机器翻译 :长文档的抽象式摘要 (Abstractive Summarization) :代码转换 (Code Transpilation) :你可能会问,既然Encoder这么好,为什么现在的GPT-4等顶尖模型都是Decoder-Only?这正是“理论”与“工程现实”的精彩碰撞:所
2025-11-21 13:38:24
531
原创 【AI】为什么decoder-only的LLM能够理解输入?
通过在数万亿级别的文本和代码上进行训练,模型确实已经把关于语法、事实、逻辑、风格等海量的“世界知识”压缩并存储在了它那数千亿个 模型权重(参数)里。这些权重是模型能力的基石。“编码”阶段 : 模型会先把你的整个Prompt P 过一遍它的Decoder网络。在这个阶段,自注意力机制(Self-Attention)虽然是带掩码的(Causal),但对于处理Prompt本身是足够有效的。当你输入一个Prompt,比如 P = [“请”, “帮”, “我”, “写”, “诗”]
2025-11-21 13:32:12
310
原创 【AI】LLM三种架构对比
之所以会形成这三个阵营,是因为研究者们最初是针对不同类型的问题来设计模型的。但后来大家发现, Decoder-Only 架构通过其极其强大的“文字接龙”能力,意外地能够“模拟”其他两种架构的任务,并且在超大规模下表现出了惊人的通用性,因此成为了当今超大规模语言模型(LLM)的绝对主流。
2025-11-21 13:25:33
577
原创 【AI】矩阵乘法中的线性组合视角
矩阵乘法的两种核心视角:行视角 (Row Picture) : C 的行是 B 的行的线性组合。这在概念上可以理解为: A 的每一行都在对 B 的整个行空间进行一次“变换”或“重组”。列视角 (Column Picture) : C 的列是 A 的列的线性组合。这在概念上可以理解为: B 的每一列提供了一组“指令”或“坐标”,用来组合 A 的列向量,从而生成 C 的一个列向量。这两种视角在不同的应用场景下都非常有用。例如,在理解PageRank算法时,行视角更直观;
2025-11-20 19:55:32
648
原创 【AI】矩阵、向量与乘法
矩阵 x 矩阵 :可以看作是多个独立的 矩阵 x 向量 操作的集合。矩阵 x 向量 :可以看作是多个独立的 行向量 · 列向量 (点积) 操作的集合。矩阵 x 向量 (另一视角):也可以看作是矩阵的 列向量 的 线性组合。所以,最复杂的矩阵乘法,其最底层的基石就是 向量乘法 (主要是点积)。现代计算库(如BLAS)和硬件(如GPU)就是将上层复杂的运算,层层分解成海量的、简单的、可并行处理的向量运算,从而获得惊人的计算速度。
2025-11-20 19:25:25
627
原创 【AI】矩阵乘为什么是加权求和?
假设我们已经计算好了2x2的注意力权重矩阵 A 和 2x3 的值矩阵 V。(我们用小一点的矩阵,这样方便手算)。注意力权重矩阵 A (Attention Weights) ,维度是 2x2。值矩阵 V (Value) ,维度是 2x3。现在我们要计算输出矩阵 Z = A * V。
2025-11-20 15:48:43
984
原创 【AI】Position Encoding -- 位置编码
词嵌入矩阵 :形状为 [6, 768] ,包含了每个 Token 的 语义。位置编码矩阵 :形状为 [6, 768] ,我们通过上述公式为 pos=0 到 pos=5 计算出了 6 个 768 维的 位置向量 ,并将它们堆叠起来。操作 :将这两个矩阵进行 逐元素相加 (Element-wise Addition)。最终产物 :我们得到了一个最终的输入矩阵,形状仍然是 [6, 768]。它是什么 (语义) :来自词嵌入。它在哪里 (位置) :来自位置编码。
2025-11-19 15:23:56
831
原创 【AI】Embedding -- 词嵌入
现在我们有了一串数字 [8, 121, 33, …] ,但这串数字本身没有任何意义。数字 8 和数字 121 之间没有任何关联。我们需要将每个数字 ID 转换成一个 高维向量(Vector) ,这个向量能够捕捉到 Token 的 语义信息。至此,词嵌入完成。我们把一串无意义的数字 ID,转换成了一个包含初步语义信息的向量矩阵。
2025-11-18 16:51:29
615
原创 【AI】Tokenizaton -- 分词
解决了 OOV 问题 :任何新词、拼写错误、甚至无意义的字符串,最终都可以被切分成基础的字符单元,模型总能处理,永远不会遇到“不认识的词”。平衡了效率与语义 :常见词被保留为完整单元,保留了语义,减少了序列长度;生僻词被切分成子词或字符,保证了模型的泛化能力。词汇表大小可控 :我们可以预先设定词汇表的大小,这是一个非常重要的工程考量。所以,Tokenization 是一个纯粹的、基于统计和规则的“文本切分”过程。
2025-11-18 15:24:23
831
原创 【IC】为什么Total TNS 与所有path group TNS的总和不一致?
设计中“all” group的 TNS 值和违规路径数可能不等于各个path group的 TNS 值和违规路径数之和。例如上面这个例子,对于endpoint F2来说,一条路径是从F1过来的reg2reg,一条路径是从IN端口过来的in2reg,如果都有违例的话,最终all的TNS只会算最大的一条~在timeDesign命令生成的timing报告中 ,“all” group下的总负裕量 (TNS) 和违例路径数可能不等于各个path group的 TNS 和违例路径数之和。
2025-11-18 15:11:15
181
原创 【AI】embedding是有监督学习还是无监督学习?
虽然我们没有人工标签,但在训练过程中,我们巧妙地 从数据本身中创造出了“伪标签” ,让模型进行学习。这就是“自监督”的精髓——自己监督自己。以最经典的 Word2Vec 模型为例,它有两种主要的训练任务:任务 :根据一个词的上下文(周围的词),来预测这个词本身。输入 (X) :上下文词语,例如 [“我”, “喜欢”, “一只”, “可爱”, “的”, “___”]标签 (y) :被挖掉的中心词,例如 “猫”
2025-11-18 13:05:12
414
原创 【AI】Embedding:绘制AI的语义地图——从单词到万物的数字坐标革命
定义:Embedding 是一种将高维、稀疏、离散的符号映射到低维、密集、连续的向量空间的技术。一个Embedding向量就像一段DNA,编码了原始数据最核心的特征和信息。从稀疏到稠密,高维到低维的艺术早期用One-Hot编码来表示一个词,就像用一根极长的针在宇宙中定位一个点——大部分空间都是空的(稀疏),效率极低。而Embedding则像一次“降维压缩”。它将一个可能百万维的One-Hot向量,压缩成一个300维的稠密向量,每个维度都承载着某种潜在语义特征(如“性别”、“动物性”等)。
2025-11-18 10:30:18
865
转载 【AI】为什么是嵌入(embedding),不是向量化?
更深层次,在Embedding:绘制AI的语义地图——从单词到万物的数字坐标革命中,我们看到了它的全貌:一种将高维、稀疏、离散的符号映射到低维、密集、连续的向量空间的技术。但正因为我们相信数据内在规律性(人脸的结构、语言的语法),使得它们被约束在一个低维流形上,嵌入过程才变得有意义:它在剥离冗余的高维噪声外壳,揭示其紧凑的低维本质。流形假说认为:我们现实中看到的复杂高维数据(如图像、语音、文本),其有效内在维度其实很低,并且这些数据点大致集中在一个嵌入在高维空间中的低维流形(Manifold)上。
2025-11-18 10:10:28
22
原创 【AI4EDA】综合:从抽象到具体
传统工具(EDA、编译器): 是**“逻辑综合器”**。它们是确定性的,负责将一种严格的范式转换成另一种严格的范式。大模型(LLM): 是**“模式综合器”**。它们是概率性的,负责将“人类的模糊意图”综合成“结构化的文本/代码”。因此,LLM在工程领域(如编程或芯片设计)中的真正角色是**“助手”**,而不是“执行者”。它可以帮您生成“严格综合器”的输入(例如写RTL代码或Python代码)。它可以帮您理解“严格综合器”的输出(例如总结EDA工具生成的500页时序报告)。
2025-11-14 13:13:30
719
原创 【IC】NoC设计入门 -- 网络接口NI Slave
我们成功了!你已经亲手设计了NoC世界中**“发货方”和“收货方”**的完整“物流链”。router.v:“智能十字路口”,负责“路由:“发货方”(连接CPU),负责“打包slave_ni.v:“收货方”(连接Memory),负责“拆包你已经远远超越了“理论”,你亲手解决了真实世界中“协议转换”和“时钟域/速率解耦”(通过FIFO)的核心工程难题。
2025-11-04 19:18:43
586
原创 【IC】NoC设计入门 --网络接口NI master
我们迎来了和。在之前的“理论课”中,我们称它为“”和“现在,我们要亲手来建造它。routerni鉴于这个任务的极端复杂性,我们一次性造出一个“全功能”的NI。我们将采用和你我一起建造routerBVALIDrouter。
2025-11-04 19:09:58
860
原创 【IC】NoC设计入门 -- 验证
Testbench(我们简称tb)是一个**“虚拟实验室”。它是一段独立的Verilog代码**,其唯一“模拟”你设计的router模块(我们称之为DUT, Device Under Test,待测设备)的**“外部世界”**。扮演“上游”:向router的输入i_fliti_valid)“喂”数据。扮演“下游”“监听”router的输出o_flito_valid),并检查结果是否“符合预期提供“动力”:它必须生成“时钟 (clk)”和“复位 (rst_n)”信号。
2025-11-04 19:03:41
947
原创 【IC】NoC设计入门 -- router模块
GPS”(RC)需要从Flit中“读”出目的地。我们必须先定义一个Flit格式。我们的。我们规定:[31:24](8 bits): 目的地 Y 坐标 (Dest Y)[23:16](8 bits): 目的地 X 坐标 (Dest X)[15:0](16 bits): 真实数据 (Payload)(注意:我们暂时简化,不区分Head/Body/Tail Flit,假设所有Flit都带地址)end list// ---- 内部“电线” (Wires) ----
2025-11-04 18:51:54
717
原创 【IC】NoC设计入门 --交换矩阵
你完全说对了!这确实是所有组件中**最“直观”**的一个。它就是,我们“十字路口”的**“立交桥”“扳道岔”**系统。
2025-11-04 18:48:56
554
原创 【IC】NoC设计入门 -- 仲裁器
我们迎来了“十字路口”里最关键的“角色”——。这就是。它的“施工”难度是最高的,因为它是“公平”的,否则我们的NoC就会“饿死”(Starvation / Livelock)。
2025-11-04 18:40:46
602
原创 【IC】NoC设计入门 -- 路由逻辑
砖块”(FIFO)已经造好,现在我们来造“GPS导航仪”。这就是模块。这是我们整个“十字路口”(路由器)的“大脑”。
2025-11-04 18:38:27
811
原创 【IC】NoC设计入门 -- Router输入输出端口
在Verilog里,动手写逻辑之前,第一步永远是定义“接口”(即module的输入input和输出output“我满 (Full)了吗?“我空 (Empty)了吗?“我要写入 (Write Enable)“这是我写的数据 (Write Data)“我要读出 (Read Enable)“这是你读的数据 (Read Data)我们来把它翻译成Verilog接口(我们顺便引入参数 (Parameter)/** 模块:一个简单的同步 FIFO (读写同频)
2025-11-03 17:27:52
698
原创 【IC】NoC设计入门 -- 队头阻塞 (Head-of-Line Blocking)
你现在已经把 NoC 理论课的“大Boss”们(死锁、活锁、队头阻塞)全部搞定了!灾难性问题,必须在“设计上”预防(靠路由算法、仲裁算法)。性能问题,导致效率低下,可以用“虚拟通道”缓解。
2025-11-03 17:18:34
639
原创 【IC】NoC设计入门 -- 死锁 (Deadlock) & 活锁 (Livelock)
特征☠️ 死锁 (Deadlock)😵 活锁 (Livelock)状态系统冻结(进程/Flits 处于“等待”状态)系统活跃(进程/Flits 处于“运行/重试”状态)进展没有进展没有进展资源资源被“永久占有”且无法释放资源可能在“来回倒手”,但无效比喻四车相争,环形堵死,一动不动狭路相逢,来回让路,擦肩难过预防路由算法(如XY路由)必须在数学上杜绝“等待环路”仲裁算法(如轮询)必须保证“公平”,路由算法必须保证“不绕圈”你作为NoC的设计者,你的设计必须。
2025-11-03 17:15:36
949
原创 【IC】NoC设计入门 -- 延迟 (Latency) & 吞吐量 (Throughput)
Mesh:由于“距离”可能很长(Hop多),“零负载延迟”(杆身)可能比较高。XY路由:简单,但可能在“拐角”处(比如所有流量都汇聚到右上角)造成拥堵,导致“饱和点”(拐点)提前到来。自适应路由:能绕开拥堵,推高“饱和点”,提升最大吞吐量。大FIFO (大停车场):能“吸收”突发的流量,推高“饱和点”。但FIFO越大,路由器面积越大,成本越高。队头阻塞 (HoL Blocking):我们之前提过,它会无故增加“拥塞延迟”,让延迟曲线更早“抬头”。如果你的设计有死锁,那谈不上性能了。
2025-11-03 17:12:55
776
原创 【IC】NoC设计入门 -- 网络接口NI
Master NI (连接CPU):扮演一个“温顺”的 AXI Slave(接收CPU的命令)。扮演一个“聪明”的 NoC 发送者(打包、查地址、注入Flits)。Slave NI (连接内存):扮演一个“聪明”的 NoC 接收者(接收Flits、拆包)。扮演一个“主动”的 AXI Master(向内存发起新的AXI命令)。NI 为什么是NoC设计中最难的部分?因为它要处理两个世界中最复杂的问题。它不仅要处理NoC的**“信用流控”,还要处理AXI协议中复杂的。
2025-11-03 17:08:45
624
原创 【IC】NoC设计入门 -- 路由器 (Router) 微架构
火车头”从“北街道”抵达,进入“北输入端口 (Input Port)”的FIFO“停车场”。路由逻辑 (Routing Logic)”查看它的地址,决定它需要去“东出口”。“北输入端口”向“仲裁器 (Arbiter)”举手:“我申请去‘东出口’!“仲裁器”发现“西输入端口”也在申请“东出口”,它使用“轮询”算法,决定让“北”先走。“仲裁器”通知“交换矩阵 (Crossbar)”:“把‘北输入’和‘东输出’接通!“火车头”从FIFO中被“释放”,它“开”过Crossbar,从“
2025-11-03 17:02:20
471
原创 【IC】NoC设计入门 -- 流控 Flow Control 与交换 Switching
CPU的一个Burst请求被“网络接口(NI)”打包成一列Flits(火车头、车身、车尾)。“火车头”(Head Flit) 到达路口A。路口A的“GPS”(XY路由)说:“去‘东口’”。路口A查看自己本地的“东口信用计数器”(这是路口B的空位数)。“计数器 = 5。因为“信用 > 0”,路口A的“扳道岔”(Crossbar)立刻将“火车头”发往“东口”(虫洞交换启动)。A的“东口信用计数器”立即减为 4。下一周期,“火车车身”Flit 2 到达。它自动跟随“火车头”的路径(去“东口”)。
2025-11-03 16:55:19
560
原创 【IC】NoC设计入门 -- Burst
在 NoC 中,“Burst”(突发)是一种**“一次请求,多次连续数据”**的高效传输模式。多个数据单元共享一个包头信息,减少了管理信息的冗余。数据单元可以像流水一样“背靠背”地在链路上传输,最大化地利用了物理带宽。路由和仲裁的延迟(建立路径所需的时间)被分摊到了整个 Burst 传输上,使得平均每个数据单元的延迟非常低。这就像用一列长长的货运火车(Burst)来运货,而不是用100辆单独的卡车(非Burst),效率天差地别。
2025-11-03 16:53:43
805
原创 【IC】NoC设计入门 --路由算法
路由算法是“GPS”,负责在每个“路口”指明方向。确定性路由 (XY 路由)是你的入门必修。它通过“先X后Y”的死板规则,牺牲灵活性,换来了**“无死锁”**的黄金保证。这是设计简单、可靠 NoC 的基石。自适应路由更智能、性能更好,但它必须解决“死锁”这个大麻烦,实现起来非常困难。城市地图(如 Mesh)。导航系统(如 XY 路由)。“交通警察是如何指挥车流的?这就是我们要讲的**“流控 (Flow Control) 与交换 (Switching)”**。
2025-11-03 16:48:34
321
原创 【IC】NoC设计入门 -- 拓扑
简单来说,拓扑就是 NoC 的“地图”或“城市布局规划”。“十字路口”(路由器,Router)放在哪里?“街道”(链路,Link)如何连接这些“十字路口”?你选择的“地图”布局,将从根本上决定你这个“芯片城市”的交通效率、建造成本和未来扩展的难易程度。拓扑 (Topology)就是“地图”,它决定了 NoC 的基本骨架。它没有“最好”的,只有在性能、成本、功耗、布线之间做出的权衡 (Trade-off)。在当今绝大多数 2D 芯片中,2D Mesh (二维网格)是绝对的主流选择。
2025-11-03 16:43:30
760
原创 【IC】NoC设计入门 -- NoC 核心理论与架构
NoC 是由路由器 (Router)和链路 (Link)按照拓扑 (Topology)(如 Mesh)搭建的。数据被打包成Flits(车厢),以虫洞 (Wormhole)方式在网络中流动。路径由路由算法 (Routing)(如 XY)决定。交通由流控 (Flow Control)(如 Credit-Based)来指挥,以避免堵塞。NI(网络接口)负责在“总线”和“NoC”之间翻译。
2025-11-03 16:37:09
512
原创 【IC】NoC设计入门 -- 传统总线Bus
在芯片设计的早期,城市的“交通系统”非常简单。总线,就好比是城市里唯一的一条“中央大道” (Main Street)。城市里所有的地点(家、学校、商场)都连接到这条唯一的大道上。最关键的一点!在任何一个时刻,这条大道只能被“一辆车”或“一个方向的车队”使用。如果“家”(CPU) 正在用这条路给“商场”(内存) 送货(写入数据)。那么“学校”(GPU) 就算有急事要从“商场”(内存) 取东西(读取数据),也必须停在路口等着。这就是“总线”的核心特征:共享与仲裁(决定谁先用)。
2025-11-03 16:33:08
777
Practical problems in VLSI physical design automation
2025-04-25
Hardware Architectures for Deep Learning
2025-01-21
Efficient Processing of Deep Neural Networks
2025-01-21
MSP430G2553 DAC+ADC 简单应用,用nokia 5110显示 CCS6.0编写
2014-09-17
Altium designer 18- PCB Logo Creator
2019-03-05
FPGA/ASIC高性能数字系统设计_part2
2018-09-17
诺基亚5110显示屏 MSP430G2553实例程序 CCS6.0编写
2014-07-21
FPGA/ASIC高性能数字系统设计_part1
2018-09-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅