FlashAttention 原理 | 深度学习算法

FlashAttention 的计算结果和原始算法是严格对齐的,不是对 attention 进行近似。FlashAttention 通过分块的方式减少对全局内存的读写,从而加速运算过程。本文仅包含对 FlashAttention 在前向推理上的优化,不包含反向传播相关内容。

阅读更多

西方建筑样式演进 | 读书笔记

由于近现代复杂的历史因素,上海现存有大量形式多样的西式建筑,已经成为今日上海最亮眼的城市特色。自笔者四年前到上海生活以来,通过一些展览、讲座和实地参观接触到了各种各样的西式建筑,对其产生了浓厚的兴趣,也对西方建筑样式的演变有了一定了解。本文参考《西方建筑从远古到文艺复兴的演进》系列文章(廖方)和《外国建筑简史》(刘先觉),以流程图的形式将西方建筑样式从古至今的演变路线进行了梳理。

阅读更多

CUDA 实践:Winograd 卷积 | CUDA

对于小尺寸的卷积核,Winograd 卷积也是一种常用的优化方法。其基本原理是基于最小滤波算法用加法来替代乘法,以此来降低卷积运损啊的乘法复杂度。

阅读更多

CUDA 实践:隐式 GEMM 卷积 | CUDA

img2col + GEMM 是一种比较常用的卷积优化方法,因为这样可以利用到性能已经优化得比较好的 BLAS 库。早期的一些深度学习框架(如 Caffe)就是用了这种方式。但是这种方式有个弊端,就是需要大量的内存/显存来存储中间结果。隐式 GEMM 卷积则可以直接从原始 feature map 和 weight 中取值,避免产生占用巨大内存/显存的中间结果矩阵。

阅读更多