• andrewor14's avatar
    New multi-step QAT API (#2629) · 15e501a4
    andrewor14 authored
    * [bc-breaking] Generalize FakeQuantizeConfig beyond intx
    
     **Summary:** The existing `FakeQuantizeConfig` performs only
    intx quantization, but we plan to extend QAT to other dtypes
    such as fp8 and nvfp4 in the near future. This is the necessary
    refactor before that. Specifically:
    
    ```
    # New abstract class
    FakeQuantizeConfigBase
    # Rename
    FakeQuantizeConfig -> IntxFakeQuantizeConfig
    ```
    
    In the future, we will have other types of `FakeQuantizeConfigBase`
    for float dtypes that users can pass in instead of the existing
    Intx one.
    
    **BC-breaking notes:** For BC, we keep around the old names to
    reference the new ones. However, this commit is still BC-breaking
    in the sense that a few APIs now accept the abstract
    `FakeQuantizeConfigBase` instead. For the most part, this abstract
    class will be hidden from the user.
    
    Before:
    ```
    activation_config = FakeQuantizeConfig(torch.int8, "per_token", is_symmetric=False)
    weight_config = FakeQuantizeConfig(torch.int4, group_size=32)
    ```
    
    After:
    ...
    15e501a4
README.md 17.6 KB