Grouped GEMM
A lighweight library exposing grouped GEMM kernels in PyTorch.
Installation
Run pip install grouped_gemm to install the package.
Compiling from source
By default, the installed package runs in conservative (cuBLAS) mode:
it launches one GEMM kernel per batch element instead of using a single
grouped GEMM kernel for the whole batch.
To enable using grouped GEMM kernels, you need to switch to the CUTLASS
mode by setting the GROUPED_GEMM_CUTLASS environment variable to 1
when building the library. For example, to build the library in CUTLASS
mode for Ampere (SM 8.0), clone the repository and run the following:
$ TORCH_CUDA_ARCH_LIST=8.0 GROUPED_GEMM_CUTLASS=1 pip install .
See this comment for some performance measurements on A100 and H100.
Benchmark example
python benchmark.py
Upcoming features
- Hopper-optimized grouped GEMM kernels.
Metadata
Release files for grouped-gemm 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| grouped_gemm-0.3.0.tar.gz | 981.1 kB | Details |
Release files / grouped_gemm-0.3.0.tar.gz
| Download URL | grouped_gemm-0.3.0.tar.gz |
|---|---|
| Size | 981.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f0555da33a975610e9160f52449082c5e699525524581a0e5f990b14b02676a3
|
|
BLAKE2b-256 checksum How to use checksums |
1a90d255544a8da444fdfab7287850316d2c7961003586a35d3042787982e66c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.10
|