- 博客(48)
- 收藏
- 关注
原创 SGlang 并行压测基本代码 vllm适用(g老师提供版)gpukvcache usage不为0 prefix也不为0 可以看良性
其它高级参数(最大上下文、批量等)在 SGLang 的 flag 命名可能与 vLLM 不同。建议先用最小启动,性能参数逐步加(避免不认识的 flag 报错)。
2025-09-11 17:01:22
243
原创 一文部署SGLang GPU版本:A100+cuda12.1+torch2.5
本文介绍了在Docker容器中部署sglang的步骤:1)创建带GPU支持的容器并挂载模型缓存目录;2)安装sglang(v0.4.6.post4)并配置环境;3)启动服务时遇到代理问题,提供了两种解决方案:通过NO_PROXY排除本地地址或临时取消代理。建议使用tmux/nohup保留日志,并逐步调整性能参数。部署成功后,可通过127.0.0.1:30000访问服务。
2025-09-11 16:55:13
810
1
原创 一文从零部署vllm+qwen8B模型 源代码可编译 A100版/3080版的一些小建议和踩雷
4、拉取镜像之后启动 --gpus可能会报错,这可能是因为你强力卸载的时候删除了对应的驱动,装的话可能又会有报release不识别的问题,改代理可能也无效,最终解决方案是下载到本地然后cpy上去。5、主包终于可以serve自己的大模型了,我是把docker里的东西映射到本地的 包括vllm和模型参数,挂docker的时候设置的。6、docker里装好了这几个玩意儿,可能gpt还会建议你在docker里搞虚拟环境,我的建议是跳过这个建议。5、cuda和torch一定要适配。最后一步大概花了三十分钟+
2025-09-09 20:06:01
462
原创 一文从零部署vLLM+qwen0.5b(mac本地版,不可以实操GPU单元)
本文介绍了在Mac电脑上部署vLLM大语言模型环境的完整流程。首先通过Anaconda创建Python 3.10虚拟环境(因vLLM不支持3.13+版本),然后安装vLLM及其依赖项。接着以Qwen3-0.6B模型为例,详细说明了如何调整参数(如设置max-model-len=2048)解决CPU环境下的服务启动问题。通过curl测试验证了API服务部署成功,在Mac M3 Pro CPU上实现了约10.5 tokens/s的生成速度。文章还分析了运行过程中的关键信息提示,包括CPU环境警告和性能指标,为在
2025-09-05 21:06:48
1948
原创 一文读懂cpu_offload_gb vLLM里的参数搬运
该代码实现了将模型参数从GPU卸载到CPU的功能,通过cpu_offload_gb参数可扩展虚拟GPU内存容量。核心逻辑包括:检查参数位置,计算可卸载空间,根据是否支持UVA选择不同卸载方式(直接拷贝或使用锁页内存)。对于非UVA模式,会动态修改模块的forward方法,在调用前将参数临时移回GPU。该功能可缓解显存不足问题,但会引入数据传输延迟,性能取决于CPU-GPU互连速度。代码通过全局变量_CPU_OFFLOAD_MAX_BYTES控制卸载总量,并考虑了递归调用等边界情况。
2025-09-05 21:03:25
1837
原创 一文读懂attention_kernels.cuh
本文介绍了vLLM团队基于NVIDIA FasterTransformer实现的一个高效注意力计算内核。该内核通过分块处理(partitioning)和并行计算优化了注意力机制的性能,支持块稀疏(block sparse)和FP8 KV缓存等特性。核心算法包括: 使用Warp级别的并行归约计算注意力分数和softmax 支持分块处理长序列,通过PARTITION_SIZE参数控制处理粒度 实现基于块稀疏的局部注意力机制 包含针对不同硬件平台(NVIDIA/AMD)的优化实现 该内核通过CUDA/ROCm底层
2025-09-03 16:39:05
1023
原创 一文读懂paged_attention_v1.cu
CUDA + C++ 混合写的,用来实现 Paged Attention v1 的 kernel 启动逻辑在大模型推理里,注意力计算需要用到历史的 。但如果序列很长,显存放不下,就需要把 拆成 block(分页) 存储,只有部分块在显存里,其他在 host 或远端存储。Paged Attention 就是基于这种 块化缓存 的注意力实现方式,避免了整段序列一次性放进 GPU。这个文件是 内核启动器 (launcher),主要工作是:它本身不写数学运算逻辑,而是负责 派发 (dispatch)。这些是 C
2025-09-03 16:10:57
848
原创 GlusterFS 更适合用来做“无状态推理的缓存池” 为什么
推理模式KV Cache 存储位置特点缺点有状态 (Stateful)绑定在 GPU 本地 HBM简单高效,延迟最低GPU 利用率低,不灵活无状态 (Stateless)外部缓存池(如 GFS/Redis/NVMe pool)GPU 可随时调度,提升利用率跨网络取 KV → 延迟增加。
2025-08-18 14:02:37
227
原创 HBM CPU Cache / GPU Cache 的关系
摘要:CPU和GPU采用不同的存储架构。CPU内置SRAM实现的L1/L2/L3缓存(1-10ns延迟),配合主板上的DDR4/5主存(100ns延迟)。GPU同样有芯片内部SRAM缓存(ns级延迟),但主存采用堆叠封装的HBM(30-100ns延迟),相比CPU的DRAM具有更高带宽(TB/s级)。HBM属于主存而非缓存,与CPU的DRAM层级对应,但通过先进封装技术实现更优性能。存储系统均遵循"缓存快容量小,主存慢容量大"的设计原则。
2025-08-18 13:44:57
1071
原创 TypeError: __init__() missing 1 required positional argument: ‘coolant_config‘
在跑DNN写predictor函数的时候遇到的问题,一直有coolant_config无法识别,追溯到keras.tensorflow的loss那里,然后在自己的loss函数中声明一下就好了。
2025-07-22 17:40:07
287
原创 信号与电源的完整性分析 Eric Bogatin系列
【摘要】本文梳理了高速电路信号完整性(SIPI)的基础知识,重点解析传输线关键概念:1)非平衡传输线(如微带线、同轴电缆)的特征;2)特性阻抗的物理本质及其50欧姆优化原理;3)不同传输线结构(双绞线/微带线/带状线)的典型应用场景;4)高频系统(>200MHz)中传输线的电阻性表现;5)多层板设计中返回路径阻抗优化方法,强调去耦电容对降低地弹噪声的作用;6)集总电路模型带宽与信号带宽的关系。文中配图辅助说明传输线截面结构与阻抗特性,为高速电路设计提供理论支撑。(148字)
2025-06-28 13:55:02
574
原创 在32位虚拟地址 + 256MB物理内存 + 4KB分页系统下,地址是如何转换的
页表翻译的是“页号部分”(高位),不翻译页内偏移(低位12 bits);所以每个 PTE 管理一整页(4KB)的映射。如果你想,我可以帮你整理成中文完整版图解或者出几个题目练习页表大小/页数/地址分解。需要吗?📘✨。
2025-06-14 14:59:32
987
原创 分支预测跳转 概率
所以在分支预测非常简单、只有一个静态策略时,预测“总不跳”和预测“总跳转”哪个都不行,失误率都很高,最终都把流水线打得支离破碎。现代 CPU 就用更复杂的动态预测器去尽量把 mispredict 率降到个位数,才把分支损失压到可忍受的范围。和完美流水线(1 cycle/instr)比,时钟节拍不变,但 CPI(cycles per instruction)从 1 涨到 2.936,整体慢。原本每条指令至少要 1 个周期(完美流水线假设),现在多了这罚款,所以。平均每条指令上,会有多少次“错误预测”?
2025-06-13 12:01:19
1025
原创 多种晶圆级封装(Wafer Level Packaging, WLP)形式
这页展示了 ITRS(International Technology Roadmap for Semiconductors)2007 年提出的,从最简单的结构到复杂的 3D TSV(Through Silicon Via)系统封装,反映了封装技术多样化和系统集成化的发展趋势。
2025-06-11 09:56:49
1906
原创 焊料凸点(Solder Bumping)VS 铜凸点(Copper Bumping)
特征焊料凸点铜凸点成本工艺简单但容易塌陷成本略高,但更稳定塌陷性易塌陷(reflow后变形)不塌陷(物理结构决定)高宽比限制较多(<1.2)可达>1.2甚至更高适用场景常用于传统Flip Chip常用于高I/O、高可靠性或异形bump需求。
2025-06-10 10:54:26
1803
原创 焊料凸点电镀成型流程 回流焊
工序目的UBM沉积提供粘附性、润湿性、阻挡层电镀焊料形成焊接结构的主体回流焊实现最终球形焊点该工艺兼具精度高、可控性强、适用于大规模量产,是高I/O芯片中最常用的封装技术之一。
2025-06-10 10:38:26
1230
原创 倒装芯片凸点成型工艺
UBM 是封装成功的基础:决定焊球附着性与长期可靠性;Bump 工艺多样化:可根据密度、成本、可靠性需求灵活选择;E3 蒸发型工艺 / 电镀工艺是高端 Flip Chip 封装首选;C4NP 技术开启助焊剂替代的新方向;整体流程结合了光刻、蚀刻、薄膜沉积、回流焊等多项微电子制造工艺。
2025-06-09 20:39:33
3130
原创 集成电路流片随笔26:tinyriscv的三级流水线细则pc
pc_reg模块负责控制指令地址(PC)的更新。复位(Reset)跳转(Jump)流水线暂停(Hold)正常递增条件PC更新为复位 or JTAG复位跳转使能暂停标志 >=Hold_Pc保持不变正常pc_o + 4。
2025-05-09 19:08:58
439
原创 集成电路流片随笔19:full_handshake
该模块实现了通过 JTAG 协议进行数据的接收,并通过握手信号确保接收端和发送端的数据交互可靠。它基于状态机,根据接收到的请求信号来控制接收过程:在 STATE_IDLE状态时,接收端等待接收请求;在 STATE_DEASSERT状态时,接收端确认接收到数据并准备接收下一批数据。同时通过应答信号(ack)向发送端确认数据接收状态,并通过 recv_rdy和 recv_data输出接收到的数据。
2025-04-28 16:39:23
539
原创 集成电路流片随笔17:jtag子模块1
DTM Debug Transport Module 是 JTAG 调试协议中的一个模块,负责数据传输和调试操作。
2025-04-21 17:55:54
1196
原创 集成电路流片随笔14:RIB总线模块和grant仲裁详解tinyriscv
RIB 模块是多个主设备和从设备之间通信的核心组件,确保数据可以无冲突地传输。它负责处理请求、仲裁访问权限、解码地址以及确保每次只有一个主设备可以访问总线。在RIB总线中,有多个“主设备”(master)比如 CPU 取指、CPU 访存、调试器等,它们可能会同时访问总线,为了防止冲突,需要一种仲裁机制决定“本时刻哪个主设备可以控制总线”。这就是grant的作用 ——“授予(grant)某个主设备访问权限”
2025-04-16 12:57:58
1690
原创 集成电路流片随笔13:SPI模块tinyriscv
该模块实现了 SPI 主机的基本功能,包括数据发送 (MOSI),数据接收 (MISO),以及时钟控制 (spi_clk) 和片选 (spi_ss) 信号的生成。通过寄存器控制,用户可以配置 SPI 工作模式、波特率、数据传输等。
2025-04-16 12:57:30
581
原创 集成电路流片随笔5: tinyriscvSOC顶层整合所有模块和外设的格式与例化 Verilog
该模块是一个 TinyRISC-V处理器的系统顶层(SoC)设计,连接了多个外设。通过主接口(Master Interface)和从接口(Slave Interface),外设和 CPU 进行数据交换。外设包括JTAG等,所有外设通过总线进行地址解码。每个外设(如timergpiouart等)都通过 addr_i和 data_odata_i信号来进行地址和数据的交换。具体源码见。
2025-04-12 10:22:15
821
原创 集成电路流片随笔3:最简单的流水线中数据读写解读之forwarding
这段 Verilog 代码实现了对寄存器读取时的“前递逻辑”,当检测到读地址 = 正在写的地址时,直接返回写入值,避免流水线的数据冒险问题。附:记不得cpu流水线的可以看一个 CPU 的指令执行过程可以分为多个阶段,不同架构复杂度不同,但以经典的 RISC-V 或 MIPS 五级流水线架构为例,CPU 的执行过程通常分为以下5 个阶段(五段流水线)
2025-04-11 15:43:13
632
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅