0%

这篇工作比较缝合,它引用了 3 个 idea:

TeAAL 提出用 Einsum 的形式去描述算子,并指导加速器的设计。但是 Einsum 只能描述仅包含加法和乘法的算子,对于 Flash-Attension 这种包含指数运算(softmax)和迭代运算的算子无法描述,于是作者借用了 Extended Einsum 的形式描述了 Flash Attension 算子并实现了 FuseMax 加速器,同时论证了 pass 抽象的合理性。

而实际上,TeAAL 提出的用 Einsum 指导加速器设计的思路并没有因为使用了 Extended Einsum 而被拓展;FuseMax 所展现的性能优势,大部分来自于 Flash-Attension 算法本身,而不是其硬件实现。

一、Background

1.1 Flash Attention, Pass

Flash-Attention 是一种 Attention 算子的实现,相比于传统的实现,它可以降低内存带宽的需求,并且使用更少的片上内存,更适合当前加速器存在的 memory bound。为了达到这个目的,我们需要:

  • 尽可能少的从内存中读取数据 -> 算法设计的 pass 数要少
  • 尽可能少使用片上内存 -> tile 后 reduce
Read more »

一、总论

当我们提到大模型 LLM 的时候,总是和 Transformer 这种架构联系在一起,似乎只有使用了 Transformer 架构的深度学习模型才配叫作大模型。

不过以我目前浅薄的认知,我倒觉得 Transformer 并不是 LLM 的核心特征,因为 LLM 的算法变化很快,Transformer 从 2017 年到现在有了多种变体,也有完全不采用 Transformer 架构的 AI。我个人感觉 LLM 的核心有两点:

  • 模型参数极大:我们认为模型参数越多,模型就越智能。这是“涌现”的一种具体体现。
  • 采用“预训练-微调-推理”范式:这种范式使得模型的通用性得到了增强,划分了不同的生态位。

我希望在下文中记录一下关于 LLM 或者 Foundation Model 的基础知识,以避免被这个时代抛下太久。

Read more »

一、分布式系统

1.1 总论

分布式系统指的是利用多个单体计算机系统构建的多体计算机系统。

与并行计算不同,分布式系统更侧重于用多个计算实体完成非常多个细碎的任务。而并行计算侧重于利用多个计算实体来更快更高效地完成一个计算任务。

分布式系统包括了执行流的分布式和数据的分布式。在北航 OO 课电梯问题中,涉及了多线程,属于是执行流的分布式,这就导致我以为分布式只是执行流的分布式,涉及的问题只是互斥和同步,这是非常片面的。数据的分布式指的是,存在多个数据副本,cache 就是一种数据分布式的实体。

Read more »

一、CPU 虚拟化

2.1 背景

CPU 虚拟化范畴还挺多的,但是我们这里应该指的不包括不同 ISA 的虚拟化,而只是 CPU 的虚拟化,也就是虚拟出来的 CPU 和原本的 CPU 具有相同的 ISA 。

2.2 Trap & Emulate

为了虚拟化出多个 CPU,我们让虚拟的 OS 跑在用户态,也就是如下结构:

Read more »

那是 2023 年的夏天,楠神走出门,看向焦急等待的杰哥和我,问我们:

“你们知道“系统”和“体系结构”的区别吗?”

一、总论

计算机系统这个系列,是我作为一名方向是 system 的研究生的,基于 IPADS 实验室开设的“计算机系统原理”等课程,整理而成的,并不保证正确性,因为 system 实在是浩如烟海,而我又太菜了。

在这篇博文里,我想谈谈我心目中的 system 是什么,这并不是 IPADS 课程的观点。


Read more »