---
title: 在模型运行时脚本突然卡死-昇腾社区
description: 在模型运行过程中，脚本突然卡死。单卡训练过程时，表现为长时间日志不打印；多卡训练过程时，表现为其他进程由于连不上这台机器超时退出，但卡死的进程仍然存在没有退出。
keywords: 在模型运行时,脚本突然卡死,昇腾社区,问题现象描述,原因分析,解决措施,PyTorch,Process
url: https://www.hiascend.com/document/caselibrary/detail/ptacase_0037
section: (其他)
---

# 在模型运行时脚本突然卡死-昇腾社区

URL: https://www.hiascend.com/document/caselibrary/detail/ptacase_0037
描述: 在模型运行过程中，脚本突然卡死。单卡训练过程时，表现为长时间日志不打印；多卡训练过程时，表现为其他进程由于连不上这台机器超时退出，但卡死的进程仍然存在没有退出。
关键词: 在模型运行时,脚本突然卡死,昇腾社区,问题现象描述,原因分析,解决措施,PyTorch,Process

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

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

在模型运行时脚本突然卡死

在模型运行时脚本突然卡死

2025/03/18

978

问题信息

| 问题来源 | 产品大类 | 产品子类 | 关键字 |
| --- | --- | --- | ---|
| 官方 | 模型训练 | PyTorch | -- |

#### 问题现象描述

在模型运行过程中，脚本突然卡死。单卡训练过程时，表现为长时间日志不打印；多卡训练过程时，表现为其他进程由于连不上这台机器超时退出，但卡死的进程仍然存在没有退出。

#### 原因分析

当python版本为3.8-3.11，由于Python本身问题，底层在非二进制场景下执行算子编译时，如果用户脚本侧使用fork的方式起多进程，可能出现子进程锁死，启动失败。

使用fork方式启动子进程命令如下所示：

```
import multiprocessing as mp

w=mp.Process(target=func, args=('xxxx',))
w.start()
```

#### 解决措施

可参考以下三种处理方式，任选其一：

- 使用spawn或者forkserver方式启动子进程 。

将fork方式进行如下修改，即可使用spawn方式启动子进程。

```
import multiprocessing as mp

ctx = mp.get_context('spawn')
w=ctx.Process(target=func, args=('xxxx',))
w.start()
```

将fork方式进行如下修改，即可使用forkserver方式启动子进程。

```
import multiprocessing as mp

ctx = mp.get_context('forkserver')
w=ctx.Process(target=func, args=('xxxx',))
w.start()
```
- 使用fork方式启动子进程前，先调用torch_npu.npu.synchronize()，具体命令如下所示。

```
import multiprocessing as mp

torch_npu.npu.synchronize()
w=mp.Process(target=func, args=('xxxx',))
w.start()
```
- 在模型脚本的main_worker函数中配置进程级别的开关，配置为False，打开算子二进制场景。

```
torch_npu.npu.set_compile_mode(jit_compile=False)
```

本页内容

- 问题信息
- 问题现象描述
- 原因分析
- 解决措施
