CANN算子开发赛提交说明

发布时间:2026/6/13 5:39:03

CANN算子开发赛提交说明 CANN 算子开发校内赛提交说明【免费下载链接】cann-ops-competitions本仓库用于 CANN 开源社区各类竞赛、开源课题、社区任务等课题发布、开发者作品提交和展示。项目地址: https://gitcode.com/cann/cann-ops-competitions本文档用于简要描述此次 AscendC 算子开发赛的提交情况。个人信息姓名车洋学号25213050108邮箱cy360124163.comCANNJudge 账号starshine360CANNJudge 提交说明比赛链接https://cannjudge.cn/fdu-aiops/fdu-competition-2026最终提交时间2026.06.05本次比赛共计三道题Addcmul、ClipByValue、Lerp。因个人时间紧张Addcmul最终未提交后两题的提交情况如下所示。第2题ClipByValue第3题Lerp算子实现简介第2题 ClipByValue简言之首先参考 Ascend C 算子开发教程 的“泛化 Tiling 设计”章节中内容设计相应的 Tiling 策略以适合任何合法的数据类型、数据形状。其次ClipByValue 要求支持 float, float16, int32 类型的数据。由于AscendC::Maxs和AscendC::Maxs要求输入的数值类型须相同。因此我们需要进行数值类型转换。例如对于 int32 数值类型将其转换为 float再进行数值裁剪。第3题 Lerp同样地参考 Ascend C 算子开发教程 的“泛化 Tiling 设计”章节中内容设计相应的 Tiling 策略以适合任何合法的数据类型、数据形状。对于 Lerp 插值公式我在实现时对计算公式做了如下转换。CANNJudge 的结果显示存在部分 Wrong Answer。个人推测是精度问题。因已过赛事截止时间未验证原生公式是否存在精度问题。$$ y start weight \times (end - start) start \times (1 - weight) end \times weight $$在实现上先计算两个乘法操作的结果 $start \times (1 - weight)$ 和 $end \times weight$并创建两个TBuf来暂存这两个乘积。最后再执行加法得到最终结果。【免费下载链接】cann-ops-competitions本仓库用于 CANN 开源社区各类竞赛、开源课题、社区任务等课题发布、开发者作品提交和展示。项目地址: https://gitcode.com/cann/cann-ops-competitions创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻