文件最后提交记录最后更新时间
30 天前
30 天前
30 天前
30 天前
30 天前
30 天前
24 天前
README

LogSpaceD

产品支持情况

产品 是否支持
Ascend 950PR&950DT系列产品 √
Atlas A3系列产品 √
Atlas A2系列产品 √
Atlas 200I/500 A2推理产品 ×
Atlas推理系列产品 ×
Atlas训练系列产品 ×

功能说明

LogSpaceD接收固定shape的辅助Tensor assist,按TBE单端FP32语义生成长度为steps的对数间隔序列。assist固定为rank-1 [1],只承担ABI输入槽和dtype profile,其数值不参与计算。

动态能力:DynamicRankSupportFlag=true。建图时可声明[-2](unknown rank),但运行时不放宽契约:assist.shape=[1],输出rank固定为1且shape由属性推导为[steps]。

令n=steps。当n>1时ratio=(end-start)/(n-1),否则ratio=end-start;所有属性转换、插值和后续数学运算均为FP32:

xi=FP32⁡(i)×ratio+FP32⁡(start),i=0,1,…,steps−1.x_i=\operatorname{FP32}(i)\times ratio+\operatorname{FP32}(start),\quad i=0,1,\ldots,steps-1.

输出采用TBE三分支连续语义:

yi(32)={exp⁡(xiln⁡(base)),base>0,[1−2(∣xi∣−2⌊∣xi∣/2⌋)]exp⁡(xiln⁡∣base∣),base<0,1,base=0 ∧ xi=0,0,base=0 ∧ xi≠0.y_i^{(32)}=\begin{cases} \exp(x_i\ln(base)), & base>0,\\ \left[1-2\left(|x_i|-2\left\lfloor |x_i|/2\right\rfloor\right)\right] \exp(x_i\ln|base|), & base<0,\\ 1, & base=0\ \land\ x_i=0,\\ 0, & base=0\ \land\ x_i\ne0. \end{cases}

dtype=0/1均为兼容no-op,输出类型始终与assist相同:FP16→FP16、FP32→FP32、BF16→BF16。steps=0时输入仍为[1]、输出为[0];steps=1时全局索引为0,结果只由start决定。

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
assist输入固定rank-1 [1]载体,数值不参与计算。FLOAT16、FLOAT、BFLOAT16ND
y输出对数间隔序列,shape为[steps];数据类型与assist相同,dtype为兼容no-op。FLOAT16、FLOAT、BFLOAT16ND
start属性指数域起点,必选。FLOAT-
end属性指数域终点,必选。FLOAT-
steps可选属性输出元素数,默认值为100。INT64-
base可选属性幂底数,默认值为10.0。FLOAT-
dtype可选属性历史兼容属性,仅允许0或1,默认值为1;两者均不改变输出类型。INT64-

约束说明

  • 建图支持DynamicRankSupportFlag=true,可声明[-2] unknown rank;运行时assist必须为[1],y必须为[steps],两者shape不绑定且不原地复用。
  • assist支持FLOAT16、FLOAT、BFLOAT16输入,输出与输入同型;与dtype=0/1组成六种合法组合。
  • dtype仅允许0或1,均为兼容no-op,不改变输出类型。
  • 不支持FLOAT64输入、FLOAT64输出或FLOAT64数学运算;所有组合均使用FP32主计算链,FLOAT16输出仅在末端转换一次。
  • start、end、base必须为有限FLOAT值;负底数使用连续余数符号分支,零底数使用x_i==0 ? 1 : 0分支,不采用通用Pow特殊值语义。
  • steps必须非负并且只决定输出长度;输入长度固定为1。仅支持ND格式,不支持广播、端点Tensor、axis或endpoint=False。
  • 仅支持Ascend 950PR&950DT系列产品的独立GEIR调用通路,算法Workspace为0。ACLNN组合通路的 result 可能是多维张量,不能据此改写独立GEIR的运行时 assist 约束。

调用说明

调用方式 样例代码 说明
GE图模式 - 图IR定义参见LogSpaceD原型。算子原型为LogSpaceD(assist, start, end, steps=100, base=10.0, dtype=1) -> y。