COE 592Lecture 4.2Part 13
PointAcc, the lecture summary and references
PointAcc builds the sparse convolution map in hardware with a merge-sort based mapping unit, then the lecture closes with what was covered and what quantization brings next.
- Concepts
- 4
- Slides
- 110-115
- Reading
- 24 min
Why this part matters
Every accelerator in this lecture so far assumed the hard part was the multiply. PointAcc is the case where it is not. When the input is a point cloud, the network spends most of its time deciding which inputs multiply which weights, and that decision has to be remade for every frame because the sparsity is in the data. Your embedded work will hit the same wall the moment your inputs stop being dense grids.
This closing part does three things. It shows how PointAcc turns map construction into a sorting problem the hardware can stream, with the five-point example from slides 111 and 112 worked out to the last tuple. It reads the results slide the way the paper intends, with the right baselines. Then it folds the whole lecture into one table, so that the exam question "which system exploits which sparsity" has a single place to be answered from, and it checks the reference slide against what the deck actually cited.
By the end you can
- Explain why building the (In, Out, Wgt) map dominates point-cloud inference and why a hash table is a poor fit for silicon.
- Run the shift, merge sort, compare, emit procedure by hand on a five-point cloud and recover the tuples on slides 111 and 112.
- Read slide 113 correctly: the three baselines, the geometric means, and why the TPU column swings so widely.
- Map every sparsity type of this lecture to the system that exploits it and the granularity it needs.
- State what the next lecture adds (numeric types, the idea of quantization, its common methods) and spot the references the deck cites but never lists.
The roadmap on slide 110 puts PointAcc in the last row, next to TorchSparse, under the heading activation sparsity. Read the row as a pair: TorchSparse is the software answer to sparse inputs, and PointAcc is the hardware answer to the same inputs. Both start from the Sparse convolution of part 11, where a layer is driven by maps of (In, Out, Wgt) tuples and each tuple contributes f_out = f_out + f_in × W_wgt.
What changes between the two is where the time goes. On a GPU, the multiplies are batched into matmuls and run well once the map exists. Building the map is the problem. A point cloud has dynamic sparsity: which coordinates are occupied depends on the scene, so the map cannot be precomputed and must be rebuilt on every input. The PointAcc paper measures that cost on PointNet++-based networks and reports that more than half of the total runtime on general-purpose hardware goes to mapping operations, and that existing neural accelerators simply do not support them, so a TPU has to ship the coordinates back to its host CPU, where data movement then takes 60 to 90 percent of the runtime (Lin et al., 2021, section 3).
The pairing rule, and how to turn it into an equality test
A 3 × 3 kernel has nine weight offsets, W−1,−1 through W1,1. Input point p contributes to output point q through offset δ exactly when p sits at q + δ. On a GPU the natural code is a loop over outputs that asks a hash table "is there an input at q + δ?". PointAcc rewrites the same condition so that no lookup is needed.
Subtract δ from every input coordinate and the question becomes "which shifted inputs land on an output coordinate?", which is a set intersection. If both sets are sorted, an intersection is found by merging them and looking at adjacent elements: any input and output that coincide must end up side by side. This is why slide 112 adds (−1, −1) to the inputs for W1,1 and slide 111 adds (1, 1) for W−1,−1. The shift is always −δ, so the sign flips relative to the offset name.
Worked example
Finding the pairs for W1,1 on slide 112
Shift
The inputs are P0 (1,1), P1 (2,2), P2 (2,4), P3 (3,2), P4 (4,3). With stride 1 the outputs Q0 to Q4 sit at the same five coordinates. For δ = (1, 1) add (−1, −1) to every input: (0,0) (1,1) (1,3) (2,1) (3,2).Merge sort
Both lists are already sorted by x then y, so one pass merges them: P0 (0,0), Q0 (1,1), P1 (1,1), P2 (1,3), P3 (2,1), Q1 (2,2), Q2 (2,4), Q3 (3,2), P4 (3,2), Q4 (4,3).Compare neighbors
Ten cells give nine adjacent comparisons. Two of them are equal across owners: positions 2 and 3 (Q0 and P1, both (1,1)) and positions 8 and 9 (Q3 and P4, both (3,2)).Emit tuples
(P1, Q0, W1,1) and (P4, Q3, W1,1). Check against the rule: P1 = (2,2) = Q0 + (1,1) and P4 = (4,3) = Q3 + (1,1).Result
Two map entries out of 25 possible input-output pairs, found with 9 comparators and zero random memory accesses.
| Position | Owner | Coordinate | Equal neighbor |
|---|---|---|---|
| 1 | P0 | 0,0 | no |
| 2 | Q0 | 1,1 | yes, with 3 |
| 3 | P1 | 1,1 | yes, with 2 |
| 4 | P2 | 1,3 | no |
| 5 | P3 | 2,1 | no |
| 6 | Q1 | 2,2 | no |
| 7 | Q2 | 2,4 | no |
| 8 | Q3 | 3,2 | yes, with 9 |
| 9 | P4 | 3,2 | yes, with 8 |
| 10 | Q4 | 4,3 | no |
Slide 111 runs the identical procedure for the opposite corner of the kernel. The table below puts the two passes side by side. Notice the symmetry: the pairs for W1,1 are the pairs for W−1,−1 with the roles of input and output exchanged, P1 with Q0 against P0 with Q1. That is exactly what p = q + δ predicts, because if p = q + δ then q = p − δ, and with the input and output clouds sharing coordinates the same two points swap places.
| W1,1 (slide 112) | W−1,−1 (slide 111) | |
|---|---|---|
| Offset δ | (1, 1) | (−1, −1) |
| Shift applied to inputs | + (−1, −1) | + (1, 1) |
| Shifted inputs P0 to P4 | (0,0) (1,1) (1,3) (2,1) (3,2) | (2,2) (3,3) (3,5) (4,3) (5,4) |
| Merged order | P0 Q0 P1 P2 P3 Q1 Q2 Q3 P4 Q4 | Q0 Q1 P0 Q2 Q3 P1 P2 Q4 P3 P4 |
| Equal neighbors | Q0 = P1, Q3 = P4 | Q1 = P0, Q4 = P3 |
| Tuples emitted | (P1, Q0, W1,1), (P4, Q3, W1,1) | (P0, Q1, W−1,−1), (P3, Q4, W−1,−1) |
- P00,0
- P11,1
- P21,3
- P32,1
- P43,2
- Q01,1
- Q12,2
- Q22,4
- Q33,2
- Q44,3
- P00,0
- Q01,1
- P11,1
- P21,3
- P32,1
- Q12,2
- Q22,4
- Q33,2
- P43,2
- Q44,3
- (P1, Q0, W1,1)
- (P4, Q3, W1,1)
Input p and output q pair up for offset δ exactly when p = q + δ, so subtracting δ from every input turns the search into an equality test. The merge reads the two sorted strips once, head against head, and the only checks are between adjacent cells of the merged strip, which is why the comparator count is the strip length minus one. A hash table would instead probe a random address once per output point. With stride 2 the output coordinates are quantized to the stride grid by clearing the low log2(ts) bits, which the same unit separates from kernel mapping.
Why a hash table is the wrong tool for silicon
The GPU library that PointAcc compares against builds its maps with a hash table, and on a GPU that is a reasonable choice: memory is large and random access is cheap enough. Neither holds on chip. The paper puts two numbers on it. First, a hash table sized for a real point cloud at a sensible load factor can reach 160 MB, which no accelerator can hold in SRAM. Second, to serve N lookups in parallel the SRAM needs an N-by-N crossbar so that any lane can reach any bank, and that crossbar grows as O(N²) in area (Lin et al., 2021, section 4.1).
Merging has neither problem. The Mapping Unit feeds window-sized chunks of the two sorted lists to a fixed-size bitonic merger, a parallel comparator network, and a forwarding loop carries leftover elements into the next cycle, so the lists are read in order and never probed at random. Detecting the intersection is just as local: the paper describes feeding each pair of adjacent elements of the merged array to a comparator that checks whether their coordinates are equal. With |I| shifted inputs and |O| outputs the strip has |I| + |O| cells and |I| + |O| − 1 adjacent comparisons, all independent, so they can run in a single cycle. The Mapping unit builds this from a bitonic sorting network feeding a merger of fixed length, and the paper reports that at the same parallelism the merge-sort design is 1.4x faster than the hash-table design while saving up to 14x in area (Lin et al., 2021, section 4.1).
| Hash table | Merge sort | |
|---|---|---|
| Memory access pattern | Random probes, one per output point per offset | Two sequential streams, read once |
| Parallel read hardware | N-by-N crossbar, O(N²) area | Fixed-size bitonic merger with a forwarding loop |
| On-chip storage | Table can reach 160 MB at realistic load factors | Sorted coordinate lists, no table |
| Result at equal parallelism | Baseline | 1.4x faster, up to 14x less area |
One sorting unit, four point-cloud operations
The reason PointAcc calls this block a mapping unit rather than a convolution helper is that sorting turns out to be the common core of every irregular operation a point-cloud network needs. Kernel mapping is an equality after a shift. Building the output cloud under a stride s is quantizing coordinates to the stride grid and then deduplicating, which sorting does by putting duplicates next to each other. Farthest point sampling picks the point with the largest distance, a top-1 of a ranking. k-nearest-neighbor search is a top-k of the same ranking, and ball query is a threshold on the sorted distances. The paper lists these as the operations the single ranking-based unit implements (Lin et al., 2021, sections 2.1 and 4.1). Flip the simulator above to stride 2 to see the output construction case: the five inputs collapse to fewer outputs before any offset is tried.
Recall
State the condition that makes input p and output q a pair for offset δ, and say what PointAcc does to turn it into an equality test.
Recall
For W−1,−1 on slide 111, which tuples come out, and why does the shift carry a plus sign?
Recall
Give two reasons a hash table is a poor mapping unit on chip.
Quick check
For weight offset W1,1, the PointAcc mapping unit adds which vector to every input coordinate?
Quick check
A parallel hash table is rejected as the mapping unit mainly because it needs
Slide 113 is a pair of bar charts with three baselines, and the baselines matter more than the bars. Red is an NVIDIA RTX 2080Ti, the server GPU that already runs TorchSparse-style code well. Dark grey is an Intel Xeon Skylake host paired with a TPU V3, a dense-matmul accelerator that has to send every mapping operation back to the host. Light grey is an Intel Xeon Gold 6130 CPU alone. The right-most group, GeoMean, is the geometric mean across the eight networks, so no single network dominates the average.
Start with the GeoMean row and read the two charts together. Against the GPU, PointAcc is 3.7x faster and 22x more energy efficient. Against the TPU system it is 53x faster and saves 210x energy. Against the CPU it is 90x faster and saves 176x (the slide prints 193x, see the errata below). The paper's abstract leads with the GPU pair, 3.7x and 22x over an RTX 2080Ti, evaluated on eight models across four applications (Lin et al., 2021).
| Network | Speedup vs 2080Ti | Speedup vs TPU V3 | Speedup vs Gold 6130 | Energy vs 2080Ti | Energy vs TPU V3 | Energy vs Gold 6130 |
|---|---|---|---|---|---|---|
| PointNet | 3.7 | 27 | 127 | 18 | 1,319 | 172 |
| PointNet++ (c) | 2.8 | 113 | 97 | 14 | 169 | 119 |
| PointNet++ (ps) | 2.8 | 37 | 82 | 25 | 99 | 152 |
| DGCNN | 3.7 | 3.4 | 65 | 27 | 38 | 91 |
| F-PointNet++ | 3.7 | 269 | 131 | 16 | 682 | 394 |
| PointNet++ (s) | 4.7 | 88 | 106 | 45 | 161 | 221 |
| MinkNet(i) | 8.3 | 102 | 94 | 36 | 324 | 268 |
| MinkNet(o) | 2.4 | 71 | 51 | 13 | 127 | 139 |
| GeoMean | 3.7 | 53 | 90 | 22 | 210 | 193 (paper: 176) |
The network names encode the benchmark. The PointNet++ suffixes are (c) classification, (ps) part segmentation and (s) semantic segmentation. F-PointNet++ is the frustum detector built on PointNet++. MinkNet(i) and MinkNet(o) are MinkowskiUNet on an indoor dataset (S3DIS) and an outdoor dataset (SemanticKITTI), the two sparse-convolution workloads closest to part 11 (Lin et al., 2021, Table 2).
Why the TPU column swings from 3.4x to 269x
The GPU column is flat, between 2.4x and 8.3x, because a GPU handles both the mapping and the matmuls in the same memory. The TPU column ranges from 3.4x on DGCNN to 269x on F-PointNet++, and the spread is the lesson of the whole part. The paper attributes the gain over the TPU mainly to supporting mapping operations on chip (Lin et al., 2021, section 5.2). The paper does not break that number down per network, so the following is a reading of the chart, not a quoted result. DGCNN's neighbor search is a pairwise-distance computation in feature space, recomputed inside every EdgeConv layer, and a dense matmul unit already runs that well, so it has the least mapping work to move on chip. F-PointNet++ and the segmentation variants of PointNet++ are dominated by sampling, neighbor search and gathering, exactly the operations the TPU must hand back to the host, so removing that round trip is worth two orders of magnitude.
Recall
Slide 113 prints 193 for the CPU energy GeoMean. Using the definition of a geometric mean and the eight per-network bars, how would you check it?
Recall
Quote PointAcc's geometric-mean speedup and energy saving over the RTX 2080Ti, and name the other two baselines on slide 113.
Quick check
On slide 113, what is PointAcc's speedup on DGCNN over the Xeon Skylake plus TPU V3 system, the smallest entry in that column?
Slide 114 compresses the lecture into two bullets: automated ways to find pruning ratios, and system and hardware support for different granularities. Those two bullets are two separate questions from the five that opened the deck. The first asks how much to remove from each layer. The second asks how the zeros you created turn into time and energy actually saved. Neither is worth much without the other.
Thread one: choosing the ratio
Sensitivity analysis prunes one layer at a time across a sweep of ratios, plots accuracy against ratio, and reads each layer's rate where its curve crosses an accuracy threshold. It is cheap and transparent, and its weakness is that it ignores Layer interaction: the compounding loss when many layers are pruned together, which is why its per-layer rates are only a starting point. AMC (AutoML for Model Compression) replaces the human with a DDPG agent that sees a layer embedding and emits a continuous sparsity ratio, rewarded by accuracy under a FLOPs or latency budget. NetAdapt keeps a rule instead of a policy: cut latency by a fixed step, choose the layer whose short-term fine-tuned accuracy is highest, consult a measured latency lookup table rather than FLOPs, repeat until the budget is met, then long-term fine-tune. Whichever chooses the ratios, Fine-tuning and Iterative pruning are what recover the accuracy afterwards.
Thread two: making the zeros pay
A pruned weight is only free if the hardware skips it. EIE (Efficient Inference Engine) skips two kinds at once: static Weight sparsity stored in CSC form across an array of processing elements, and dynamic activation sparsity caught by leading non-zero detection so that a zero activation is never broadcast. NVIDIA Ampere tensor cores accept 2:4 sparsity only, and in return the Sparse tensor core uses the two-bit metadata to select operands and doubles math throughput (Mishra et al., 2021). TorchSparse handles the sparsity of point-cloud inputs in software by trading a little padding for regular batched matmuls through Adaptive grouping, and TorchSparse++ overlaps the gather and scatter with compute. PointAcc moves the same problem into hardware, with the merge-sort mapping unit of the previous concept. The granularity is the thread joining all four: the finer the sparsity, the more bookkeeping the system must do to skip it, and the coarser the sparsity, the more the pruning method must give up to fit the pattern.
| Sparsity | Where it comes from | Granularity needed | System | Mechanism |
|---|---|---|---|---|
| Fine-grained weight | Pruning, static | Irregular, individual weights | EIE | CSC storage, PE array, weight sharing, skip zero weights |
| M:N weight (2:4) | Pruning with a pattern, static | 2 nonzeros in every 4 along a row | NVIDIA Ampere sparse tensor cores | 2-bit metadata selects the paired activations, 2x math throughput |
| Activation (ReLU zeros) | ReLU at run time, dynamic | Element level | EIE | Leading non-zero detection, never broadcast a zero |
| Activation (sparse point-cloud inputs) | Data occupancy, dynamic | Point (coordinate) level | TorchSparse (software), PointAcc (hardware) | Maps plus gather, matmul, scatter with adaptive grouping; merge-sort mapping unit |
The bridge to the next lecture
Pruning removes weights. Quantization shrinks the ones that stay. Slide 114 sets the order for the next lecture: first the numeric data types modern computer systems actually offer, then the basic concept of neural network quantization, then the common quantization methods. The two techniques are complementary in the deep compression sense: after pruning left AlexNet with a ninth of its connections, quantizing and coding the survivors is what pushed the total to 35x in Han et al.'s pipeline, and both will show up together in the memory and energy arguments of the next lecture (Han, Mao and Dally, 2016).
Recall
Name the three automated ways to find pruning ratios from this lecture and one weakness of the first.
Recall
Which two topics open the next lecture before the quantization methods?
Quick check
Which system on slide 55 is paired with M:N weight sparsity?
Slide 115 lists nineteen references. Read as a map of the lecture they fall into six groups: foundations of model compression and energy (items 1, 2, 4, 5, 6), pruning criteria (3, 12, 13, 15), structured and channel pruning (7, 10, 11, 14, 16, 17), automated ratio search (9), hardware support (8), and one-shot pruning of large language models (18), with Prof. Han's TinyML course (19) as the source the whole deck follows. The Sources block at the end of this part gives a link for each one that has an archival home.
Where the references land in this lecture
- Foundations
- Deng et al. 2020 survey; Horowitz 2014 on the energy of memory access; Han et al. 2015; Han's Stanford thesis; Walsh 2013 on Huttenlocher's synapse counts
- Criteria
- LeCun et al. 1989 Optimal Brain Damage; Molchanov et al. 2017 and 2019 Taylor ranking; Wang's first-order Taylor note
- Structured pruning
- Mao et al. on granularity; Wen et al. 2016; Liu et al. 2017 Network Slimming; Hu et al. Network Trimming; He et al. 2017 channel pruning; Luo et al. 2017 ThiNet
- Automation
- He et al. 2018 AMC
- Hardware
- NVIDIA Ampere and TensorRT sparsity blog
- Large models
- Frantar and Alistarh 2023 SparseGPT
- Course
- Prof. Han's TinyML course (MIT 6.5940)
The list is also worth checking against the slides themselves, because several of the papers this lecture leaned on hardest are cited in slide footers but never make it to the reference page. Every hardware system in the second half of the deck is in that position. If you cite from this lecture in your own writing, take the references from the Sources below rather than from slide 115.
Recall
Which two hardware papers from this lecture are missing from the reference slide?
Recap
If you remember nothing else
- Sparse convolution pairs input p with output q for offset δ exactly when p = q + δ. PointAcc tests this as an equality after shifting every input by −δ.
- The mapping unit merge-sorts the shifted inputs with the outputs. Equal adjacent neighbors are map entries, found with |I| + |O| − 1 local comparisons and no random SRAM reads.
- On slide 112, W_1,1 yields (P1, Q0) and (P4, Q3). On slide 111, W_-1,-1 yields (P0, Q1) and (P3, Q4). The two lists are the same pairs with roles swapped.
- A parallel hash table needs an O(N²) crossbar and a table that can reach 160 MB. The merge-sort unit is 1.4x faster and up to 14x smaller at equal parallelism.
- One ranking kernel also serves farthest point sampling, kNN and ball query. Stride downsampling uses coordinate quantization instead.
- PointAcc geomean: 3.7x, 53x and 90x speedup and 22x, 210x and 176x energy saving (slide 113 prints 193x for the last one) over an RTX 2080Ti, a Xeon Skylake plus TPU V3, and a Xeon Gold 6130.
- Ratio methods: sensitivity analysis, AMC, NetAdapt. Systems: EIE (weight plus activation), Ampere tensor cores (M:N), TorchSparse and PointAcc (activation sparsity from sparse inputs).
- Next lecture: numeric data types, the basic concept of quantization, common quantization methods.
- Slide 115 omits NetAdapt, EIE, Mishra et al. 2021, TorchSparse, TorchSparse++ and PointAcc, and dates Hu et al. to 2017 when the paper appeared in 2016.
Sources
- PointAcc: Efficient Point Cloud AcceleratorPaperMICRO 2021, Lin, Zhang, Tang, Wang and HanMapping bottleneck (section 3), hash table critique and merge-sort mapping unit (section 4.1), 3.7x and 22x over an RTX 2080Ti, results (section 5.2, Figure 13, Table 2).(opens in a new tab)
- TorchSparse: Efficient Point Cloud Inference EnginePaperMLSys 2022, Tang, Liu, Li, Lin and HanCited on slides 87 to 107, absent from slide 115.(opens in a new tab)
- TorchSparse++: Efficient Training and Inference Framework for Sparse Convolution on GPUsPaperMICRO 2023, Tang et al.Cited on slides 108 and 109, absent from slide 115.(opens in a new tab)
- EIE: Efficient Inference Engine on Compressed Deep Neural NetworkPaperISCA 2016, Han et al.Cited on slides 57 to 77, absent from slide 115.(opens in a new tab)
- Submanifold Sparse Convolutional NetworksPaperarXiv, Graham and van der Maaten, 2017Cited on slide 86 as Graham, BMVC 2015 (that venue is Graham's earlier Sparse 3D Convolutional Neural Networks, arXiv 1505.02890), absent from slide 115.(opens in a new tab)
- NetAdapt: Platform-Aware Neural Network Adaptation for Mobile ApplicationsPaperECCV 2018, Yang et al.Cited on slides 33 to 40, absent from slide 115.(opens in a new tab)
- Accelerating Sparse Deep Neural NetworksPaperNVIDIA, Mishra et al., 20212:4 sparsity giving twice the math throughput on Ampere tensor cores.(opens in a new tab)
- Accelerating Inference with Sparsity Using the NVIDIA Ampere Architecture and NVIDIA TensorRTArticleNVIDIA Technical Blog, Pool, Sawarkar and Rodge, 2021Slide 115 item 8.(opens in a new tab)
- MIT 6.5940 TinyML and Efficient Deep Learning Computing, Lecture 4: Pruning and Sparsity (Part II)DocsMIT HAN LabSlide 115 item 19. The deck follows this lecture.(opens in a new tab)
- 4D Spatio-Temporal ConvNets: Minkowski Convolutional Neural NetworksPaperCVPR 2019, Choy, Gwak and SavareseMinkowskiNet, the MinkNet(i) and MinkNet(o) workloads on slide 113.(opens in a new tab)
- PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric SpacePaperNeurIPS 2017, Qi, Yi, Su and GuibasThe PointNet++ variants on slide 113 and their sampling and grouping operations.(opens in a new tab)
- Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman CodingPaperICLR 2016, Han, Mao and DallyPruning and quantization combined, 35x on AlexNet, the bridge to the next lecture.(opens in a new tab)
- The Lottery Ticket Hypothesis: Finding Sparse, Trainable Neural NetworksPaperICLR 2019, Frankle and CarbinRelated reading, not covered in the deck.(opens in a new tab)
- Model Compression and Hardware Acceleration for Neural Networks: A Comprehensive SurveyPaperProceedings of the IEEE 108(4), 2020, Deng, Li, Han, Shi and XieSlide 115 item 1.(opens in a new tab)
- Computing's Energy Problem (and What We Can Do About It)PaperISSCC 2014, HorowitzSlide 115 item 2.(opens in a new tab)
- Optimal Brain DamagePaperNIPS 1989, LeCun, Denker and SollaSlide 115 item 3.(opens in a new tab)
- Learning Both Weights and Connections for Efficient Neural NetworksPaperNeurIPS 2015, Han, Pool, Tran and DallySlide 115 item 4, and the before and after pruning figure on slide 114.(opens in a new tab)
- Efficient Methods and Hardware for Deep LearningPaperStanford University PhD thesis, Han, 2017Slide 115 item 5.(opens in a new tab)
- Peter Huttenlocher (1931 to 2013)ArticleNature 502, 2013, WalshSlide 115 item 6.(opens in a new tab)
- Exploring the Regularity of Sparse Structure in Convolutional Neural NetworksPaperCVPR Workshops 2017, Mao et al.Slide 115 item 7, listed there under its workshop title.(opens in a new tab)
- AMC: AutoML for Model Compression and Acceleration on Mobile DevicesPaperECCV 2018, He, Lin, Liu, Wang, Li and HanSlide 115 item 9.(opens in a new tab)
- Learning Structured Sparsity in Deep Neural NetworksPaperNeurIPS 2016, Wen et al.Slide 115 item 10.(opens in a new tab)
- Learning Efficient Convolutional Networks through Network SlimmingPaperICCV 2017, Liu et al.Slide 115 item 11.(opens in a new tab)
- Importance Estimation for Neural Network PruningPaperCVPR 2019, Molchanov et al.Slide 115 item 13.(opens in a new tab)
- Network Trimming: A Data-Driven Neuron Pruning Approach towards Efficient Deep ArchitecturesPaperarXiv, Hu, Peng, Tai and Tang, July 2016Slide 115 item 14, dated 2017 on the slide.(opens in a new tab)
- Pruning Convolutional Neural Networks for Resource Efficient InferencePaperICLR 2017, Molchanov et al.Slide 115 item 15.(opens in a new tab)
- Channel Pruning for Accelerating Very Deep Neural NetworksPaperICCV 2017, He, Zhang and SunSlide 115 item 16.(opens in a new tab)
- ThiNet: A Filter Level Pruning Method for Deep Neural Network CompressionPaperICCV 2017, Luo, Wu and LinSlide 115 item 17.(opens in a new tab)
- SparseGPT: Massive Language Models Can Be Accurately Pruned in One-ShotPaperICML 2023, Frantar and AlistarhSlide 115 item 18.(opens in a new tab)