文件最后提交记录最后更新时间
切换最低兼容版本为CANN 8.5.0;使用AscendC CMake构建系统编译 Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !461 merge asc into master 切换最低兼容版本为CANN 8.5.0;使用AscendC CMake构建系统编译 Created-by: yuantao_ Commit-by: yuantao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. 适配asc+CMake编译系统。 2. 对于适配的调试特性(DumpTensor),在新编译系统引入后不再需要,去除相关代码,相关编译选项添加Warning。 3. 更新对应相关文档。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue --> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!4611 个月前
文档错误修正 Co-authored-by: longjihui<longjihui@huawei.com> # message auto-generated for no-merge-commit merge: !627 merge doc_fix into master 文档错误修正 Created-by: longjihui Commit-by: longjihui Merged-by: cann-robot Description: ## 描述 集中处理几个issue提供的文档纠错清单 ## 关联的Issue https://gitcode.com/cann/catlass/issues/187 https://gitcode.com/cann/catlass/issues/186 ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!6278 天前
新增40_flash_attention_infer_tla Co-authored-by: yjp-hw<yanjiapeng1@huawei.com> # message auto-generated for no-merge-commit merge: !444 merge fai_tla into master 新增40_flash_attention_infer_tla Created-by: yjp-hw Commit-by: yjp-hw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 相关PR https://gitcode.com/cann/catlass/pull/435,已检视修改 重构23_flash_attention_infer为tla版本,加一个40_flash_attention_infer_tla,不覆盖原来的example/23,现另提一个PR ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!4444 个月前
optest功能优化、文档补充 Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !637 merge refactor/optest-jit-and-conventions into master optest功能优化、文档补充 Created-by: yuantao_ Commit-by: yuantao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!6375 天前
新增40_flash_attention_infer_tla Co-authored-by: yjp-hw<yanjiapeng1@huawei.com> # message auto-generated for no-merge-commit merge: !444 merge fai_tla into master 新增40_flash_attention_infer_tla Created-by: yjp-hw Commit-by: yjp-hw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 相关PR https://gitcode.com/cann/catlass/pull/435,已检视修改 重构23_flash_attention_infer为tla版本,加一个40_flash_attention_infer_tla,不覆盖原来的example/23,现另提一个PR ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!4444 个月前
新增40_flash_attention_infer_tla Co-authored-by: yjp-hw<yanjiapeng1@huawei.com> # message auto-generated for no-merge-commit merge: !444 merge fai_tla into master 新增40_flash_attention_infer_tla Created-by: yjp-hw Commit-by: yjp-hw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 相关PR https://gitcode.com/cann/catlass/pull/435,已检视修改 重构23_flash_attention_infer为tla版本,加一个40_flash_attention_infer_tla,不覆盖原来的example/23,现另提一个PR ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!4444 个月前
新增40_flash_attention_infer_tla Co-authored-by: yjp-hw<yanjiapeng1@huawei.com> # message auto-generated for no-merge-commit merge: !444 merge fai_tla into master 新增40_flash_attention_infer_tla Created-by: yjp-hw Commit-by: yjp-hw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 相关PR https://gitcode.com/cann/catlass/pull/435,已检视修改 重构23_flash_attention_infer为tla版本,加一个40_flash_attention_infer_tla,不覆盖原来的example/23,现另提一个PR ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!4444 个月前
README.md

FlashAttentionInferTla Example Readme

代码组织

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

使用示例

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

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

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

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

batch=1           # batch大小
qSeqlen=177       # query序列长度
kvSeqlen=512      # key/value序列长度
numHeads=1        # query head数量
kvHeads=1         # key/value head数量
headSize=128      # embeddingSize
isVariedLen=0     # 是否使用变长序列,当前仅支持0
maskType=1        # mask类型,0表示无mask,1表示使用mask
dtype="bf16"      # 数据类型,支持"half"或"bf16"
cacheMode=1       # 缓存模式,0表示非Paged Attention,1表示Paged Attention
device=0          # 设备ID

function build() {
    rm -rf build
    rm -rf output
    bash scripts/build.sh 40_flash_attention_infer_tla
}

function gen_data() {
    python3 examples/40_flash_attention_infer_tla/gen_data.py $batch $qSeqlen $kvSeqlen $numHeads $kvHeads $headSize $isVariedLen $maskType "$dtype" $cacheMode
    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/
    ./40_flash_attention_infer_tla $batch $qSeqlen $kvSeqlen $numHeads $kvHeads $headSize $isVariedLen $maskType --device $device --dtype $dtype
}

build
gen_data
run_kernel

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

Compare success.