一、总论
按理说,这种内容应该放到 Roam 中做一篇私人随笔,而不是作为一篇更为正式的博文。但是或许有些内容,在被人看见的时候,就能起到鼓舞作用呢。毕竟我也是被这样的文章所鼓舞。
认识自我的核心是认识到:“无论如何,只有真实的自己在那里”。
采用我两年半前写下的博文开篇:“GPU 是一个由多个 SIMD 处理器组成的 MIMD 处理器。”
这句话的意思是说,GPU 是一个多核系统,它这里说的“核”,指的是像多核 CPU 中的 core,它对应的不是 CUDA Core,而是 SM。而 SM 本身是一个 SIMD 处理器,也就是说,SM 是一个 SIMD 处理器。CUDA Core 其实对应的是一个 ALU 。一个 SM 中有多个 CUDA Core,所以它可以用一条指令进行多个标量的计算(送入不同的 CUDA Core)。
人们常常将 CPU 比作一个无所不知的教授,GPU 比喻成成百上千个小学生。而实际上,GPU 更像是一组长着很多只不协调的手的大学生。这个比喻中,SM 对应“大学生”,而 CUDA Core 等 SM 中的计算单元对应“手”。
这么多人我不知道还算不算流浪,
可是从沙茶汤上刮起的风只掠过了我。
我急匆匆走过地图上标记的每一个浪漫角落,
自己却永远走不出地图。
我还记得凤凰花别在你耳朵上的样子。
所以现在你的波希米亚长裙去了哪里?
这次出游是实验室组织的团体活动,我有幸担任了旅游的组长。但是因为组长的缘故,在景点和美食的选择上并不能随心所欲,而是更要考虑大家的需求。不过这也并不是什么坏事情,如果由着我的性子,我一定会在宾馆躺三天。
厦门文旅给人的最直观印象就是“浪漫”。宣传里的十里长堤、海上列车、曾厝垵和鼓浪屿,是这座城市的浪漫名片。不过我倒没有明显感觉出很浪漫的地方,这里的浪漫似乎因为旅游开发的缘故,显得有些模式化。更感慨的是,沙坡尾,明明在小红书中被形容成“漫画感”,在我看来,十分萧条落寞:那些本应鲜艳的油漆,在离开了镜头后,显得斑驳和衰老。
但是那又如何呢?我相信它是浪漫的,不是因为那些景点,而是因为它在我的脑海里本来就是浪漫的。我相信那里每个姑娘都穿着各式各样的波西米亚长裙,海风会将裙摆轻轻吹起。凤凰花会像火红的瀑布一样,溢满整个巷子。
Attention Engine 可以被理解成“Attetion 算子库 + Attention 运行时”。有以下设计:
- 可拆分的 Attention 算子:提高了 GPU 内存带宽利用率
- 新的 KV Cache 管理抽象 CBSR:兼具 PagedAttention 和 RadixAttention 的优点,更 general
- 宏观上动态、微观上静态的调度运行时:动态的同时不损害静态抽象和收益
- 可定制的 Attention 算子框架、JIT:一些工程特性
FlashInfer 这篇工作在 2023 年就提出了,据作者所言,那个时候只有 FlashAttention1,还没有 FA2&3,FlashDecode 等工作,但是这些工作论文发得更早。
传统的 Attention 运算需要扫描 3 遍 GPU Memory 中的 Attention Logits 矩阵(len, len),计算密度低。
FlashAttention 提出了 1-pass 的 attention 算法,提高了计算密度,缓解了 GPU Memory 到 GPU Cache 的 IO 瓶颈: