学习笔记

分类:学习笔记

2026-10-06

CUDA学习之GEMM(一)

这一节按照ppt完成以下任务,分别是矩阵乘法GEMM的Naive版本,内存合并版本,SMEM分块版本,1D Blocktiling版本,2DBlocktiling版本等等。我感觉还挺恶心的,这个做完我就拿去当我简历上的东西了,直到后面我们完成了FlashAttention的优化。 认真做做吧!

学习笔记CUDA
↗
2026-09-30

CUDA学习之内存模型与规约优化与向量规约

问你个问题,《情爱现象学》中爱会有个什么高潮之后的断崖,然后作者提到了什么光环,圣像的破灭,然后我如果要继续爱会有个什么末世论的爱,那这里的爱和圣像或者光环那个阶段的爱有什么区别呢 Roofline 先说一下上次遗留下来的一些问题:Roofline 上次只是粗浅的知道了Roofline大概的落点在哪,但是对于它实际的意义其实我并没我想象中的清楚,所以这次仔细…

学习笔记CUDA
↗
2026-09-20

ONNX项目报告

项目提交人:李澍 设计与实现 ONNX动态维度表示 之前版本的Shape本质上是 vector , 所以它只能保存具体的整数,无法直接保存”batch”,或者”unknown”这样的语义,所以我在前端增加了一层表示。 例如输入为: [ "batch" , 3, ?, 2] class DimensionKind ( str , Enum): FIXED =…

学习笔记C++PythonAI infra
↗
2026-09-09

AI 编译器项目实现笔记

写一个做项目时的笔记,记录一下 ONNX 这是一个需要调用的python包,它的作用是把 PyTorch、TensorFlow 等框架训练出来的模型,转换成一个统一的计算图格式 .onnx,然后交给不同推理后端运行。 一个ONNX模型大概可以理解为: ModelProto │ └── GraphProto │ ├── inputs │ ├── outputs…

学习笔记
↗
2026-07-20

nano-vllm 学习笔记-投机解码EAGLE

做一下投机解码这一块的笔记,感觉这一块还是很重要的,所以就自己实现一下。 投机解码主要的逻辑就是我如果线性的一个个的去求decode出来的token,那么GEMM就会退化成GEMV,因为是流水线型的。为了缓解这种情况所以就采取了投机解码的方式,意思是我拿一个小模型一次性的多生成几个token,然后统一的再去验证它。 这里我采取的是复现EAGLE这个方法,它是…

学习笔记
↗
2026-07-17

nano-vllm 学习笔记-量化

这里我打算围绕着AWQ去做,然后我发现AWQ在vLLM里面实际只支持FP16这个格式,如果要支持Qwen3和Llama里的BF16的格式,需要再添加一个接口做awq_marlin,这个再vLLM中也是实现了的。 考虑到模型的复杂性和我实际的工作量要求,我打算先做出来最基础的AWQ,然后在跑模型的时候强制转换格式。然后把量化这一块搞明白的差不多的时候,我再实现…

学习笔记
↗
2026-07-12

nano-vllm 学习笔记-Llama

代码阅读 因为我是新手,所以先从代码阅读开始 llm_engine.py 调用链如下: LLM.generate() -> add_request() -> Sequence -> Scheduler.add() -> while not finished: -> step() -> Scheduler.schedule() -> ModelRunner.c…

学习笔记
↗
2026-05-19

vLLM学习笔记-显存管理之PagedAttention

在大语言模型(LLM)的自回归生成(autoregressive decoding)过程中,每一步都会生成一个 token,并将其作为下一步的输入。为了提升推理效率,避免重复计算注意力机制中的 Key 和 Value 向量,系统会将这些中间结果缓存起来——这就是 Key-Value Cache(KV Cache)。 然而,传统的 KV Cache 管理方式存…

学习笔记vLLMAI_Infra
↗
2026-05-19

vLLM学习笔记-调度器如何实现

调度器 增加请求 我们可以把 vLLM 的调度理解为以下几条规则: RUNNING 请求优先:vLLM 不是简单地谁先来谁先执行。在每个 scheduler step 中,调度器会先尝试继续调度已经处于 RUNNING 状态的请求。这样做的目的是让已经进入执行流水线的请求持续推进,减少生成过程中的停顿。这里的 RUNNING 不只表示已经开始输出 token…

学习笔记vLLMAI_Infra
↗
2026-05-18

vLLM学习笔记-Worker/Executor详解及协作

客户端到 EngineProc 的方向: 客户端使用 ROUTER 套接字发送请求。 EngineProc 使用 DEALER 套接字连接并接收请求。 ROUTER/DEALER 组合适合“前端 client 与后端 engine 之间的异步通信”:前端可以根据DEALER 的 identity 将请求定向发给对应的 EngineProc,而 EngineP…

学习笔记vLLMAI_Infra
↗
2026-05-09

vLLM学习笔记-引擎模块和流式执行

离线推理:LLMEngine 在线服务:AsyncLLM ZMQ通信 AsyncLLM负责从客户端接收输入请求,并将其转发至底层实际执行推理任务的引擎组件,随后以异步方式获取执行结果。二者之间的通信依托于 ZeroMQ(ZMQ)实现。 REQ/REP通信模式 client 端将以同步阻塞的方式等待 server 端的响应回复。这种模式要求通信双方严格遵循一问…

学习笔记vLLMAI_Infra
↗
2024-09-19

保研复试复习总括

本文针对保研复试进行总复习,对目前的自己针对机器学习、计算机组织,包括数学建模、ACM等等学科进行自己的理解和概括,以总述为主,内容复习为辅。 目的是为了在复试时更好的吹牛qwq。

代码学习笔记学习笔记
↗