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

CATLASS FlashAttention推理示例

FlashAttentionInfer Example Readme

【免费下载链接】catlass本项目是CANN的算子模板库,提供NPU上高性能矩阵乘及其相关融合类算子模板样例。项目地址: https://gitcode.com/cann/catlass

代码组织

├── 23_flash_attention_infer │ ├── CMakeLists.txt # CMake构建配置文件 │ ├── gen_data.py │ ├── kernel_common.hpp │ ├── main.cpp │ ├── fai_kernel.cpp │ ├── fai_tiling.cpp │ └── README.md

使用示例

  • 获取代码之后编译相应的算子可执行文件,可参考quickstart

  • 接下来,先执行gen_data.py,生成测试样例,测试用例需要从命令行输入, 执行该命令后会在当前路径下生成data目录,包含算子的输入数据和用于精度验证的golden数据。

  • 然后执行算子,这里要注意的是执行算子的输入shape和上面第一步生成数据的shape一致。

以下是一个完整的shell脚本示例

batch=1 qSeqlen=177 kvSeqlen=512 numHeads=1 kvHeads=1 headSize=128 isVariedLen=0 maskType=1 dtype="bf16" cacheMode=1 layout_dtype=0 num_blocks=2048 inner_prec=0 lse_flag=0 device=0 function build() { rm -rf build rm -rf output bash scripts/build.sh 23_flash_attention_infer } function gen_data() { python3 examples/23_flash_attention_infer/gen_data.py $batch $qSeqlen $kvSeqlen $numHeads $kvHeads $headSize $isVariedLen $maskType "$dtype" $cacheMode $layout_dtype $num_blocks $inner_prec $lse_flag echo "Data gen finished" } function run_kernel() { echo 'Case: B=' $batch ' qS=' $qSeqlen ' kvS=' $kvSeqlen ' qN=' $numHeads ' kvN=' $kvHeads ' D=' $headSize ' mask=' $maskType cd output/bin/ ./23_flash_attention_infer $batch $qSeqlen $kvSeqlen $numHeads $kvHeads $headSize $isVariedLen $maskType --device $device --dtype $dtype } build gen_data run_kernel

执行结果如下,说明精度比对成功。

Compare success.

【免费下载链接】catlass本项目是CANN的算子模板库,提供NPU上高性能矩阵乘及其相关融合类算子模板样例。项目地址: https://gitcode.com/cann/catlass

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

相关文章:

  • sd-webui-oldsix-prompt自定义词库教程:打造你的专属提示词库
  • 负责任AI实践指南:公平性、可解释性与隐私安全的技术落地
  • 南昌本地CPPM官方授权报名中心及联系方式 - 众智商学院课程中心
  • 如何成为全栈Web开发者:HTML/CSS/JavaScript三件套终极入门指南 [特殊字符]
  • 抢不到票却想拿干货?SITS2026同期活动90%参会者不知道的3种“影子参与”路径,附实操清单
  • AI学习持久性研究:社会归属感与编程信心如何影响学生坚持
  • Transformer与2D超图像在医学影像分割与预后预测中的融合应用
  • nli-MiniLM2-L6-H768快速上手:start.sh一键启动与API调用指南
  • CANN ops-math ChunkCat算子
  • ComfyUI节点冲突实战指南:5种方法彻底解决自定义节点类型重复问题
  • 全球优选,冷暖赋能——国际地源热泵知名品牌盘点 - GrowthUME
  • 基于时空图对比学习的尼古丁成瘾脑功能环路识别方法
  • 从LIME到因果干预:可解释AI技术演进与反事实解释实践
  • 终极TensorFlow社区贡献指南:如何向awesome-tensorflow提交资源(10个关键步骤)
  • Real-Anime-Z高算力适配:RTX 4090 D上Z-Image Turbo推理速度优化实测
  • 从专家系统到大模型:AI范式演进的技术逻辑与工程实践
  • 面向空间环境的星载AI系统设计:从挑战到工程实践
  • CDN内容分发网络终极实战指南:如何构建高性能内容交付系统 [特殊字符]
  • GeoAI如何重塑智能制图:核心方法、应用场景与伦理挑战
  • 从德雷克方程到多智能体模拟:宇宙文明建模的计算机实现与SETI启示
  • 抖音批量下载工具完整指南:3步轻松保存无水印高清内容
  • CANN/cannbot-skills Cube-Vec模式
  • 基于深度强化学习的AIGC语义通信资源分配优化框架详解
  • APA 7th Edition终极指南:三步解决Word参考文献格式混乱问题
  • TensorFlow 模型测试与验证:10个顶级自动化测试框架终极指南 [特殊字符]
  • 医疗AIoT脑肿瘤检测:集成学习与可解释AI的融合实践
  • 如何快速掌握Python异步条件变量协议:asyncio.Condition完整指南
  • 如何高效使用XUnity自动翻译器:游戏本地化终极指南
  • FPGA内存接口设计:挑战、方案与优化实践
  • 能量阀怎么选