---
title: 多Device上执行模型不同导致应用程序出错-昇腾社区
description: 分布式训练或推理场景，执行业务脚本时，出现进程卡死的情况。 搜索打屏日志关键字“The model has been compiled on the Ascend AI processor, current graph id is”，假设共8个Device，结果显示如下：  正常情况下，每个Device上都应该有相同的graph id，且个数相同。但由上述日志可以看出，ID为61、71的graph
keywords: 多Device;模型不同
url: https://www.hiascend.com/document/caselibrary/detail/tensorflow_faq_0014
section: (其他)
---

# 多Device上执行模型不同导致应用程序出错-昇腾社区

URL: https://www.hiascend.com/document/caselibrary/detail/tensorflow_faq_0014
描述: 分布式训练或推理场景，执行业务脚本时，出现进程卡死的情况。 搜索打屏日志关键字“The model has been compiled on the Ascend AI processor, current graph id is”，假设共8个Device，结果显示如下：  正常情况下，每个Device上都应该有相同的graph id，且个数相同。但由上述日志可以看出，ID为61、71的graph
关键词: 多Device;模型不同

昇腾文档 [了解详情](https://www.hiascend.com/document)

故障案例 [了解详情](https://www.hiascend.com/document/caselibrary)

多Device上执行模型不同导致应用程序出错

多Device上执行模型不同导致应用程序出错

2025/03/28

527

问题信息

| 问题来源 | 产品大类 | 产品子类 | 关键字 |
| --- | --- | --- | ---|
| 官方 | 模型训练 | TensorFlow | 多Device、模型不同 |

#### 问题现象描述

分布式训练或推理场景，执行业务脚本时，出现进程卡死的情况。

搜索打屏日志关键字“The model has been compiled on the Ascend AI processor, current graph id is”，假设共8个Device，结果显示如下：

正常情况下，每个Device上都应该有相同的graph id，且个数相同。但由上述日志可以看出，ID为61、71的graph共有8个，为正常情况；而ID为81的graph仅有4个，多个Device上的graph存在差异。

#### 原因分析

执行多Device任务时，由于Device上执行的模型不一致触发了部分Device上的模型重新编译，导致HCCL算子的ID信息不一致，通信功能异常而出现进程卡死。

TensorFlow网络触发模型重新编译的原理如下：

用户脚本调用session.run接口时，会查找或创建相应的图执行器，如果图发生变化，就无法从之前图编译的缓存中命中相应的执行器，TensorFlow就会重新创建执行器并重新编译图。重新编译图会造成HCCL算子的ID不一致，从而导致HCCL通信失败。

#### 解决方法

开发者需要排查业务脚本，找出不同Device上的模型执行差异点并修改。

一般排查的方法主要有（仅为经验总结，排查方法不限于以下几点）：

- 排查脚本中是否存在类似于“if (xxx % rank_id) == n”格式的相关逻辑，此逻辑可能会造成不同设备上执行的图结构不一致。
- 排查是否有出现部分Device打开tf.summary的情况，tf.summary会导致模型重新编译。

本页内容

- 问题信息
- 问题现象描述
- 原因分析
- 解决方法
