Heterogeneous Structured Pruning Under Resource Constraints for Hardware-Efficient Large Language Models
Organizations: School of Informatics, University of Edinburgh, UK · Leiden Institute of Advanced Computer Science, Leiden University, the Netherlands · School of Engineering, University of Edinburgh, UK
Abstract
Training-free pruning removes weights from pretrained large language models to reduce their deployment cost. However, existing approaches typically consider only the total number of retained weights. Consequently, their pruning decisions do not account for how target hardware stores and processes those weights. These methods select a sparsity structure in advance and apply it uniformly to all projections, rather than accounting for how each structure trades pruning error against latency and memory across sublayers. We propose Heterogeneous Structured Pruning (HSP), a hardware-aware pruning framework that combines two components: (i) a heterogeneous search space of dense, unstructured, 2:4, block-sparse, and head / channel (H/C) pruning options and (ii) structure-regularising constraints based on latency and memory models. Our contribution generalises existing importance-based methods: a global solver selects one option per sublayer to minimise proxy pruning loss under a resource budget, thereby assigning each projection a structure and density. We evaluate HSP on OPT and LLaMA models for an NVIDIA Jetson Orin Nano Super edge device, where it improves the quality-resource frontiers over training-free baselines. A project page and updated links for the related code is maintained at: cameronbarker.me/publications/hsp.
Figures & tables
| Method | PPL | Prefill | Decode | Mixed | |||
| Mem | Lat | Mem | Lat | Mem | Lat | ||
| GPU | |||||||
| Dense | 14.32* | OOM | |||||
| Wanda- | 21.90 | 3447 | 0.91 | 3307 | 8.80 | 3748 | 9.62 |
| FLAP | 17.15 | 4519 | 0.64 | 4158 | 6.69 | 4519 | 9.97 |
| HSP-Lat | 15.31 | 4367 | 0.62 | 4065 | 6.52 | 4367 | 9.12 |
| Prefill | Decode | Mixed | |||||
|---|---|---|---|---|---|---|---|
| Search | Constraint | PPL | Lat | PPL | Lat | PPL | Lat |
| Dense | 14.32 | 0.755 | 14.32 | 9.890 | 14.32 | 11.7 | |
| Single | Density | 18.40 | 0.525 | 18.40 | 7.530 | 18.40 | 8.995 |
| Hetero. | Density | 13.73 | 85.5 | 13.73 | 31.0 | 13.73 | 117.5 |
| Single | Latency | 18.85 | 0.537 | 20.95 | 7.045 | 22.61 | 8.292 |
| Hetero. | Latency | 16.62 | 0.537 | 20.75 | 7.045 | 21.28 | 8.291 |
Appendix figures & tables18 assets
Supplementary material from the paper’s appendix.
Appendix
| Structure | Requested densities | OPT floor | Exceptions |
|---|---|---|---|
| Dense | – | Always available | |
| Unstructured | – | ||
| Rectangular blocks | CPU memory: floor | ||
| H/C | Profiled widths, increments of | LLaMA 7B: floor | |
| (fixed) | – | GPU only |
| Setting | Configuration |
|---|---|
| Target device | NVIDIA Jetson Orin Nano Super |
| CPU | Six-core ARM Cortex-A78AE with NEON |
| GPU | 1024 CUDA cores and 32 Tensor Cores |
| Shared memory | 8 GB LPDDR5, peak bandwidth 102.4 GB/s |
| Software | NVIDIA JetPack 6.2.1, L4T 36.4.7, CUDA 12.6, PyTorch 2.5.0 (prebuilt package) |
| Device controls | 25 W mode, fans at 100%, temperature gating between profiling measurements |
| Structure | Weight storage | CPU kernels | GPU kernels |
|---|---|---|---|
| Dense | Dense matrix | Custom C++ | PyTorch dense |
| H/C | Narrowed dense matrix | Custom C++ | PyTorch dense |
| Unstructured | CSR | Custom C++ | Custom CUDA |
| Rectangular blocks | BSR | Custom C++ | Custom CUDA |
| NV24 | Not supported | CUTLASS and | |
| Custom CUDA |
| Model | Orin Nano CPU | Orin Nano GPU | ||
|---|---|---|---|---|
| Configs | Time (min) | Configs | Time (min) | |
| OPT-125M | 2,004 | 10.4 | 2,964 | 4.7 |
| OPT-350M | 2,104 | 18.5 | 3,064 | 7.3 |
| OPT-1.3B | 2,464 | 77.4 | 3,424 | 25.8 |
| OPT-2.7B | 2,464 | 110.6 | 3,424 | 39.0 |
| Method | Time (s) | |||
|---|---|---|---|---|
| Options | Solve | Select | Total | |
| Wanda | – | – | – | 1.15 |
| FLAP | – | – | – | 0.33 |
| HSP-Lat (CPU) | 19.22 | 1.93 | 0.89 | 22.05 |
| HSP-Lat (GPU) | 20.30 | 0.39 | 0.31 | 21.01 |
| HSP-Mem (CPU) | 4.16 | 0.86 | 3.98 | 9.00 |
| Workload | Method | Latency budget | |||
|---|---|---|---|---|---|
| 0.6 | 0.7 | 0.8 | 0.9 | ||
| Prefill | HSP (Wanda) | 20.22 | 16.62 | 14.41 | 13.65 |
| HSP (Magnitude) | 1.49k | 539.36 | 47.16 | 15.05 | |
| HSP (Wanda, no H/C) | – | 18.26 | 15.07 | 13.69 | |
| Decode | HSP (Wanda) | 39.21 | 20.75 | 16.14 | 14.15 |
| HSP (Magnitude) | 16.58k | 6.15k | 5.41k | 43.61 | |
| Calibration Samples | 4 | 16 | 64 | 256 |
|---|---|---|---|---|
| Zero Input-Feature Norms (%) | 6.44 | 4.83 | 4.52 | 4.46 |
| Perplexity ( ) | 16.947 | 15.129 | 14.880 | 15.299 |
LLM Pruning
Large language model pruning removes less useful weights or components to reduce memory and inference costs while preserving model capabilities.
See all 178 papers