https://github.com/pytorch/fbgemm
FB (Facebook) + GEMM (General Matrix-Matrix Multiplication) - https://code.fb.com/ml-applications/fbgemm/
https://github.com/pytorch/fbgemm
Last synced: 8 months ago
JSON representation
FB (Facebook) + GEMM (General Matrix-Matrix Multiplication) - https://code.fb.com/ml-applications/fbgemm/
- Host: GitHub
- URL: https://github.com/pytorch/fbgemm
- Owner: pytorch
- License: other
- Created: 2018-09-24T19:07:42.000Z (over 7 years ago)
- Default Branch: main
- Last Pushed: 2025-05-12T22:45:27.000Z (8 months ago)
- Last Synced: 2025-05-13T00:11:20.930Z (8 months ago)
- Language: C++
- Homepage:
- Size: 26.9 MB
- Stars: 1,320
- Watchers: 65
- Forks: 572
- Open Issues: 490
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# The FBGEMM Project
The FBGEMM Project is a repository of highly-optimized kernels used across
deep learning applications.
The codebase is organized and published as three related packages: FBGEMM,
FBGEMM-GPU, and FBGEMM-GenAI. Each package has its own set of features and
documentation.
### Project Overview
* **FBGEMM**: A low-precision, high-performance matrix multiplication and
convolution library for server-side inference. The documentation below
provides an overview of FBGEMM, including its features, documentation, and
community resources.
* **FBGEMM_GPU**: A collection of PyTorch GPU operator libraries built on top of
FBGEMM for training and inference, with focus on recommendation systems
applications. Please see [the documentation](fbgemm_gpu/README.md) for more
information.
* **FBGEMM_GPU GenAI**: A collection of PyTorch GPU operator libraries that are
designed for generative AI applications, such as FP8 row-wise quantization and
collective communications. Please see [the documentation](fbgemm_gpu/experimental/gen_ai/README.md)
for more information.
## FBGEMM
[](https://github.com/pytorch/FBGEMM/actions/workflows/fbgemm_ci.yml)
FBGEMM (Facebook GEneral Matrix Multiplication) is a low-precision,
high-performance matrix-matrix multiplications and convolution library for
server-side inference.
The library provides efficient low-precision general matrix multiplication for
small batch sizes and support for accuracy-loss minimizing techniques such as
row-wise quantization and outlier-aware quantization. FBGEMM also exploits
fusion opportunities in order to overcome the unique challenges of matrix
multiplication at lower precision with bandwidth-bound operations.
FBGEMM is used as a backend of PyTorch quantized operators for x86 machines:
* PyTorch: https://github.com/pytorch/pytorch/tree/master/aten/src/ATen/native/quantized/cpu
See the full [Documentation](https://pytorch.org/FBGEMM) for more information
on building, installing, and developing with FBGEMM, as well as the most
up-to-date support matrix and API documentation for this library.
### What's New?
* [New Features and Recent Improvements](https://github.com/pytorch/FBGEMM/wiki/Recent-feature-additions-and-improvements-in-FBGEMM) (January, 2020)
### Citation
For a high-level overview, design philosophy and brief descriptions of various
parts of FBGEMM please see [our blog post](https://code.fb.com/ml-applications/fbgemm).
For those looking for the appropriate article to cite regarding FBGEMM, we
recommend citing our [paper](https://arxiv.org/pdf/2101.05615.pdf):
```
@article{fbgemm,
title={FBGEMM: Enabling High-Performance Low-Precision Deep Learning Inference},
author={Khudia, Daya and Huang, Jianyu and Basu, Protonu and Deng, Summer and Liu, Haixin and Park, Jongsoo and Smelyanskiy, Mikhail},
journal={arXiv preprint arXiv:2101.05615},
year={2021}
}
```
## Join the FBGEMM community
For questions, support, news updates, or feature requests, please feel free to:
* File a ticket in [GitHub Issues](https://github.com/pytorch/FBGEMM/issues)
* Post a discussion in [GitHub Discussions](https://github.com/pytorch/FBGEMM/discussions)
* Reach out to us on the `#fbgemm` channel in [PyTorch Slack](https://bit.ly/ptslack)
For contributions, please see the [`CONTRIBUTING`](./CONTRIBUTING.md) file for
ways to help out.
## License
FBGEMM is BSD licensed, as found in the [`LICENSE`](LICENSE) file.