已关闭
[Documentation|文档反馈]: aclnnMlaPreprocess 文档示例与参数约束不一致问题 #4639
HKFLYE创建于 28 天前关闭于 26 天前
28 天前 关联了pull request:【Docs】修复 aclnnMlaPreprocess 文档示例及参数描述错误
HKFLYE
28 天前 评论:
28 天前 评论:
/assign


28 天前 将 HuangKun8682 设为负责人
26 天前 关闭了 issue
26 天前 添加了label:resolved
Thanks for sending an issue! Please fill in the following template to help quickly solve your problem.
Document Link(文档链接)
https://gitcode.com/HuangKun8682/ops-transformer-personal/blob/personal_fix_doc_problem/attention/mla_preprocess/docs/aclnnMlaPreprocess.md
Issues Section(问题文档片段)
// 调用acaclnnMlaPreprocess第一段接口
LOG_PRINT("acaclnnMlaPreprocessGetWorkspaceSize failed. ERROR: %d\n", ret);
// 调用acaclnnMlaPreprocess第二段接口
LOG_PRINT("acaclnnMlaPreprocess failed. ERROR: %d\n", ret);
std::vector<int64_t> qNopeScaleShape = {headNum};
int64_t qRopeDim = 0;
int64_t kRopeDim = 0;
Existing Issues(存在的问题)
1. 算子名称拼写错误
问题片段:
// 调用acaclnnMlaPreprocess第一段接口 LOG_PRINT("acaclnnMlaPreprocessGetWorkspaceSize failed. ERROR: %d\n", ret); // 调用acaclnnMlaPreprocess第二段接口 LOG_PRINT("acaclnnMlaPreprocess failed. ERROR: %d\n", ret);问题描述:
示例代码的接口调用注释和失败日志中,将
aclnnMlaPreprocess多次误写为acaclnnMlaPreprocess,多出了ac前缀。错误名称会误导开发者进行接口搜索和日志排障。2.
ReadFile失败时错误返回成功问题片段:
template<typename T> bool ReadFile(...) { std::ifstream file(filePath, std::ios::binary); if (!file.is_open()) { std::cerr << "无法打开文件" << std::endl; return 1; } // ... if (file.read(...)) { } else { std::cerr << "读取文件失败" << std::endl; return 1; } return true; }问题描述:
ReadFile的返回类型为bool,但文件打开失败和读取失败时均返回1。1会被隐式转换为true,导致文件读取失败被错误报告为成功,后续可能继续使用未正确初始化的数据。3.
qNopeScale示例 shape 与参数说明不一致参数说明:
问题片段:
std::vector<int64_t> qNopeScaleShape = {headNum};问题描述:
参数说明要求
qNopeScale的 shape 为[1],但示例使用{headNum}。当headNum = 32时,实际构造的是[32]。开发者照抄示例可能触发 shape 校验失败。4.
qRopeDim和kRopeDim示例值不符合约束参数说明:
问题片段:
int64_t qRopeDim = 0; int64_t kRopeDim = 0;问题描述:
文档明确说明
qRopeDim和kRopeDim目前仅支持64,但示例均传入0。示例与接口约束冲突,可能导致参数校验失败或 RoPE 计算异常。5.
wdqDim示例值不符合约束参数说明:
问题片段:
int64_t wdqDim = 128;问题描述:
文档说明
wdqDim目前仅支持1536,但示例传入128。开发者照抄示例时可能触发参数校验失败,导致示例无法正常运行。6.
workspaceSize来源接口名称错误问题片段:
问题描述:
当前文档对应的算子是
aclnnMlaPreprocess,其第一段接口应为aclnnMlaPreprocessGetWorkspaceSize。此处错误引用了aclnnBatchMatMulGetWorkspaceSize,属于跨文档复制后遗漏修改,会误导开发者查找错误接口。7.
deScale0数据类型描述前后不一致问题片段:
示例代码:
CreateAclTensorND( deScale0Shape, &deScale0DeviceAddr, &deScale0HostAddr, aclDataType::ACL_INT64, &deScale0);问题描述:
deScale0的数据类型列填写为INT32、FLOAT,但使用说明明确指出 FLOAT16 输入对应INT64,示例代码也使用ACL_INT64。三处描述不一致,数据类型列应为INT64、FLOAT。开发者按原类型表构造INT32Tensor 时可能触发参数校验失败。