# 使用mint.arctan2在图模式下报错RuntimeError: Compile graph kernel\_graph0 failed.

**1. 系统环境**

硬件环境\(Ascend/GPU/CPU\): Ascend/GPU/CPU

软件环境: MindSpore 版本: 2.4.0

执行模式： 不限

Python 版本: 3.9

操作系统平台: linux

**2. 报错信息**

2.1 问题描述

使用mint.arctan2接口在mindspore.GRAPH\_MODE静态图模式时运行出错。

2.2 脚本信息

在终端分别使用或者不使用unset RANK\_TABLE\_FILE,再使用下面的脚本。

```
import mindspore as ms
from mindspore import mint, Tensor, value_and_grad
import numpy as np

ms.set_context(mode=ms.GRAPH_MODE)
input_data = np.array([0, 1])
other_data = np.array([1, 1])
ms_input = Tensor(input_data, ms.float32)
ms_other = Tensor(other_data, ms.float32)

def forward_ms(x, y):
    return mint.arctan2(x, y)

# Gradients for MindSpore
grad_fn = value_and_grad(forward_ms)
output_ms, gradient_ms = grad_fn(ms_input, ms_other)

# 打印输出和梯度
print("MindSpore output:", output_ms)
print("MindSpore gradient:", gradient_ms)
```

2.3 报错信息

```
RuntimeError: Compile graph kernel_graph0 failed.
```

**3. 根因分析**

如果unset RANK\_TABLE\_FILE，该代码是可以正常执行的。

如果设置了RANK\_TABLE\_FILE。打印的日志里面多了个jit level 设定为O2

```
[WARNING] CORE(2631152,400007f165c0,python):2025-04-01-11:04:57.470.107 [mindspore/core/utils/ms_context.cc:530] GetJitLevel] Set jit level to O2 for rank table startup method.
```

查看mint接口的说明

https://www.mindspore.cn/docs/zh-CN/master/api\_python/mindspore.mint.html

mint接口当前是实验性接口，在图编译模式为O0和PyNative模式下性能比ops更优。当前暂不支持O2（图下沉模式）及CPU、GPU后端，后续会逐步完善。

因此当环境设置了RANK\_TABLE\_FILE，查看如下代码的527行。

https://gitee.com/mindspore/mindspore/blob/v2.4.0/mindspore/core/utils/ms\_context.cc

```
// If use rank table startup method, set jit level to O2.
  if (!common::UseDynamicCluster() && !common::GetEnv("RANK_TABLE_FILE").empty() && jit_level != kAttrJitLevelO2) {
    if (first_call) {
      MS_LOG(WARNING) << "Set jit level to O2 for rank table startup method.";
    }
    jit_level = kAttrJitLevelO2;
  }
  first_call = false;
```

**4. 解决方案**

unset RANK\_TABLE\_FILE后执行该脚本。

或是在代码中删掉该环境变量。

