Closed
[Bug-Report|缺陷反馈]: aclnnQkvRmsNormRopeCacheWithKScale 的 L2_DFX_PHASE_1 宏入参与接口参数不一致 #5464
liuhanwen8Add on Sep 20Closed at Sep 30
Sep 20 Added label: bug-report
weihao18
Sep 20 Comments:
Sep 20 Comments:
/assign @luwei_1104


Sep 20 Assign luwei_1104 as responsible person
Sep 30 Close issue
Sep 30 Added label: resolved
Thanks for sending an issue! Please fill in the following template to help quickly solve your problem.
Describe the current behavior / 问题描述 (Mandatory / 必填)
aclnnQkvRmsNormRopeCacheWithKScaleGetWorkspaceSize中的L2_DFX_PHASE_1宏入参与该接口的参数列表不一致,共两处:layoutQkv/layoutQOut,但宏中传的是函数内局部变量layoutQkvAttr/layoutQOutAttr(缺失layoutQkv、layoutQOut;多余layoutQkvAttr、layoutQOutAttr)。kCacheRef/vCacheRef/kScaleCacheRef位于qOut/qScaleOptional之前,而宏中顺序为qOut, qScaleOptional, kCacheRef, vCacheRef, kScaleCacheRef。接口签名(去掉框架参数
workspaceSize/executor):qkv, qGamma, kGamma, cosSin, slotMapping,kCacheRef, vCacheRef, kScaleCacheRef,queryStartLocOptional, seqLensOptional, rotationOptional, vScaleOptional, mropePositionOptional, headNums,layoutQkv, layoutQOut,epsilon, mropeSectionOptional, qQuantMode, kQuantMode,qOut, qScaleOptional现状代码(
posembedding/qkv_rms_norm_rope_cache_with_k_scale/op_host/op_api/aclnn_qkv_rms_norm_rope_cache_with_k_scale.cpp:273-282):const char *layoutQkvAttr = QkvRmsNormRopeCacheWithKScale::GetLayoutQkvOrDefault(layoutQkv); const char *layoutQOutAttr = QkvRmsNormRopeCacheWithKScale::GetLayoutQOutOrDefault(layoutQOut); ... L2_DFX_PHASE_1( aclnnQkvRmsNormRopeCacheWithKScale, DFX_IN(qkv, qGamma, kGamma, cosSin, slotMapping, kCacheRef, vCacheRef, kScaleCacheRef, queryStartLocOptional, seqLensOptional, rotationOptional, vScaleOptional, mropePositionOptional, headNums, layoutQkvAttr, layoutQOutAttr, epsilon, mropeSectionOptional, qQuantMode, kQuantMode), DFX_OUT(qOut, qScaleOptional, kCacheRef, vCacheRef, kScaleCacheRef));L2_DFX_PHASE_1(APIName, IN, OUT)的入参应与 L2 接口的参数列表严格一致(名称与相对顺序)。当前写法下,DFX 上报/日志中的参数名与接口对不上(layoutQkvAttr/layoutQOutAttr并非接口参数),且 OUT 中 in-place 输出与纯输出的先后次序也与接口错位。Environment / 环境信息 (Mandatory / 必填)
Steps to reproduce the issue / 重现步骤 (Mandatory / 必填)
posembedding/qkv_rms_norm_rope_cache_with_k_scale/op_host/op_api/aclnn_qkv_rms_norm_rope_cache_with_k_scale.cpp;aclnnQkvRmsNormRopeCacheWithKScaleGetWorkspaceSize内的L2_DFX_PHASE_1宏(:277);DFX_IN/DFX_OUT的实参名称与相对顺序,与该函数签名去掉workspaceSize/executor后的参数名称、顺序逐一比对(亦可对照docs/aclnnQkvRmsNormRopeCacheWithKScale.md的「函数原型」小节);layoutQkv/layoutQOut、多layoutQkvAttr/layoutQOutAttr;DFX_OUT 的 5 个实参相对顺序与签名不符。Describe the expected behavior / 预期结果 (Mandatory / 必填)
宏实参的名称与相对顺序与接口参数列表严格一致:
L2_DFX_PHASE_1( aclnnQkvRmsNormRopeCacheWithKScale, DFX_IN(qkv, qGamma, kGamma, cosSin, slotMapping, kCacheRef, vCacheRef, kScaleCacheRef, queryStartLocOptional, seqLensOptional, rotationOptional, vScaleOptional, mropePositionOptional, headNums, layoutQkv, layoutQOut, epsilon, mropeSectionOptional, qQuantMode, kQuantMode), DFX_OUT(kCacheRef, vCacheRef, kScaleCacheRef, qOut, qScaleOptional));说明:
layoutQkvAttr/layoutQOutAttr这两个局部变量仍可继续用于其后的MakeParams调用(保留现有时序与默认值兜底逻辑),本处只需修正宏实参;DFX_OUT仅调整顺序,不增删实参。Related log / screenshot / 日志 / 截图 (Mandatory / 必填)
无运行时日志;上述静态审查所见代码即为证据(文件、行号与宏原文已在上文给出)。
Special notes for this issue/备注 (Optional / 选填)
本点位为共性工单 #4930(「28处 L2_DFX_PHASE_1 宏校验缺失参数或顺序不对」)中的第 26 项,按算子拆出单独跟踪,便于独立修复与验证;与 #4930 同源,非新发现。该文件近期因新增
kQuantMode入参有过改动,但该宏未同步修正。