This repository was archived by the owner on Aug 7, 2024. It is now read-only.
Description configurability
[done] support delayed vs dynamic scaling type, configurable separately for activations/weights/gradients
[planned] support rowwise/blockwise scaling granularity, configurable separately for each gemm
[planned] configure settings for each of the three gemms in linear fwd/bwd separately
[planned] support more fine grained configuration of how to apply Float8Linear to individual modules
[planned] inference support (see [RFC] Float8 Inference #314 )
performance
[done] torch._scaled_mm support for per-tensor scaled float8 gemm
[in progress] torch._scaled_mm support for rowwise scaled float8 gemm
[done] eager mode support
[planned] torch.compile support, backed by triton/cutlass
[in progress] optimize torch.compile performance for float8 scaling/casting kernels
distributed
[done] integrate with TP/SP via DTensor APIs
[done] integrate with FSDP1 with 16-bit all-gather
[done] integrate with FSDP2 with 16-bit or 8-bit all-gather with dynamic scaling for weights
performance optimizations are ongoing
[in progress] integrate with FSDP2 with 16-bit or 8-bit all-gather with delayed scaling for weights
POC is done, performance optimizations are ongoing
[planned] verify integration with PP
other
Reactions are currently unavailable
configurability
Float8Linearto individual modulesperformance
torch._scaled_mmsupport for per-tensor scaled float8 gemmtorch._scaled_mmsupport for rowwise scaled float8 gemmdistributed
other
use_fast_accum(float8 accumulation of gemm) option to UX - Allow for modifying the scaled_mm compute #144