核函数运行验证简介
本节介绍的核函数运行验证功能,主要目的是帮助开发者快速的理解矢量编程的编程模型、熟悉矢量算子的开发和基础调用流程。所以本节仅提供简单的算子运行验证功能,不支持获取用户的workspace特性。
核函数即算子kernel程序开发完成后,即可编写host侧的核函数调用程序,实现从host侧的APP程序调用算子,进行运行验证。本节将会介绍CPU侧和NPU侧两种运行验证方法:
- CPU侧运行验证主要通过ICPU_RUN_KF CPU调测宏等CPU调测库提供的接口来完成;
- NPU侧运行验证主要通过使用Kernel Launch接口或者<<<>>>内核调用符,以及AscendCL API提供的运行时接口来完成。
CPU侧和NPU侧的运行验证原理图如下:
图1 CPU侧和NPU侧运行验证原理图
您可以根据下文运行验证算子工程的介绍来完成基本的运行验证流程,流程中使用到接口请参考:
- CPU调测库请参考调测接口。
- NPU调测的Kernel Launch接口请参考NPU侧调用方式,<<<>>>内核调用符使用方法请参考核函数调用。
- AscendCL API使用方法请参考AscendCL API参考。
基于NPU域算子调用编写的算子程序,通过毕昇编译器编译后运行,可以完成算子NPU域的运行验证;基于CPU域算子的调用接口(ICPU_RUN_KF CPU)编写的算子程序,通过标准的GCC编译器进行编译后运行,可以完成算子CPU域的运行验证。
CPU侧的运行程序,通过GDB通用调试工具进行单步调试,精准验证程序执行流程是否符合预期。如果您想进一步了解CPU侧调试的具体内容,可在完成本节内容的学习后参考CPU域调试。
父主题: Kernel直调