Ascend C 自定义算子 Kernel Launch调用入门
内容提要
本文介绍了华为云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。