Closed
[Requirement|需求建议]:950支持Pdist #4169
SimonZzzAdd on  10 days agoClosed at  9 days ago
SimonZzzCollaborators
10 days ago Create

一、背景信息 (必填)

950支持Pdist实现

二、价值/作用 (必填)

在950PR/DT上支持Pdist算子

三、设计方案 (必填)

3.1 使能方式(涉及哪些框架:如Aclnn直调、Pytorch训练等)

aclnn、geir通路

3.2 总体设计
3.2.1 算子支持的数据类型

FLOAT16、FLOAT32

3.2.2 host侧设计

host tiling(op_host/arch35/pdist_tiling.cpp/.h):p 值映射 0-5 的 PBranch 分支并以 GET_TPL_TILING_KEY 编码 TilingKey;闭式 PdistFloorSum 计算 64 对任务块数 B,按核连续块域切分,MIX 发射方式计算 blockDim;tiling 数据含 N/M/B/p_val/inv_p 字段

3.2.3 kernel侧设计

PyPTO kernel(op_kernel/pdist.py):m-lane row-major 布局(零转置,消除 v1 pair-lane 转置布局下 vscatter 导致的 UB bank 串行化,fp16 [8192,512] 由 963ms 优化至约 20.6ms);M_BLK=128 分块 ping-pong 部分和累加(含 p=1/inf 分支的 NaN 计数);按 PBranch 编译期折叠的无分支内层 m 循环;提供 fp32/fp16 双 dtype 实例(fp16 以 pl.cast 展宽至 fp32 计算、出口 CAST_RINT 收窄)

3.3 支持硬件

950

3.4 算子约束限制

💡 备注(选填)

likedislike
SSimonZzzCollaborators
10 days ago Added label: requirement
SimonZzzCollaborators
10 days ago Comments:

/assign

likedislike
CANN-robotCANN-robotCollaborators
10 days ago Assign SimonZzz as responsible person
CANN-robotCANN-robotCollaborators
9 days ago Close issue
CANN-robotCANN-robotCollaborators
9 days ago Added label: resolved