NVIDIA / NVIDIA/TransformerEngine

Storage in fp8

Open
#1,880 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

question
Dominant language
Python
Stars
3.5k
Forks
831
Avg merge
3d 11h
Merged PRs (30d)
65

Description

Related to https://github.com/NVIDIA/TransformerEngine/issues/1261 and https://github.com/NVIDIA/TransformerEngine/issues/1764 but it is not entire clear there:

TransformerEngine could support storage in fp8 and could be dropping storage of weights in native precision after initialization. This might seem counterintuitive in a training environment, but please consider LoRA and other adapter trainings. Most of your weights you never need at their original precision again - you just want to use TransformerEngine for its efficient calculations.

The LoRA weights you keep at a higher precision.

The vram usage of TransformerEngine is currently prohibitive for training a small adapter to a large transformer.

Describe alternatives you've considered

Continue to use a custom Linear layer that stores in fp8, but doesn't have the efficient calculations performed by TransformerEngine

Contributor guide

Open the contributing guide

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 reviewing related issues #1261 and #1764, then trace how TransformerEngine currently stores weights and how the custom Linear layer handles FP8 storage. Done would require an agreed design and implementation for lower-memory adapter training with higher-precision LoRA weights.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
machine-learning, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.