NVIDIA / NVIDIA/apex

RuntimeError in Variable._execution_engine.run_backward

Open
#858 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
9k
Forks
1.5k
Avg merge
2d 4h
Merged PRs (30d)
3

Description

Hi everyone, I've installed PyTorch 1.5 with CUDA 1.2 and apex with CUDA and C++ extensions and observe runtime error on backward pass. To reproduce the error I use modified Apex ImageNet example with synthetic input:

CUDA_VISIBLE_DEVICES=0,1 python -m torch.distributed.launch --nproc_per_node=2 main_amp.py --a resnet50 --b 32 --workers 16 --opt-level O0 dummy

and I see the following output (runtime error displays without any description)

Traceback (most recent call last):
  File "/media2/milyaev/Code/Benchmarks/main1_amp.py", line 522, in <module>
    main()
  File "/media2/milyaev/Code/Benchmarks/main1_amp.py", line 254, in main
    train(train_loader, model, criterion, optimizer, epoch)
  File "/media2/milyaev/Code/Benchmarks/main1_amp.py", line 342, in train
    scaled_loss.backward()
  File "/media3/milyaev/anaconda3/envs/PyTorch1.5_gpu12/lib/python3.8/site-packages/torch/tensor.py", line 198, in backward
    torch.autograd.backward(self, gradient, retain_graph, create_graph)
  File "/media3/milyaev/anaconda3/envs/PyTorch1.5_gpu12/lib/python3.8/site-packages/torch/autograd/__init__.py", line 98, in backward
    Variable._execution_engine.run_backward(
RuntimeError

Modified PyTorch ImageNet example with synthetic input runs without any problems:
CUDA_VISIBLE_DEVICES=0,1 python main.py -a resnet50 --b 32 --workers 16 --dist-url 'tcp://127.0.0.1:2504' --dist-backend 'nccl' --multiprocessing-distributed --world-size 1 --rank 0 dummy

The machine configuration is the following:
GPU: 8 * GTX 1080ti
CPU: Intel(R) Xeon(R) CPU E5-2650 v4
OS: CentOS Linux release 8.1.1911
GCC version: 8.3.1
CUDA and NVCC version: 10.2
GPU driver version: 440.64.00

When I try to install and run apex on the another machine with the same software configuration but RTX 2080ti cards I don't observe such an error with a backward pass.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the modified Apex ImageNet example with the provided torch.distributed.launch command and compare it with the working modified PyTorch ImageNet example. Check the listed PyTorch, CUDA, driver, GPU, OS, and compiler configurations, including the differing GTX 1080 Ti and RTX 2080 Ti machines. Done means narrowing the empty backward-pass RuntimeError to a reproducible compatibility or configuration cause.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
distributed-systems, machine-learning
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.