Ascend C 自定义算子 Kernel Launch调用入门

💡 原文中文,约9400字,阅读约需23分钟。
📝

内容提要

本文介绍了华为云Ascend C自定义算子的Kernel Launch调用方式。通过ACLRT_LAUNCH_KERNEL调用接口,可以异步调用算子核函数,并提供参数列表。华为云官方提供了简易的算子工程,开发者可以基于该工程进行算子开发。文章还提供了算子工程的目录结构和开发步骤。最后,文章展示了一个PRelu算子的示例代码,包括核函数的实现和调用应用程序的主函数。

🎯

关键要点

  • 本文介绍华为云Ascend C自定义算子的Kernel Launch调用方式。

  • 通过ACLRT_LAUNCH_KERNEL接口可以异步调用算子核函数,并提供参数列表。

  • 华为云提供简易的算子工程,开发者可以基于该工程进行算子开发。

  • 文章提供算子工程的目录结构和开发步骤。

  • Kernel Launch开放式编程为试用特性,不支持商用产品。

  • ACLRT_LAUNCH_KERNEL调用方式对内核调用符进行了功能加强,支持异步调用。

  • 算子工程支持调试功能,如PRINTF和DumpTensor。

  • 开发者需完成算子kernel侧实现和编写调用应用程序main.cpp。

  • 提供了PRelu算子的示例代码,包括核函数的实现和调用应用程序的主函数。

  • 执行代码进行NPU和CPU调试的命令示例。

延伸问答

Ascend C自定义算子的Kernel Launch调用方式是什么?

Ascend C自定义算子的Kernel Launch调用方式是通过ACLRT_LAUNCH_KERNEL接口异步调用算子核函数,并提供参数列表。

开发Ascend C自定义算子需要哪些步骤?

开发Ascend C自定义算子需要完成算子kernel侧实现、编写调用应用程序main.cpp、配置CMake编译文件,以及修改数据生成和验证脚本。

华为云提供了哪些支持自定义算子的工具?

华为云提供了简易的算子工程,支持调试功能如PRINTF和DumpTensor,帮助开发者快速完成算子的Kernel Launch调试。

Kernel Launch的开放式编程有什么限制?

Kernel Launch的开放式编程为试用特性,不支持商用产品,并且当前版本不支持获取用户workspace特性。

PRelu算子的示例代码包含哪些内容?

PRelu算子的示例代码包含核函数的实现和调用应用程序的主函数,展示了如何进行算子的开发和调试。

如何在NPU和CPU上调试Ascend C自定义算子?

可以通过执行特定的bash脚本,如run.sh,分别在NPU和CPU上进行调试,命令示例为bash run.sh Ascend310P1 npu_onboard和bash run.sh Ascend310P1 cpu。

🏷️

标签

➡️

继续阅读