CANN/ge RT2运行时约束
2026/5/9 18:49:36 网站建设 项目流程

RT2 运行时约束文档

【免费下载链接】geGE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力,并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge

通用业务规则

设计思想:针对业务上容易犯错的一些问题点提炼的规则,确保开发过程中的正确性和一致性。

具体原则:

加载时:

  • 调用RT2的加载和执行接口时,必须确保加载和执行使用相同的stream和allocator。如果使用不同的stream和allocator,需要在加载完成后调用流同步接口,以确保加载完成。
  • 在RT2执行器的构造过程中,不应修改计算图。否则,可能会导致多次构造执行器失败。
  • RT2 Lowering生成的执行节点顺序并不代表执行器执行节点的顺序。编写Lowering函数时,务必注意节点依赖关系,以确保执行时序的正确性。

执行时:

  • 涉及资源处理时,需要考虑资源规格和限制,以及资源的生命周期。
  • 异步H2D拷贝必须配合HOST_TO_DEVICE_EX选项,否则可能导致host内存提前销毁,引发问题。

性能规则

设计思想:确保系统在高负载下仍能保持高效运行,避免性能瓶颈和劣化。

具体原则:

  • 执行时应尽量避免动态申请内存,这可能导致随机性能劣化。
  • 新增kernel或修改kernel实现时,需要评估对执行性能的影响。新增kernel时,应在设计环节明确性能影响并确认性能规格。修改kernel时,性能劣化不应超过100ns。

兼容性规则

设计思想:确保系统在不同版本和环境下的兼容性,避免因变更导致的兼容性问题。

具体原则:

  • 涉及对外的option、环境变量、接口、数据结构等变更时,可能会影响兼容性。这些变更需要经过评审并获得通过结论后才能实施。

并发处理规则

设计思想:确保系统在多线程环境下的稳定性和性能,避免资源竞争和异常。

具体原则:

  • 新增kernel实现时,需要支持多线程调用。如果涉及处理临界资源(如内存相关kernel),需要给该kernel打上标记(通过kernel注册时注册ConcurrentCriticalSectionKey接口),以避免多线程执行场景下的资源竞争和异常。

可调试性&可维护性原则

设计思想:确保系统在开发和运维过程中易于调试和维护,减少问题定位和解决的时间。

具体原则:

  • 谨慎添加日志,避免高频次日志打印。日志内容应简洁明了,包含必要的上下文信息,以便快速定位问题。
  • 建议通过注册KernelTrace函数来打印执行时Kernel的维测信息。设计必要且有效的定位信息,以提高调试的效率和准确性。

【免费下载链接】geGE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力,并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询