当前位置: 首页 > news >正文

Flash Attention算法动画

矩阵Q,K,V 在HBM,SRAM芯片大小为M,其中N=5,d=3, M=59

image

 1.设置块大小Bc=4,Br=3

image

 2.初始化O,l,m

image

 3.分割Q为Tr块[Q0,Q1],每块大小Br*d,分割K,V为Tc块[K0,K1],[V0,V1],每块大小Bc*d

image

 4.分割O为Tr块,每块大小Br * d,分割l为Tr块,每块大小Br,分割m为Tr,每块大小为Br

image

外层循环: 

  从HBM加载K0,V0到SRAM

image

 内层循环:

  从HDM中加载Q0,O0,l0,m0到SRAM中

image

   在芯片中,计算S[0,0] = Q0 * K0

image

   在芯片中,计算当前块每一行的 最大值m[0,0] = rowmax(S[0, 0]),Softmax分子P[0, 0] = exp(S[0,0] - m[0,0]),Softmax分母l[0, 0]=rowsum(P[0, 0])

image

 

image

 

image

   在芯片中计算出:l[0, 0], m[0, 0]和l[0,0]的每一行的和l0

image

 计算出O[0],将O[0]结果写入到HBM中

image

 

image

   从HBM中将Q1,O1,l1,m1加载到SRAM中

image

 

image

 

image

 

image

 

image

 

image

 

http://www.jsqmd.com/news/20/

相关文章:

  • 【技术实现】7天极速搭建体育比分网站 - 世界杯期间流量红利抓取实战
  • PointNetwork-求解TSP-05 - jack
  • 多站点的TSP问题求解-06 - jack
  • Windows 11如何进入安全模式
  • C# CAN通信上位机系统设计与实现
  • 进程池VS线程池
  • 聊聊昨天CodeBuddy Meetup的一些收获与思考
  • 框架的诞生,本就是人类文明共同涌现的结晶,绝不是某个人的独自觉悟
  • python+Django开发笔记(结合禅道开发测试报告)
  • MVC分层设计模式 2章
  • Questions about learning Symfony
  • 【Python】cx_Freeze模块_打包exe
  • ctfshow web22(子域名爆破)
  • PLC中的运动控制 - (一)轴
  • ctfshow web23(代码审计编写脚本爆破)