已关闭
[算子开发][内测体验][AscendC] [Documentation|文档反馈]: Fmod 样例的所有被除数都是 0,无法验证核心计算 #1480
yc创建于 8月11日关闭于 8月27日
8月11日 将 lihuaichao 设为负责人
8月11日 移除了负责人 lihuaichao
8月11日 将 maohaodi 设为负责人
8月11日 移除了负责人 maohaodi
8月11日 将 haipingmao 设为负责人
8月11日 移除了负责人 lihuaichao
lihuaichao
8月11日 评论:
8月11日 评论:
您好,我们已经识别到此问题,将会在后续的PR中修复。
感谢您对社区的支持与贡献!


maohp_hw
8月27日 评论:
8月27日 评论:
您好
我们已针对此样例的gen_data.py做如下修改:
详细方案
- 固定随机种子
np.random.seed(123321)
保证每次生成的数据一致,避免CI测试数据随机变化。同时避免随机数据
偶发落在整数商边界附近,引入不同硬件实现之间的舍入差异。
- 修改被除数src0的数据范围
src0 = generate_random_data(-10.0, 10.0, src_shape, dtype)
使用跨正负数的非退化随机区间,避免输入全部为0,并覆盖正、负被除
数场景。
- 保证除数src1非0并覆盖正负值
src1 = generate_random_data(0.5, 5.0, src_shape, dtype)
src1[1::2] = -src1[1::2]
先生成绝对值范围为[0.5, 5.0]的除数,再将奇数位置改为负数:
- 明确避免除数为0。
- 避免除数过小导致商过大或精度不稳定。
- 同时覆盖正除数和负除数场景。
- 注入固定测试数据
src0[:4] = [2.0, 2.0, -3.0, -3.0]
src1[:4] = [1.5, -1.5, 1.1, -1.1]
前4组数据用于覆盖被除数和除数的四种符号组合:
| src0 | src1 | 预期结果 | 场景 |
|---|---|---|---|
| 2.0 | 1.5 | 0.5 | 正被除数、正除数 |
| 2.0 | -1.5 | 0.5 | 正被除数、负除数 |
| -3.0 | 1.1 | 约-0.8 | 负被除数、正除数 |
| -3.0 | -1.1 | 约-0.8 | 负被除数、负除数 |
其中Fmod(2.0, 1.5)和Fmod(-3.0, 1.1)与样例README中的计算示例保持
一致。
该设计还可以验证Fmod余数符号跟随被除数src0,不受除数src1符号影
响。


maohp_hw
8月27日 评论:
8月27日 评论:
您好
相关问题已修复,如果没有其他的问题,我们先关闭此Issue。
欢迎您再提Issue与我们交流,共建美好社区~


8月27日 issue状态由 进行中 改变为 已解决
8月27日 关闭了 issue
8月27日 添加了label:resolved
Thanks for sending an issue! Please fill in the following template to help quickly solve your problem.
Document Link(文档链接)
https://gitcode.com/cann/asc-devkit/blob/master/examples/01_simd_cpp_api/04_advanced_api/10_math/fmod/scripts/gen_data.py
Issues Section(问题文档片段)
全部测试都是Fmod(0, y) = 0,即使kernel错误,样例也能通过。
建议将 src0 改为包含正数、负数和非整数倍关系的非零随机数据,并避免 src1 为零。
Existing Issues(存在的问题)