RT2 运行时约束文档【免费下载链接】geGEGraph 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的维测信息。设计必要且有效的定位信息以提高调试的效率和准确性。【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考