FresnelSin
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | × |
| Atlas推理系列产品 | √ |
| Atlas训练系列产品 | √ |
功能说明
-
算子功能:计算Fresnel正弦积分 S(x) = integral_0^x sin(pi*t^2/2) dt。
-
计算公式:
S(x)=∫0xsin(π2t2)dtS(x) = \int_{0}^{x} \sin\left(\frac{\pi}{2} t^{2}\right) \mathrm{d}t
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 待进行Fresnel正弦积分计算的入参,公式中的x。 | BFLOAT16、FLOAT16、FLOAT | ND |
| y | 输出 | Fresnel正弦积分计算的出参,公式中的S(x)。 | BFLOAT16、FLOAT16、FLOAT | ND |
- Atlas训练系列产品、Atlas推理系列产品:不支持BFLOAT16。
约束说明
- 不支持DOUBLE(FP64)数据类型。
- x 的维度数(rank)范围为 0~8,支持 0 维标量输入。
- 支持空 Tensor(0 元素)输入:Host 侧 Tiling 短路直接返回,输出为同 shape 空 Tensor(自动处理)。
- 支持非连续 Tensor 输入(Host 侧自动处理)。
- 特殊输入值的输出语义:输入为NaN时,输出为NaN。
- 大输入截断:当|x|≥36974(含±Inf)时,输出截断为sign(x)·0.5;有限大x(|x|≥36974)的截断输出与积分公式期望值的最大差约为8.6e-6(FLOAT32计算精度下)。
- 输入元素总数不得超过232−12^{32}-1(UINT32_MAX),超出时在Host Tiling阶段被校验拒绝并返回失败。
- 动态 shape 支持情况:支持动态 shape 与动态 rank(-1 未知维度 / -2 未知 rank);实际执行要求各维在 Host Tiling 前具体化为非负维度,任一维度为负(无论元素总数正负或为零)都会在 Host Tiling 阶段被逐维校验拒绝;元素总数溢出(int64 溢出或超出 UINT32_MAX)同样在 Host Tiling 阶段被校验拒绝。
异常校验
| 违反条件 | 校验阶段 | 错误表现 |
|---|---|---|
| 缺少必选输入或输出 | 图构建/编译参数校验 | E80001 |
| x 的 rank 大于 8 | 图编译参数校验(先于 Host Tiling);Host Tiling 保留完整范围校验 | rank 大于 8 时当前集成通路呈现 E80012;若进入 Host Tiling 则返回 GRAPH_FAILED 并记录 rank 越界日志 |
| 输入 dtype 不在支持集(FLOAT、FLOAT16、BFLOAT16)内 | Host Tiling | 返回 GRAPH_FAILED,当前集成通路呈现 EZ0019 并记录 dtype 校验日志 |
| 非ND存储格式(如NCHW、FRACTAL_NZ) | Host Tiling | 返回 GRAPH_FAILED,当前集成通路呈现 EZ0017 并记录 format 校验日志 |
说明:错误码由图编译或运行框架对校验失败进行封装,不同集成通路可能只返回
GRAPH_FAILED并保留具体日志。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| 图模式调用 | test_geir_fresnel_sin | 通过算子IR构图方式调用FresnelSin算子。 |
说明:样例运行时必须传入参数
<dtype_index>指定输入数据类型:0表示FLOAT,1表示FLOAT16,2表示BFLOAT16。基于ops-math包执行样例的命令为bash build.sh --run_example fresnel_sin graph [--soc=${soc_version}],该命令不透传样例参数,可追加--noexec仅编译样例,再直接运行编译产物test_geir_fresnel_sin(位于build目录)并传参,如./test_geir_fresnel_sin 0。