sparse_attn_sharedkv算子测试框架
功能说明
基于pytest测试框架,实现sparse_attn_sharedkv算子的功能验证:
- CPU侧:复现算子功能用以生成golden数据
- NPU侧:通过torch_npu进行算子直调获取实际数据
- 精度对比:进行CPU与NPU结果的精度对比验证算子功能
当前实现范围
参数限制
- 数据格式:
- layout_q:BSND、TND
- layout_kv:PA_BSND
环境配置
前置要求
1、 确认torch_npu为最新版本
2、 参考Attention融合算子Experimental使用说明激活CANN包和自定义算子包
custom包调用
支持custom包调用
文件结构
pytest文件结构说明
- test_run.sh # 执行脚本
- sparse_attn_sharedkv_golden.py # cpu侧算子golden实现
- result_compare_method.py # cpu golden与npu输出精度对比
- pytest.ini # 创建测试标记
单用例测试:
- test_sparse_attn_sharedkv_single.py # pytest测试单用例运行主程序
- sparse_attn_sharedkv_paramset.py # 单用例入参配置
批量测试:
- test_sparse_attn_sharedkv_batch.py # 读取pt文件并进行用例批量测试主程序,生成excel文件保存结果
- ./batch/sparse_attn_sharedkv_process.py # 调用算子获取npu输出
- ./batch/sparse_attn_sharedkv_pt_save.py # 读取excel表格批量生成用例pt文件
使用方法
在pytest文件夹路径下执行:
运行测试用例
单用例调测
1、手动配置sparse_attn_sharedkv_paramset.py的参数
2、执行指令:
bash test_run.sh single
用例的批量生成与测试
1、excel路径下存放用例excel表格
2、执行指令批量生成:
bash test_run.sh save # 默认路径执行用例生成
支持从指定路径下读取excel表格并指定sheet页,pt文件保存到指定文件夹:
bash test_run.sh save -E "./excel/example.xlsx" -S "Sheet1" -P "./data"
其中,-E设置excel文件存储路径,-S设置Sheet名,-P设置pt存储文件夹,各参数可单独配置
3、执行指令批量测试:
bash test_run.sh load
支持从指定路径下读取pt文件,结果保存到指定文件夹:
bash test_run.sh load -P "./data" -R "./result/sas_result.xlsx"
其中,-P设置pt读取文件夹,-R设置结果存储路径,各参数可单独配置