Closed
[Bug-Report|缺陷反馈]: RaggedBinCount Promote golden 大输入内存膨胀与超时 #4435
raoliang_sacAdd on  7 days agoClosed at  4 days ago
raoliang_sacCollaborators
7 days ago Create

一、问题描述(必填)

RaggedBinCount Promote golden 对有限混合正负FP64权重恢复求和残差时,使用 values.unbind() 一次构造与输入等量的标量Tensor,再逐标量调用Torch。合入 #7037 后,主线仍在原L0_006的40,306,591项输入上出现该内存膨胀,任务PSS超过8GiB保护阈值。稠密大索引通过unique枚举bin时也有较大的排序临时开销。

问题定位于CPU参考实现。本次NPU生产Host/Graph/Kernel未修改。

二、环境信息(可选)

Ascend950PR_9579,本任务独立Master/Revise CANN9.3.0 weekly20260923,Python3.12.9、Torch2.7.1+cpu;初始官方master a5ab752a,最终rebase到b58f9e3c。TTK 5bc080fe,单进程,Promote/mixed标准。

三、重现步骤(可选)

使用原CSV L0_006的values=(11789,3419)、weights=(13,3100507)、splits=[0,40306591]、size=[1]、weights范围[-100,100],通过任务TTK实际kernel入口复测。被动打印确认进入40m项残差求和后内存膨胀;保护机制仅终止本任务进程。原现场没有冻结输入,本次使用seed42生成后冻结,不声称获得现场逐字节输入。

小型资源回归使用65536项交替正负FP64权重、单bin及公开golden入口。相同测试在旧插件red失败,额外Python堆峰值5,769,724字节;修复后最高2,357字节。

补充相同4M冻结输入及30秒阶段超时对照:旧插件在OnGenGolden因Process Timeout失败(PROFILE_CRASH),修复后实际TTK PASS/BINARY_MATCH,无外部保护中止,输入dump哈希一致。

四、预期结果(可选)

保留抵消残差、分箱、dtype及NaN/Inf语义,避免逐元素Tensor对象开销和稠密索引排序。采用math.fsum流式残差恢复及按输入计数枚举稠密bin后,10条合法大输入均完成真实TTK NPU比较;2条非法size形状由主线正确拒绝。

最终提交 ab1c966af3eca9fd168b847d15573e8e54b97fd4:CPU29/29、950/910b指定入口本地CI(实际C++ UT149项、新增Python21项)、kernel ST20/20、原11条精度失败回归11/11均通过。GEIR静态/动态各13/13也已通过。线上run6564已全部通过,54个任务节点COMPLETED;三路UT实际checkout父提交与本次master b58f9e3c和受测HEAD ab1c966a核对一致。

关联 PR:https://gitcode.com/cann/ops-math/merge_requests/7059

2026-11-06 第四轮补测最终记录

本节更新此前第四轮资源未完成项及CI状态。清单仍为第三轮原始630条:591条正向中589条输入合法,另2条size形状非法,仅做元数据拒绝校验;39条异常单列。未缩小原始规模,未新增NPU Host/Graph/Kernel修改。

比较组 实际结论
two_way PASS: 589;INVALID_CASE_METADATA_CHECK_ONLY: 2
three_way PASS: 570;SKIPPED_USER_REQUEST_LARGE: 19;INVALID_CASE_METADATA_CHECK_ONLY: 2
negative NEGATIVE_REJECTION_OBSERVED: 28;SKIPPED_USER_REQUEST_LARGE: 3;CASE_PARSE_FAILURE: 4;CASE_EXPECTATION_NOT_APPLICABLE_TO_GEIR: 4

所有精度PASS均逐项核对实际结果、BINARY_MATCH和原始参数;GPU三方还要求实际torch provider PASS、cross_check且没有手工GPU输出。已归档8683份数据文件SHA256,2850对两方/三方输入及当前FP64参考逐字节一致,来源审计无错误。现场输入未保存的用例按原CSV/seed42生成并冻结,不声称与第三轮已删除的输入相同。

原L1_268完整规模:旧golden实际300.001秒超时,当前golden179.697秒完成,无外部内存保护中止;同一冻结输入两方及A100三方均通过。公开golden对超大/负索引的6项保护探针结论保留,无需重复增加过滤。

029旧包观测仍保留:20260923 built-in libopsproto.so的V1图推导SIGSEGV,发生在kernel之前。原生V1源码已由PR6538于2026-10-23合入删除(efff3523),不能将旧包崩溃认定为当前源码仍有V1。在本任务独立安装的20261028 CANN 9.3.0(CANN_Revise/validation_20261028/Ascend/cann)上,029使用原CSV、seed42及TTK --pc=1实际复测:GE以EZ0009明确拒绝splits形状[0],原生返回255,无SIGSEGV、无超时、无内存保护中止。通用正向TTK仍将预期负向拒绝显示为ERROR,该原始记录保留;此项记受控拒绝,不计数值PASS,也不冒充ACLNN错误码验证。 同类空splits用例027也直接在此新包按原CSV确认,GE以EZ0009受控拒绝、原生返回255,无崩溃/超时;未为了重现已知旧包路径而重复运行旧SDK。

异常用例的GE拒绝/框架错误、Golden Disable下的SKIP、CSV解析失败分别记录;没有将其计为精度通过,也没有将GE错误码当作原CSV所要求的ACLNN错误码验证。早期综合Issue3697的open状态不代表RaggedBinCount源码修复未合入,本任务不擅自关闭该综合单。

正向回归固定源码53c1b70e39e9845ff573734ba3a7df50c2b5c575、golden df265b77430776cc1a1eb14206a3660c01dc3e64302cd9f579722d5c2507f9b9、TTK 5bc080fe42c25b2a11654e514de10ac08771cb02,每次显式--pc=1。独立CI工作树单提交整理、完整diff/tree核验后rebase到官方master快照9072efce7c50d3aa4a7010745956ac1b1fc1e7bd,受测HEAD为bff86444d5ee02a5591ab59fa5a31039888a6b6e;与回归版本的RaggedBinCount生产源码及golden完全相同。

指定统一入口本地CI(jobs=1,ascend950/ascend910b)全部通过,实际完成149项C++测试及21项Python测试。精确受测提交已同步到PR源分支并GET核对,使用带预期旧SHA的force-with-lease。线上CI状态为COMPLETED:触发凭据,流水线。本地通过不代替线上结论。

完整记录:用户指定第四轮目录8月/RaggedBinCount下的测试记录.md、逐例结果.csv、state.json、accepted_artifact_sha256.json、ci_status.json及executions/。原资源中止、GPU连接失败和旧包崩溃尝试均保留,新结论只验收有完整证据的执行。

likedislike
Rraoliang_sacCollaborators
7 days ago Modify description of issue
Rraoliang_sacCollaborators
7 days ago Modify description of issue
Rraoliang_sacCollaborators
7 days ago Modify description of issue
陈思
陈思Collaborators
7 days ago Comments:

/assign @raoliang_sac

likedislike
CANN-robotCANN-robotCollaborators
7 days ago Assign raoliang_sac as responsible person
Rraoliang_sacCollaborators
5 days ago Modify description of issue
Rraoliang_sacCollaborators
5 days ago Modify description of issue
Rraoliang_sacCollaborators
5 days ago Modify description of issue
CANN-robotCANN-robotCollaborators
4 days ago Close issue
CANN-robotCANN-robotCollaborators
4 days ago changed custom state from 进行中 to 已完成
Rraoliang_sacCollaborators
4 days ago Modify description of issue
CANN-robotCANN-robotCollaborators
4 days ago Added label: resolved