文档
注册

TBE算子开发流程

通过MindStudio工具进行TBE算子开发的总体开发流程如下:

  • TensorFlow/ONNX/Caffe TBE算子开发流程如图1所示。
  • PyTorch TBE算子开发流程如图2所示。
  • MindSpore TBE算子开发流程如图3所示。
图1 TensorFlow/ONNX/Caffe TBE算子开发流程
图2 PyTorch TBE算子开发流程
图3 MindSpore TBE算子开发流程
  1. 算子分析:确定算子功能、输入、输出、算子开发方式、算子OpType以及算子实现函数名称等。
  2. 工程创建:通过MindStudio创建TBE算子工程,创建完成后,会自动生成算子工程目录及相应的文件模板,开发者可以基于这些模板进行算子开发。
  3. 算子开发:MindSpore框架的算子实现和注册信息文件以及算子原型定义具体实现方式请参考《MindSpore教程》的“自定义算子”。
    • 算子代码实现:描述算子的实现过程。
    • 算子原型定义:算子原型定义规定了在昇腾AI处理器上可运行算子的约束,主要包含定义算子输入、输出、属性和取值范围,基本参数的校验和shape的推导,原型定义的信息会被注册到GE的算子原型库中。网络运行时,GE会调用算子原型库的校验接口进行基本参数的校验,校验通过后,会根据原型库中的推导函数推导每个节点的输出shape与dtype,进行输出tensor的静态内存的分配。
    • 算子信息库定义:算子信息配置文件用于将算子的相关信息注册到算子信息库中,包括算子的输入输出dtype、format以及输入shape信息。网络运行时,FE会根据算子信息库中的算子信息做基本校验,判断是否需要为算子插入合适的转换节点,并根据算子信息库中信息找到对应的算子实现文件进行编译,生成算子二进制文件进行执行。
    • 算子适配插件实现:基于第三方框架(TensorFlow/ONNX/Caffe)进行自定义算子开发的场景,开发人员完成自定义算子的实现代码后,需要进行插件的开发将基于第三方框架的算子映射成适配昇腾AI处理器的算子,将算子信息注册到GE中。基于第三方框架的网络运行时,首先会加载并调用GE中的插件信息,将第三方框架网络中的算子进行解析并映射成昇腾AI处理器中的算子。
  4. UT测试:即单元测试(Unit Test),仿真环境下验证算子实现的功能正确性,包括算子逻辑实现代码及算子原型定义实现代码。
  5. 算子编译:将算子插件实现文件编译成算子插件,算子原型定义文件编译成算子原型库,算子信息定义文件编译成算子信息库。
  6. 算子部署:将算子实现文件、编译后的算子插件、算子原型库和算子信息库部署到昇腾AI处理器算子库,为后续算子在网络中运行构造必要条件。
  7. PyTorch算子适配昇腾AI处理器具有内存管理、设备管理和算子调用实现功能。PyTorch算子适配根据PyTorch原生结构进行昇腾AI处理器扩展。
  8. ST测试:即系统测试(System Test),可以自动生成测试用例,在真实的硬件环境中验证算子实现代码的功能正确性。
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词