NVIDIA / NVIDIA/apex

sync_batchnorm (python version) doesn't work in FP16

Open
#254 8 comments 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

RuntimeError: expected type torch.cuda.FloatTensor but got torch.cuda.HalfTensor at line
https://github.com/NVIDIA/apex/blob/03100f466145a0de73b79c32d11d58c917b10393/apex/parallel/sync_batchnorm.py#L108

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 reading apex/parallel/sync_batchnorm.py at line 108 and trace the FP16 path that produces the reported torch.cuda.FloatTensor versus torch.cuda.HalfTensor error. Reproduce the failure with sync_batchnorm in FP16 and compare its behavior with the surrounding distributed-training logic. Done means FP16 execution no longer raises this type error while preserving the existing sync batch normalization behavior.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.