mirror of
https://github.com/harvard-edge/cs249r_book.git
synced 2026-07-16 14:42:29 -05:00
57 lines
4.0 KiB
Plaintext
57 lines
4.0 KiB
Plaintext
# solvers.CompressionModel { #mlsysim.solvers.CompressionModel }
|
|
|
|
```python
|
|
solvers.CompressionModel()
|
|
```
|
|
|
|
Analyzes model compression trade-offs (Accuracy vs. Efficiency).
|
|
|
|
This model simulates the 'Compression Tax' — the accuracy degradation
|
|
that occurs when reducing model size via quantization or pruning,
|
|
balanced against the gains in memory footprint and inference latency.
|
|
|
|
Literature Source:
|
|
1. Han et al. (2015), "Deep Compression: Compressing Deep Neural Networks
|
|
with Pruning, Trained Quantization and Huffman Coding."
|
|
2. Gholami et al. (2021), "A Survey of Quantization Methods for
|
|
Efficient Neural Network Inference."
|
|
3. Blalock et al. (2020), "What is the State of Neural Network Pruning?"
|
|
|
|
## Methods
|
|
|
|
| Name | Description |
|
|
| --- | --- |
|
|
| [solve](#mlsysim.solvers.CompressionModel.solve) | Solves for compression gains and estimated accuracy impact. |
|
|
|
|
### solve { #mlsysim.solvers.CompressionModel.solve }
|
|
|
|
```python
|
|
solvers.CompressionModel.solve(
|
|
model,
|
|
hardware,
|
|
method='quantization',
|
|
target_bitwidth=8,
|
|
sparsity=0.0,
|
|
sparsity_type='unstructured',
|
|
)
|
|
```
|
|
|
|
Solves for compression gains and estimated accuracy impact.
|
|
|
|
#### Parameters {.doc-section .doc-section-parameters}
|
|
|
|
| Name | Type | Description | Default |
|
|
|-----------------|--------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------|
|
|
| model | Workload | The model to be compressed. | _required_ |
|
|
| hardware | HardwareNode | The target execution hardware. | _required_ |
|
|
| method | str | The compression method ('quantization', 'pruning', 'distillation'). | `'quantization'` |
|
|
| target_bitwidth | int | Target numerical precision in bits (e.g., 8 for INT8/FP8, 4 for INT4). At 8-bit, accuracy delta uses the FP8 estimate (near-lossless) by default. | `8` |
|
|
| sparsity | float | Target sparsity ratio (0.0 to 1.0) for pruning. | `0.0` |
|
|
| sparsity_type | str | Type of sparsity pattern: 'unstructured', 'structured', or 'n_m' (2:4). - unstructured: storage savings only, no inference speedup - structured: both storage and compute savings - n_m: hardware 2:4 sparsity with 2x speedup at 50% sparsity (Ampere+) | `'unstructured'` |
|
|
|
|
#### Returns {.doc-section .doc-section-returns}
|
|
|
|
| Name | Type | Description |
|
|
|--------|-------------------|------------------------------------------------------------------------------------------------|
|
|
| | CompressionResult | Compression metrics including memory savings, inference speedup, and estimated accuracy delta. |
|