950支持Pdist实现
在950PR/DT上支持Pdist算子
aclnn、geir通路
FLOAT16、FLOAT32
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 字段
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 收窄)
950
💡 备注(选填)
/assign
一、背景信息 (必填)
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 算子约束限制
💡 备注(选填)