码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • flash-linear-attention CUDA算子成功实现(但限制极多。。)


    在 C++/DirectX着色器 的基础上速成CUDA编程,还好思维模式基本通用,就多了线程组排布和共享内存方面的东西,入门还行,高级加速方面就不太行了。

    代码仓库:https://github.com/One-sixth/flash-linear-attention-pytorch

    虽然相比纯 pytorch 的实现,更大幅度地减少了显存的消耗,但是速度没有办法,缺乏精力和时间去深究 CUDA优化,非常消耗时间。
    算了。作为其他类型的 线性注意力算子的起步

    5种写法的算子介绍

    normal_linear_attention_ops.py
    原始方式,显存占用最大,速度最快
    可读性:最佳
    显存消耗:1X (O^2)
    速度:1X

    flash_linear_attention_ops.py
    原始分块方式
    内部使用torch.split,不需要填充到指定长度
    可读性:佳
    显存消耗:0.7X
    速度:0.5X

    flash_linear_attention_ops_2.py
    基于 flash_linear_attention_ops.py 改为块索引方式,略快一丁点
    内部需要填充到指定倍数长度
    可读性:佳
    显存消耗:0.7X
    速度:0.505X

    flash_linear_attention_ops_3.py
    基于 flash_linear_attention_ops_2.py 加入显式内存复用方式,略快一丁点
    即在一开始就分配所有需要的显存,在计算过程中,完全不需要新的显存分配
    内部需要填充到指定倍数长度
    可读性:中
    显存消耗:0.7X
    速度:0.51X

    flash_linear_attention_ops_4.py
    基于 flash_linear_attention_ops_3.py,改为CUDA/C++算子方式
    本人的CUDA/C++技术有限,没有精力继续研究了
    内部需要填充到指定倍数长度
    限制很多,不支持float32以外的数据类型
    可以作为其他类型线性注意力的参考实现
    算子已经通过 pytorch2.1 + CUDA12.1 环境测试
    可读性:较差
    显存消耗:0.3X
    速度:0.33X

  • 相关阅读:
    C#——泛型相关
    [面试宝典] Linux常见命令及面试题
    ubuntu 操作杂项
    PHP传输base64数据不完整解决方法
    自动化测试---即selenium
    【算法设计与分析】— —单源最短路径的贪心算法
    研发主管接私活被辞退,法院判决公司赔偿20.7万元
    【随笔】提高代码学习水平(以更高的视角看事物)
    【Pytorch with fastai】第 15 章 :深入探讨应用程序架构
    一文带你了解SpringMVC框架的基本使用
  • 原文地址:https://blog.csdn.net/ONE_SIX_MIX/article/details/133995245
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号