返回

第二百八十六章 视界,加点

首页
关灯
护眼
字:
大
中
小
上一页 回目录 下一章 进书架
    第二百八十六章 视界,加点 (第2/2页)

学公开课:

    【资料价值:62】

    【适配相关性:低】

    【重复内容:高】

    哈子,不是说你不好的意思哈,内容重复了主要是。

    韩路一这次算是真正体会到了什麽叫「知识滑过大脑皮层」的感觉。

    各种各样的相关信息飞速地在脑海中穿行,其中最重要最本质的东西被整理归位。

    这种感觉就很爽,就像是开了挂一样。

    哦,原来我真开了啊,那没事了。

    在视界的可编程界面里,韩路一开辟出了一个单独的地址,存放这些被视界整理出来最有用最相关的知识。

    随着文档逐渐成型,视界面板上的内容也开始发生变化。

    原本散乱漂浮的知识点,像是被一根根细线串在了一起,然後变成了一张复杂又有序的大网。

    【技能结构识别中————】

    【知识片段整理中————】

    【推理路径压缩中————】

    韩路一猛地睁开眼睛。

    等等,让我有点儿仪式感。

    「视界,加点!」

    【算子适配 Lv.1,已习得】

    这下舒服了。

    韩路一精神一振。

    虽然所有的提示语都是他自己给自己写的插件,但是功能是实打实的。

    韩路一打开江松然发过来的适配清单,滚动了一会儿,在里面找到了一个标着三个红色感叹号

    的条目。

    FusedAttentionBackward,注意力融合反向算子。

    这是汤圆的训练框架里最关键的算子之一,前向推理完全用不到,只有在反向传播计算梯度的时候才会触发。

    正因为只在训练里出现,赵文渊和江松然他们一直没有去适配它。毕竟优先保了推理路径的流畅性,但是训练效率上的损耗是真实存在的,如果要想做训练,这个算子必须得做。

    融合算子是什麽?反向算子又是什麽?

    前向Attention(注意力)大家都很熟悉了。

    Query、Key、Value三组张量进来,算出注意力权重,再乘上V,得到输出。

    推理的时候,最重要的是前向快。

    但训练的时候,真正麻烦的是反向。

    你不只要知道输出是什麽,还要知道输出变化之後,Q、K、V三组值要怎麽调整。

    要是按照普通的实现,这里可以用很多其他算子替代。

    先算dV,再算dP,再还原softma梯度,再一步步算过去。

    最後就可以得到一个新值,但每一个算子运算,都要读写一次显存,都要运输一次数据。

    而大家公认的是,搬数据,比算数据贵。

    聪明的晶片工程师们想出了一个解决办法。

    既然这个反向计算每次都要跑,跑法都是固定的,那我们把这些算子融合在一起,直接在显卡核心里一次性跑完,不就不用把数据搬来搬去了吗?

    这就是融合算子。

    想法是很好,但是也很难。

    反向计算本来占的内存就大,融合之後就更大。

    这个算子可以说是在考验工程师对硬体理解、内存编排的极限了。

    这麽难的任务,怎麽办呢?

    韩路一调用新拿到的【算子适配】技能,指向了这个注意力融合反向算子。

    然後在韩路一的眼中,出现了一个L100显卡的透明模型。

    模型在半空中逐渐放大,如同变成了一座悬浮在半空中的立体工厂。

    每一个线程块都是一个发光的巨大机械臂。

    而每一段共享内存都是一排排透明的储物格。

    寄存器像一个传送带,围绕着巨大的计算核心,一块块数据块被送进高速运转的计算核心,然後又被吐出来。

    韩路一明白,自己接下来的任务,是优化这个工厂的操作流程。

    >
上一页 回目录 下一章 存书签