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

tensor core实现flash_attn_mma_share_kv源码分析

一 源码分析

1.1 函数入口

void flash_attn_mma_stages_split_q_shared_kv(torch::Tensor Q, 
                                             torch::Tensor K, 
                                             torch::Tensor V, 
                                             torch::Tensor O, 
                                             int stages) {
  CHECK_TORCH_TENSOR_DTYPE(Q, torch::kHalf) // Q [B,H,N,D]
  CHECK_TORCH_TENSOR_DTYPE(K, torch::kHalf) // K [B,H,N,D]
  CHECK_TORCH_TENSOR_DTYPE(V, torch::kHalf) // V [B,H,N,D]
  CHECK_TORCH_TENSOR_DTYPE(O, torch::kHalf) // O [B,H,N,D]
  const int d = Q.size(3); // B, H, N, d

  if (stages > 1) {
    switch (d)
    {
    case 32:
      launch_flash_attn_mma_stages_split_q_shared_kv<32,  2>(Q, K, V, O);
  

http://www.kler.cn/a/500853.html

相关文章:

  • EasyExcel(二)导出Excel表自动换行和样式设置
  • plane开源的自托管项目
  • 亚远景-ASPICE评估:汽车软件项目的过程能力评价
  • 回溯算法汇总
  • Nacos 3.0 Alpha 发布,在安全、泛用、云原生更进一步
  • 关于扫描模型 拓扑 和 传递贴图工作流笔记
  • WebSocket、SSE(Server-Sent Events)、HTTP 和 Axios关系总结
  • openEuler安装docker
  • 做一个 简单的Django 《股票自选助手》显示 用akshare 库(A股数据获取)
  • SpringBoot整合Easy-es
  • 计算机网络之---防火墙与入侵检测系统(IDS)
  • 【Rust自学】11.9. 单元测试
  • Kafka 深度剖析
  • MySQL 17 章——触发器
  • CSS圆形序号简单案例
  • 云原生时代的IT运维:从工具到方法论的全面升级
  • Service Work离线体验与性能优化
  • 【开发环境搭建篇】Visual Studio 2022 安装和使用
  • Docker运行hello-world镜像失败或超时
  • netplan apply报错No module named ‘netifaces‘
  • 【力扣Hot100】哈希表
  • 第34天:安全开发-JavaEE应用反射机制攻击链类对象成员变量方法构造方法
  • PHP cURL 函数初学者完全指南
  • 从取证视角看虚拟化——以 ESXi 为例
  • 软件测试预备知识④—NTFS权限管理、磁盘配额与文件共享
  • Vue 中,使用 v-for 和 v-if 在同一个元素上时,出现报错,怎么解决