flash attention的CUDA编程和二维线程块实现softmax

本文参考了链接添加链接描述

flash attention介绍

flash attention的介绍可以参考论文:FlashAttention: Fast and Memory-Efficient Exact Attention
with IO-Awareness,具体的数学公式参考下面这个图片:其中注意关于矩阵S有两个维度,softmax的操作维度是dim=1,用pytorch表示就是torch.softmax(S, dim=1)
在这里插入图片描述
对于flash attention来说,里面有两次矩阵乘法,对于这样的二维数组矩阵乘法,一般来说都会考虑使用二维线程块,但是我们之前实现的softmax都是以一维线程块来处理,其中专门用到了一个cub库的函数BlockReduce,经过本人测试,发现这个函数只能针对一维线程块做线程块内部的规约,不能用于二维线程块内部针对某个维度规约,因此在实现flash attention之前,我们需要编写一个二维线程块实现softmax的算法,其中注意BLOCK_DIM_x和BLOCK_DIM_y都必须要选取2的幂次方。

二维线程块实现softmax

之前我们实现一维线程块处理softmax的时候,参考链接添加链接描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/83403.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【HarmonyOS】元服务卡片router实现跳转到指定页面

【关键字】 元服务卡片、router跳转不同页面 【写在前面】 本篇文章主要介绍开发元服务卡片时,如何实现从卡片中点击事件跳转到指定的应用内页面功能。此处以JS UI开发服务卡片为例,JS卡片支持组件设置action,包括router事件和message事件&…

蒙特卡洛方法的数学基础-1

蒙特卡洛方法的数学基础-1 概率论 Bayes 公式 常用分布 Binominal Distribution Poisson Distribution Gaussian Distribution Exponential Distribution Uniform Distribution 大数定理 均匀概率分布随机地取N个数xi ,函数值之和的算术平均收敛于函数的期望值 …

rsyslog-日志管理 logrotate-日志轮转

日志的管理的方式,以及怎么自己写一个管理日志的小脚本,其实也不能算脚本 管理日志的进程 rsyslogd:绝大部分日志记录,和系统操作有关,安全,认证sshd,su,计划任务at,cron… httpd/nginx/mysql: …

2. 两数相加

2. 两数相加 迭代 class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode h1 l1, h2 l2, dummy new ListNode(-1, h1), d dummy;int carry 0, sum 0;while(h1 ! null && h2 ! null){sum h1.val h2.val carry;carry sum / 10…

基于nRF7002-DK的NFC功能切换系统(nRF Connect SDK+NFC)

目录 项目介绍硬件介绍项目设计开发环境及工程目录总体流程图硬件初始化NFC功能实现文本记录安卓应用打开按键切换功能 功能展示项目总结 👉 【Funpack2-6】基于nRF7002-DK的NFC功能切换系统 👉 Github: EmbeddedCamerata/nRF7002-DK-nfc-function-switc…

ADS放大器模型参数含义

ADS放大器模型参数含义 S21 : Forward Transmission Coefficient, use xj*y, polar(x,y), dbpolar(x,y) for complex value 增益,X是增益大小,y是相位 S11 : Forward Reflection Coefficient, use xj*y, polar(x,y), dbpolar(x,y), vswrpolar(x,y) for …

新手学习:ArcGIS对shp文件裁剪

新手学习:ArcGIS对SHP文件裁剪 新手学习 记录每个步骤,因为有很多控件可能刚开始还不熟悉,根本不知道在哪里,所以写的比较详细。 1.添加要裁剪的shp文件 2.查看shp文件的地理坐标系 双击shp文件,就可以查看shp文件的…

oracle 12c相对oralce 11g的新特性(3)|oracle 12c的自动化管理特性:自动备份、自动恢复、自动维护的功能使用

一、前言: 前面几期讲解了oracle 12c多租户的使用、In-Memory列存储来提高查询性能以及数据库的克隆、全局数据字典和共享数据库资源的使用 今天我们讲讲oracle 12c的另外的一个自动化管理功能新特性:自动备份、自动恢复、自动维护的功能 二、自动备份、自动恢复、自动维护…

C语言——贪吃蛇小游戏

目录 一、ncurse 1.1 为什么需要用ncurse: 1.2 ncurse的输入输出: 1.2.1 如何使用ncurse: 1.2.2 编译ncurse的程序: 1.2.3 测试输入一个按键ncurse的响应速度: 1.3 ncurse上下左右键获取: 1.3.1 如…

TypeScript 从入门到进阶之基础篇(一) ts类型篇

系列文章目录 文章目录 系列文章目录前言一、安装必要软件二、TypeScript 基础类型1.基础类型之 数字类型 number2.基础类型之 字符串类型 string3.基础类型之 布尔类型 boolean4.基础类型之 空值类型 void5.基础类型之 null 、undefined类型6.基础类型之 任意类型 any &#x…

解决ModuleNotFoundError: No module named ‘diffusers.models.cross_attention‘

目录 项目场景: 问题描述 原因分析: 解决方案: 方案一:

3dsmax 2020安装失败报1603错误 解决方法

本文地址:https://blog.csdn.net/t163361/article/details/132779780 想在自己电脑上安装3dsmax 2020,怎么也装不上,一直报1603错误。去网上找了找,官方有个报错处理的页面 安装Autodesk 2020以及更高软件软件提示1603错误 按照步骤一安装最…

面向面试知识--Lottery项目

面向面试知识–Lottery项目 1.设计模式 为什么需要设计模式? (设计模式是什么?优点有哪些?) 设计模式是一套经过验证的有效的软件开发指导思想/解决方案;提高代码的可重用性和可维护性;提高团…

新概念英语(第二册)复习——Lesson 1 - Lesson5

前言 重新整理下自己走过的英语路,算是一次梳理,也是一次简单的常识,更是为了以后做一次备份 不用怀疑,学完我曾经看过,听过,背过的资料,你也可以成为英语高手。 文章目录 前言Lesson 1 - A pr…

vue3 - Element Plus暗黑模式适配、切换及自定义颜色

GitHub Demo 地址 在线预览 Element Plus 2.2.0 版本开始支持暗黑模式,启用方式参考 Element Plus 官方文档 - 暗黑模式 demo通过Element Plus和VueUse 的 useDark 方法实现具有自动数据持久性的响应式暗黑模式。 安装 npm install element-plus --save npm in…

【go.mod file not found in current directory or any parent directory】

go编译程序出现错误提示: go.mod file not found in current directory or any parent directory; see ‘go help modules’ (exit status 1) 解决方法: cmd切换到go工程目录下,执行: go mod init 工程名称

canvas-绘图库fabric.js简介

一般情况下简单的绘制,其实canvas原生方法也可以满足,比如画个线,绘制个圆形、正方形、加个文案。 let canvas document.getElementById(canvas);canvas.width 1200;canvas.height 600;canvas.style.width 1200px;canvas.style.height 6…

9.20金融科技(比特币)

​ 比特币的起源和发展 2008年爆发全球金融危机,同年11月1日,一个自称中本聪(Satoshi Nakamoto)的人在P2P foundation网站上发布了比特币白皮书《比特币:一种点对点的电子现金系 ,陈述了他对电子货币的新设…

Mallox勒索病毒:最新变种malloxx袭击了您的计算机?

导言: 随着互联网的普及和数字化生活的发展,网络安全问题也逐渐成为了我们生活中不可忽视的一部分。其中,勒索病毒是一种恶意软件,它可以将您的数据文件加密,并要求您支付赎金以获取解密密钥。本文91数据恢复将介绍一…

IMX6ULL移植篇-Linux内核源码目录分析二

一. Linux内核源码目录 本文继续来具体说明 Linux内核源码的一些重要文件含义。 本文续上一篇文章,地址如下: IMX6ULL移植篇-Linux内核源码目录分析一_凌肖战的博客-CSDN博客 二. Linux内核源码目录分析 9. init 目录 此目录存放 Linux 内核启动的…