Majid Al-RaimiReference sheetالورقة المرجعية

COE 592Lecture 4.2المحاضرة 4.2Referenceالمرجع

Reference sheetالورقة المرجعية

Pruning ratios, fine-tuning and sparse hardware compressed onto one page: the definitions, formulas and numbers to have in your head before a quiz or exam.محاضرة «نسب التقليم والضبط الدقيق والعتاد المتناثر» مضغوطة في صفحة واحدة: التعريفات والمعادلات والأرقام التي يجب أن تكون حاضرة في ذهنك قبل الاختبار القصير أو الامتحان.

The pruning problemمسألة الحذف (pruning)

Among all weight tensors with at most N nonzeros, pick the one with the lowest loss. Part 01: Where we are

من بين كل موترات الأوزان التي تحتوي على N قيمة غير صفرية على الأكثر، اختر الموتر صاحب أقل loss. Part 01: Where we are

arg⁡min⁡WPL(x; WP)subject to∥WP∥0≤N\arg\min_{W_P} L(x;\, W_P) \quad \text{subject to} \quad \|W_P\|_0 \le N
Loss minimization under a nonzero budgetتقليل الخسارة تحت ميزانية للقيم غير الصفرية

Every symbolكل رمز

L
The training loss, for example cross-entropyدالة الخسارة (loss) أثناء التدريب، مثل cross-entropy
x
The input data the loss is evaluated onبيانات الإدخال التي تُحسب عليها الخسارة
W
The original dense trained weightsالأوزان الأصلية الكثيفة بعد التدريب
W_P
The pruned weights, same shape as W, some entries forced to exactly zeroالأوزان بعد الحذف، بنفس شكل W، وبعض عناصرها مُجبرة على أن تساوي الصفر تمامًا
||W_P||_0
The number of nonzeros in W_P. Not a norm, no usable gradientعدد القيم غير الصفرية في W_P. ليس norm، وليس له تدرج (gradient) قابل للاستخدام
N
The nonzero budget. With M weights, sparsity is 1 - N / Mميزانية القيم غير الصفرية. مع M وزنًا تكون الـsparsity مساوية لـ 1 - N / M

Magnitude pruning on a 2 x 2 matrix at 50 percentحذف بالمقدار (magnitude pruning) على مصفوفة 2 x 2 بنسبة 50 بالمئة

W
[[3, -2], [1, -5]]
|W|
[[3, 2], [1, 5]]
Keep top 2احتفظ بأعلى 2
importances 5, 3, so -5 and 3 surviveالأهميات 5, 3، لذا تبقى -5 و3
W_P
[[3, 0], [0, -5]], ||W_P||_0 = 2, sparsity 50%[[3, 0], [0, -5]]، ||W_P||_0 = 2، والـsparsity تساوي 50%
QuestionالسؤالAsksما يسأل عنهAnswered inتُجاب في
Formulationالصياغة (Formulation)What is pruning and how is it written?ما هو الحذف وكيف يُكتب؟04-1, and part 01 hereالمحاضرة 04-1، والجزء 01 هنا
Granularityدرجة الدقة (Granularity)In what pattern are weights removed?بأي نمط تُحذف الأوزان؟04-1
Criterionالمعيار (Criterion)By what score are weights ranked?بأي درجة تُرتَّب الأوزان؟04-1
Ratioالنسبة (Ratio)What sparsity does each layer get?ما الـsparsity التي تحصل عليها كل طبقة؟Parts 02 to 05الأجزاء من 02 إلى 05
Fine-tuneFine-tuneHow is the lost accuracy recovered?كيف تُستعاد الدقة المفقودة؟Part 06الجزء 06
Five questions and where each is answeredخمسة أسئلة وأين تُجاب كل منها
LevelالمستوىWhat is removedما الذي يُحذفFlexibilityالمرونةHardware friendlinessملاءمة العتاد
Fine-grainedدقيق الحبيبات (Fine-grained)Single weights anywhereأوزان مفردة في أي موضعHighestالأعلىIndices plus sparse kernels (EIE)فهارس مع sparse kernels (EIE)
Pattern-based (2:4)قائم على نمط (2:4)Two of every four along a rowوزنان من كل أربعة على طول الصفHighعالية2-bit tags, Ampere tensor coresعلامات بطول 2-bit، وtensor cores في Ampere
Vector or kernelمتجه أو kernelA row segment or a whole k x k kernelجزء من صف أو kernel كامل بحجم k x kMediumمتوسطةFewer indices per blockفهارس أقل لكل كتلة
Channelقناة (Channel)A whole filter and its output channelمرشح (filter) كامل مع قناة الخرج التابعة لهLowestالأدنىDense kernels, layer simply narrowskernels كثيفة، والطبقة تضيق ببساطة
Granularity ladderسلّم درجة الدقة (granularity)

Removing a neuron deletes one row of W (out x in); removing a conv channel deletes one whole filter (C_in x k x k). Both are coarse-grained weight pruning; the criterion is a separate choice from the granularity.

حذف neuron يحذف صفًا واحدًا من W (out x in)، وحذف قناة في طبقة conv يحذف filter كاملًا (C_in x k x k). كلاهما حذف أوزان خشن الحبيبات (coarse-grained)، والمعيار (criterion) اختيار منفصل عن درجة الدقة (granularity).

Sensitivity analysisتحليل الحساسية (sensitivity analysis)

Uniform shrinking gives every layer the same factor and loses 2.1 points on MobileNet at the same latency (68.4% at 72.3 ms against AMC 70.5% at 68.3 ms). Layers differ in sensitivity, so each needs its own ratio. Part 02: Why per-layer ratios

التقليص المنتظم (uniform shrinking) يعطي كل طبقة المعامل نفسه، ويخسر 2.1 points على MobileNet عند زمن التنفيذ نفسه (68.4% عند 72.3 ms مقابل 70.5% لـAMC عند 68.3 ms). الطبقات تختلف في حساسيتها، لذلك تحتاج كل طبقة نسبتها الخاصة. Part 02: Why per-layer ratios

ΔAccr i=Accdense−Accr i\Delta \mathrm{Acc}_r^{\,i} = \mathrm{Acc}_{\text{dense}} - \mathrm{Acc}_r^{\,i}
Accuracy lost when only layer i is pruned at ratio rالدقة المفقودة حين تُقلَّم الطبقة i وحدها بنسبة r

The sweepالمسح

1. Pick a layer L_i1. اختر طبقة L_i
Every other layer stays exactly as trainedتبقى كل الطبقات الأخرى تمامًا كما دُرّبت
2. Prune only L_i2. احذف من L_i فقط
Magnitude, fine-grained, at r in {0, 0.1, ..., 0.9}بالمقدار (magnitude)، دقيق الحبيبات، عند r ضمن {0, 0.1, ..., 0.9}
3. Record Delta Acc3. سجّل Delta Acc
Delta Acc_r^i = Acc_dense - Acc_r^i, one evaluation per r, no trainingDelta Acc_r^i = Acc_dense - Acc_r^i، تقييم واحد لكل r، دون تدريب
4. Restore and repeat4. استرجع وكرّر
Copy the saved dense tensor back, move to the next layerانسخ الموتر الكثيف المحفوظ إلى مكانه، ثم انتقل إلى الطبقة التالية
Costالتكلفة
Layers x ratios evaluations: 11 x 10 = 110 for VGG-11, about 1.1 million forward passes on the 10,000 CIFAR-10 test imagesعدد الطبقات مضروبًا في عدد النسب من التقييمات: 11 x 10 = 110 لـVGG-11، أي نحو 1.1 million تمرير أمامي (forward pass) على صور اختبار CIFAR-10 البالغة 10,000
Layerالطبقةr = 0.5r = 0.50.60.60.70.70.80.80.90.9Verdictالحكم
L0 (first conv)L0 (أول طبقة conv)9288837132Most sensitiveالأكثر حساسية
L19393939285Most redundantالأكثر تكرارًا (redundancy)
L29393909079Redundantفيها تكرار
L39393908651Moderateمتوسطة
L49393907838Sensitive past 70حساسة بعد 70
L59392929082Redundantفيها تكرار
VGG-11 on CIFAR-10, accuracy (%) with one layer pruned at a time (dense about 93%)VGG-11 على CIFAR-10، الدقة (%) مع حذف طبقة واحدة في كل مرة (الدقة الكثيفة نحو 93%)

Threshold read-off and the overall rateالقراءة عند العتبة والمعدل الكلي

One horizontal line at accuracy threshold T turns six curves into six rates. Part 03: Reading sensitivity curves

خط أفقي واحد عند عتبة الدقة T يحوّل ستة منحنيات إلى ست نسب. Part 03: Reading sensitivity curves

ri=max⁡{ r∈{0,0.1,…,0.9}:Accr i≥T }r_i = \max\left\{\, r \in \{0, 0.1, \dots, 0.9\} : \mathrm{Acc}^{\,i}_{r} \ge T \,\right\}
Per-layer rate: largest swept ratio still at or above T; never-crossing layers get the maximum swept ratioالمعدل لكل طبقة: أكبر نسبة مُجرَّبة ما زالت عند T أو فوقها؛ والطبقات التي لا تعبر أبدًا تأخذ أكبر نسبة مُجرَّبة
R=∑iriNi∑iNi,compression=11−RR = \frac{\sum_i r_i N_i}{\sum_i N_i}, \qquad \text{compression} = \frac{1}{1 - R}
Overall rate is parameter-weighted, never the plain meanالمعدل الكلي موزون بعدد المعاملات، وليس المتوسط البسيط أبدًا
LayerالطبقةRateالنسبةWhyالسبب
L0about 73%نحو 73%Crosses T between the 70 and 80 percent pointsتعبر T بين نقطتي 70 و80 بالمئة
L1, L2, L590% (maximum swept)90% (أقصى قيمة في المسح)Never cross T inside the sweepلا تعبر T أبدًا داخل المسح
L3about 82%نحو 82%Crosses just past 80 percentتعبر بعد 80 بالمئة بقليل
L4about 80%نحو 80%Its 80 percent point sits just under the lineنقطة 80 بالمئة فيها تقع تحت الخط بقليل
Read-off at T of about 79 to 80 percent (the slide's dashed line)القراءة عند T بين 79 و80 بالمئة تقريبًا (الخط المتقطع في الشريحة)
Layerالطبقةr = 50%r = 50%60%60%70%70%80%80%90%90%Rateالنسبة
A (100,000 weights)A (100,000 وزن)90%84%70%52%30%50%
B (400,000 weights)B (400,000 وزن)95%93%91%86%75%70%
C (500,000 weights)C (500,000 وزن)95%95%94%93%90%90%
Exam-style table, T = 90 percent, accuracy after pruning one layer aloneجدول بأسلوب الامتحان، T = 90 بالمئة، الدقة بعد حذف طبقة واحدة وحدها

Worked numbersالأرقام المحلولة

Weighted sumالمجموع الموزون
100,000 x 0.5 + 400,000 x 0.7 + 500,000 x 0.9 = 780,000
Overall rate Rالمعدل الكلي R
780,000 / 1,000,000 = 78%
Remaining, compressionالمتبقي، ونسبة الضغط
220,000 weights, about 4.5x220,000 وزن، أي نحو 4.5x
Unweighted mean (wrong)المتوسط غير الموزون (خطأ)
(50 + 70 + 90) / 3 = 70%
VGG-11 at the slide's TVGG-11 عند T الخاصة بالشريحة
rates 0.73, 0.90, 0.90, 0.82, 0.80, 0.90 give R = 86.3% (7.3x) against an unweighted 84.2%النسب 0.73, 0.90, 0.90, 0.82, 0.80, 0.90 تعطي R = 86.3% (7.3x) مقابل 84.2% للمتوسط غير الموزون

Three ways to allocate one budgetثلاث طرق لتوزيع ميزانية واحدة

MethodالطريقةWho chooses the ratiosمن يختار النسبCostالتكلفةInteraction modelledهل يُنمذَج التفاعلTransfersقابلية النقل
Sensitivity analysisتحليل الحساسيةOne curve per layer plus one threshold Tمنحنى لكل طبقة مع عتبة واحدة TLayers x ratios single-layer evaluationsعدد الطبقات مضروبًا في عدد النسب من التقييمات لطبقة واحدةNo, layers swept aloneلا، كل طبقة تُمسح وحدهاNo, curves belong to one networkلا، المنحنيات تخص شبكة واحدة
AMCA DDPG agent, layer by layerوكيل DDPG، طبقة بعد طبقةHundreds of pruned networks, no retrainingمئات الشبكات المحذوفة، دون إعادة تدريبYes, the reward sees the whole networkنعم، المكافأة ترى الشبكة كلهاNew search per model and budgetبحث جديد لكل نموذج وكل ميزانية
NetAdaptA greedy rule: the proposal with the highest accuracyقاعدة جشعة (greedy): المقترح صاحب أعلى دقةK proposals per iteration, each short-term fine-tunedK مقترحات في كل تكرار، ولكل منها fine-tune قصير المدىYes, one layer at a time on the current networkنعم، طبقة واحدة في كل مرة على الشبكة الحاليةNew run per device and budgetتشغيل جديد لكل جهاز وكل ميزانية
Sensitivity analysis, AMC and NetAdaptتحليل الحساسية و AMC و NetAdapt

AMC: pruning as reinforcement learningAMC: الحذف كمسألة تعلم معزز (reinforcement learning)

Fifty layers with ten candidate ratios each is 10^50 configurations. A DDPG agent learns only the per-layer ratio; magnitude selection inside each layer and one final fine-tune are unchanged. Part 04: AMC

خمسون طبقة مع عشر نسب مرشحة لكل منها تعطي 10^50 تشكيلة. وكيل DDPG يتعلم فقط نسبة كل طبقة، أما اختيار الأوزان بالمقدار (magnitude) داخل كل طبقة وfine-tune النهائي الوحيد فيبقيان كما هما. Part 04: AMC

The RL ingredientsمكونات الـ RL

Stateالحالة (State)
Layer embedding: eleven scaled features (t, n, c, h, w, stride, k, FLOPs[t], reduced, rest, a[t-1])تمثيل الطبقة (layer embedding): إحدى عشرة خاصية مُقيَّسة (t, n, c, h, w, stride, k, FLOPs[t], reduced, rest, a[t-1])
Actionالفعل (Action)
One continuous sparsity ratio a_t in (0, 1] for the current layerنسبة sparsity متصلة واحدة a_t ضمن (0, 1] للطبقة الحالية
Agentالوكيل (Agent)
DDPG, actor-critic: actor proposes a_t, critic scores Q(s_t, a_t)DDPG من نوع actor-critic: الـactor يقترح a_t، والـcritic يقيّم Q(s_t, a_t)
Environmentالبيئة (Environment)
Channel pruning of the pretrained network, magnitude selection inside each layerحذف القنوات (channel pruning) من الشبكة المدربة مسبقًا، مع اختيار بالمقدار داخل كل طبقة
Rewardالمكافأة (Reward)
-Error after all layers are pruned, if the FLOPs or latency budget holds-Error بعد حذف كل الطبقات، إذا تحققت ميزانية FLOPs أو زمن التنفيذ
Episodeالحلقة (Episode)
One pass over all layers, one pruned network, one reward, no fine-tuning during searchمرور واحد على كل الطبقات، وشبكة محذوفة واحدة، ومكافأة واحدة، ولا fine-tuning أثناء البحث
R={−Errorif the FLOPs or latency constraint is met−∞otherwiseR = \begin{cases} -\text{Error} & \text{if the FLOPs or latency constraint is met} \\ -\infty & \text{otherwise} \end{cases}
Resource-constrained reward (slide 29)المكافأة المقيدة بالموارد (الشريحة 29)
RFLOPs=−Error⋅log⁡(FLOPs)R_{\text{FLOPs}} = -\text{Error} \cdot \log(\text{FLOPs})
Accuracy-guaranteed reward (slide 28)المكافأة المضمونة الدقة (الشريحة 28)
Wduty=α Wall−amax⁡Wrest−Wreduced,at←max⁡ ⁣(at,  WdutyWt)W_{\text{duty}} = \alpha\, W_{\text{all}} - a_{\max} W_{\text{rest}} - W_{\text{reduced}}, \qquad a_t \leftarrow \max\!\left(a_t,\; \frac{W_{\text{duty}}}{W_t}\right)
Duty bound (Algorithm 1): the budget is met by construction, a_max is 0.8 for conv and 0.98 for FCحد الواجب (Algorithm 1): تتحقق الميزانية بحكم البناء، وa_max تساوي 0.8 لطبقات conv و0.98 لطبقات FC
RegionالمنطقةHuman expertالخبير البشريAMCAMC
Conv150%43%
ResBlock1 to ResBlock4من ResBlock1 إلى ResBlock431, 31, 30, 30%28, 28, 23, 19%
FC20%10%
Total (compression)الإجمالي (نسبة الضغط)29% (3.4x)20% (5x)
Top-176.13%76.11%
ResNet-50 density kept, fine-grained pruning in four rounds (50, 35, 25, 20 percent)الكثافة المتبقية في ResNet-50، حذف دقيق الحبيبات على أربع جولات (50 و35 و25 و20 بالمئة)

The agent keeps 1x1 layers denser (peaks) and prunes 3x3 layers harder (crests): a stage-3 bottleneck holds about 590K of its 1.1M weights in the 3x3 layer.

يُبقي الوكيل طبقات 1x1 أكثر كثافة (القمم) ويحذف من طبقات 3x3 بقوة أكبر (القيعان): في bottleneck من المرحلة الثالثة تحمل طبقة 3x3 نحو 590K من أصل 1.1M وزن.

ModelالنموذجMACsMACsTop-1Top-1Latencyزمن التنفيذSpeedupالتسريع
1.0 MobileNet569M70.6%119.0 ms1x
AMC (50% FLOPs)AMC (50% من FLOPs)285M70.5%64.4 ms1.8x
AMC (50% Time)AMC (50% من الزمن)272M70.2%59.7 ms2.0x
0.75 MobileNet (uniform)0.75 MobileNet (منتظم)325M68.4%69.5 ms1.7x
MobileNet on a Galaxy S7 Edge, TF-Lite, single core, batch 1 (slide 32)MobileNet على Galaxy S7 Edge، TF-Lite، نواة واحدة، دفعة 1 (الشريحة 32)

NetAdapt: platform-aware pruning to a latency budgetNetAdapt: حذف يراعي المنصة للوصول إلى ميزانية زمن تنفيذ

A rule-based, iterative, progressive method: tighten the constraint by Delta R each round, thin one layer, keep the proposal that hurts least. Part 05: NetAdapt

طريقة قائمة على قواعد، تكرارية وتدريجية: شدّد القيد بمقدار Delta R في كل جولة، وقلّص طبقة واحدة، واحتفظ بالمقترح الأقل ضررًا. Part 05: NetAdapt

max⁡Net  Acc(Net)s.t.Resj(Net)≤Budj\max_{\text{Net}} \; \text{Acc}(\text{Net}) \quad \text{s.t.} \quad \text{Res}_j(\text{Net}) \le \text{Bud}_j
Eq. 1: the global problemالمعادلة 1: المسألة الكلية
max⁡Neti  Acc(Neti)s.t.Resj(Neti)≤Resj(Neti−1)−ΔRi,j\max_{\text{Net}_i} \; \text{Acc}(\text{Net}_i) \quad \text{s.t.} \quad \text{Res}_j(\text{Net}_i) \le \text{Res}_j(\text{Net}_{i-1}) - \Delta R_{i,j}
Eq. 2: the per-iteration problemالمعادلة 2: المسألة في كل تكرار

One iterationتكرار واحد

1. Constraint1. القيد
Con = Res_i - Delta R_i
2. Propose, per layer k2. اقترح، لكل طبقة k
From the lookup table, the largest filter count that meets Con; keep the largest-l2 filtersمن جدول البحث (lookup table)، أكبر عدد من الـfilters يحقق Con؛ واحتفظ بالـfilters صاحبة أكبر l2
3. Short-term fine-tune3. fine-tune قصير المدى
About 10k iterations, then measure holdout accuracyنحو 10k تكرار، ثم قِس الدقة على بيانات holdout
4. Pick4. اختر
The proposal with the highest accuracy becomes Net_(i+1)المقترح صاحب أعلى دقة يصبح Net_(i+1)
5. Repeat5. كرّر
While the latency is still above the budgetما دام زمن التنفيذ أعلى من الميزانية
6. Long-term fine-tune6. fine-tune طويل المدى
Once, to convergence; adds 1.8 to 4.5 points and is the number reportedمرة واحدة حتى التقارب؛ يضيف من 1.8 إلى 4.5 نقطة، وهو الرقم المنشور
NetworkالشبكةTop-1Top-1MACsMACsLatencyزمن التنفيذ
25% MobileNetV1 (128)45.1%13.6M (100%)4.65 ms (100%)
MorphNet46.0%15.0M (110%)6.52 ms (140%)
NetAdapt guided by MACsNetAdapt موجَّه بـMACs46.3%11.0M (81%)6.01 ms (129%)
Why a measured lookup table and not MACs (NetAdapt Table 1, Pixel 1 CPU)لماذا جدول بحث مقاس وليس MACs (الجدول 1 في NetAdapt، CPU لهاتف Pixel 1)

Per-layer tables are indexed by layer shape, measured once on the device and summed; removing filters in layer k also removes input channels of layer k + 1. Worked hand run: 10.0 ms to a 7.0 ms budget with Delta R = 1.0 ms takes three iterations (9.0, 7.6, 6.5 ms), and the constraint is always set from the current latency, not the budget.

جداول كل طبقة مفهرسة بشكل الطبقة، تُقاس مرة واحدة على الجهاز ثم تُجمع، وحذف filters من الطبقة k يحذف أيضًا قنوات الإدخال في الطبقة k + 1. مثال محلول يدويًا: الانتقال من 10.0 ms إلى ميزانية 7.0 ms مع Delta R = 1.0 ms يحتاج ثلاث تكرارات (9.0، 7.6، 6.5 ms)، والقيد يُحدد دائمًا من زمن التنفيذ الحالي لا من الميزانية.

#models=#iterations\#\text{models} = \#\text{iterations}
Every iteration's winner is a deployable network, so one run traces the accuracy versus latency frontierالفائز في كل تكرار شبكة قابلة للنشر، لذلك يرسم تشغيل واحد حد الدقة مقابل زمن الاستجابة
Initial Delta RDelta R الابتدائيDecayمعامل التناقص (Decay)IterationsالتكراراتTop-1Top-1Latencyزمن التنفيذ
0.5 ms0.962847.7%4.63 ms
0.5 ms1.02047.4%4.71 ms
0.8 ms0.952046.7%4.65 ms
Resource reduction schedules, small MobileNetV1 (Table 2)جداول تقليص الموارد، MobileNetV1 صغيرة (الجدول 2)

Slide 40: 1.7x faster than the width-multiplier baseline and 1.6x faster than MorphNet at equal or 0.3% higher accuracy on a Pixel 1 CPU; about 1.2x on a mobile GPU because of fixed overhead.

الشريحة 40: أسرع بـ1.7x من خط الأساس القائم على width multiplier، وأسرع بـ1.6x من MorphNet، بدقة مساوية أو أعلى بـ0.3% على CPU لهاتف Pixel 1، ونحو 1.2x فقط على GPU الهاتف بسبب التكلفة الثابتة.

AspectالجانبAMCAMCNetAdaptNetAdapt
Who decidesمن يقررDDPG agent learns a policy from rewardsوكيل DDPG يتعلم سياسة (policy) من المكافآتGreedy rule: highest short-term accuracy winsقاعدة جشعة: الأعلى دقة على المدى القصير يفوز
Search unitوحدة البحثEvery layer once per episodeكل طبقة مرة واحدة في كل episodeOne layer changed per iteration, all layers triedطبقة واحدة تتغير في كل تكرار، مع تجربة كل الطبقات
Cost modelنموذج التكلفةFLOPs or latency in the reward, optional lookup tableFLOPs أو زمن التنفيذ داخل المكافأة، مع جدول بحث اختياريPer-layer latency lookup table, measured and summedجدول بحث لزمن تنفيذ كل طبقة، يُقاس ثم يُجمع
Fine-tuningالـfine-tuningOne fine-tune of the final networkfine-tune واحد للشبكة النهائيةShort-term per proposal, long-term onceقصير المدى لكل مقترح، وطويل المدى مرة واحدة
OutputالمخرَجOne model per targetنموذج واحد لكل هدفA model at every iteration, the whole frontierنموذج عند كل تكرار، أي منحنى الحدود (frontier) كاملًا
AMC versus NetAdaptAMC مقابل NetAdapt

Fine-tuning, iterative pruning and regularizationالـfine-tuning والحذف التكراري والـregularization

Pruning removes terms from a function the survivors were tuned to complete; fine-tuning at 1/10 to 1/100 of the original learning rate lets them absorb the work without leaving the minimum the ranking was measured in. Pipeline: Train Connectivity, Prune Connections, Train Weights, with a loop arrow back. Part 06: Fine-tuning and iterative pruning

الحذف يزيل حدودًا من دالة كانت الأوزان الباقية مضبوطة لتكملها، والـfine-tuning بمعدل تعلم يساوي 1/10 إلى 1/100 من الأصلي يسمح لها بامتصاص هذا العمل دون مغادرة النقطة الدنيا التي قيس فيها الترتيب. خط المعالجة: Train Connectivity ثم Prune Connections ثم Train Weights، مع سهم حلقة يعود إلى البداية. Part 06: Fine-tuning and iterative pruning

AlexNet, Han et al. 2015AlexNet، Han et al. 2015

Parametersالمعاملات
61M to 6.7M (9x)61M إلى 6.7M (9x)
Top-1 / top-5 errorخطأ top-1 / top-5
42.78 to 42.77% / 19.73 to 19.67%42.78 إلى 42.77% / 19.73 إلى 19.67%
Learning rateمعدل التعلم
1/100 of the original for AlexNet, 1/10 for LeNet1/100 من الأصلي لـAlexNet، و1/10 لـLeNet
Training versus retrainingالتدريب مقابل إعادة التدريب
75 h versus 173 h on a Titan X75 h مقابل 173 h على Titan X
VGG-16
138M to 10.3M (13x) in five iterations138M إلى 10.3M (13x) في خمسة تكرارات
s=1−1ratio,ratio=11−ss = 1 - \frac{1}{\text{ratio}}, \qquad \text{ratio} = \frac{1}{1 - s}
Sparsity and compression ratio are the same numberالتناثر ونسبة الضغط هما الرقم نفسه
RatioالنسبةPruned awayالمحذوفWhat happens thereما يحدث عندها
2x50%Free lunch, no retraining neededوجبة مجانية، لا حاجة لإعادة التدريب
3x66.7%Where pruning-only starts losingحيث يبدأ الحذف وحده بالخسارة
5x80%Single prune plus fine-tune, no lossحذف واحد مع fine-tune، دون خسارة
9x88.9%Iterative, no loss on AlexNetتكراري، دون خسارة على AlexNet
10x90%Iterative curve begins to dropيبدأ المنحنى التكراري بالهبوط
13x92.3%VGG-16 iterative resultنتيجة VGG-16 التكرارية
Ratio to fraction pruned awayمن نسبة الضغط إلى الجزء المحذوف
CurveالمنحنىWithin 0.5% loss up toضمن خسارة 0.5% حتىReaches about -4% atيصل إلى نحو -4% عند
Pruning onlyالحذف وحدهabout 65%نحو 65%about 80% (5x)نحو 80% (5x)
Pruning + fine-tuningالحذف + fine-tuningabout 85%نحو 85%about 93% (14x)نحو 93% (14x)
Iterative pruning + fine-tuningالحذف التكراري + fine-tuningabout 92%نحو 92%about 95.5% (22x)نحو 95.5% (22x)
Slide 51: how far each curve holdsالشريحة 51: إلى أي حد يصمد كل منحنى
st=sf+(si−sf)(1−t−t0n Δt)3s_t = s_f + (s_i - s_f)\left(1 - \frac{t - t_0}{n\,\Delta t}\right)^3
Zhu and Gupta's gradual schedule: fast early, slow lateالجدول التدريجي لـ Zhu وGupta: سريع في البداية، بطيء في النهاية
L′=L(x;W)+λ ∣W∣L′=L(x;W)+λ ∥W∥2L' = L(\mathbf{x};\mathbf{W}) + \lambda\,|\mathbf{W}| \qquad L' = L(\mathbf{x};\mathbf{W}) + \lambda\,\|\mathbf{W}\|^2
L1 and L2 regularized lossesالخسائر المنظَّمة بـ L1 وL2
L1L1L2L2
Penaltyالعقوبة (Penalty)lambda |W|lambda ||W||^2
Gradientالتدرج (Gradient)lambda sign(w), constantlambda sign(w)، ثابت2 lambda w, shrinks with w2 lambda w، يصغر مع w
Effect per stepالأثر في كل خطوةSubtract a fixed amountطرح مقدار ثابتMultiply by a factor below oneالضرب في معامل أقل من واحد
Where weights endأين تنتهي الأوزانExactly zero, then stayصفر تمامًا، ثم تبقى عندهSmall but never zeroصغيرة لكنها لا تصبح صفرًا أبدًا
Before retraining (Han et al.)قبل إعادة التدريب (Han et al.)BetterأفضلWorseأسوأ
After retraining (Han et al.)بعد إعادة التدريب (Han et al.)WorseأسوأBetter, best overallأفضل، والأفضل إجمالًا
L1 versus L2 as preparation for magnitude pruningL1 مقابل L2 كتحضير للحذف بالمقدار

Worked: w = 0.05, lambda = 0.01, eta = 0.1. L1 subtracts 0.001 per step and reaches zero in 50 steps. L2 multiplies by 0.998 per step: 0.0452 after 50, 0.0068 after 1000, never zero. Han et al. found L2 best overall for magnitude pruning.

مثال محلول: w = 0.05، lambda = 0.01، eta = 0.1. الـL1 يطرح 0.001 في كل خطوة فيصل إلى الصفر خلال 50 خطوة. أما L2 فيضرب في 0.998 في كل خطوة: 0.0452 بعد 50 خطوة، و0.0068 بعد 1000، ولا يصل إلى الصفر أبدًا. وجد Han et al. أن L2 هو الأفضل إجمالًا لحذف الأوزان بالمقدار.

L=∑(x,y)l(f(x,W),y)+λ∑γ∈Γ∣γ∣L = \sum_{(x,y)} l\big(f(x, W), y\big) + \lambda \sum_{\gamma \in \Gamma} |\gamma|
Network Slimming: L1 penalty on batch norm scaling factors, then a global percentile threshold on gamma; 20x smaller, 5x fewer ops on VGGNetNetwork Slimming: عقوبة L1 على معاملات التحجيم في batch norm، ثم حد مئيني عام على gamma؛ أصغر بـ 20 مرة وعمليات أقل بـ 5 مرات على VGGNet

EIE: why sparsity needs hardwareEIE: لماذا تحتاج الـsparsity إلى عتاد

A 91% sparse AlexNet FC6 on vendor sparse kernels gains little and can lose. Part 07: EIE

طبقة FC6 من AlexNet بنسبة sparsity تبلغ 91%، عند تشغيلها بمكتبات sparse kernels من الشركات المصنعة، تكسب القليل وقد تخسر. Part 07: EIE

PlatformالمنصةBatchالدفعةDenseكثيفSparseمتناثرSparse vs denseالمتناثر مقابل الكثيف
Core i7-5930k CPU17516.2 us3066.5 us2.5x fasterأسرع 2.5x
Titan X GPU1541.5 us134.8 us4.0x fasterأسرع 4.0x
Titan X GPU6419.8 us94.6 us4.8x slowerأبطأ 4.8x
EIE, 64 PEsEIE، 64 وحدة PE1sparse onlyمتناثر فقط30.3 us248x vs dense CPU248x مقابل CPU الكثيف
AlexNet FC6, EIE Table IVAlexNet FC6، الجدول IV في EIE
SourceالمصدرSparsity or bitsالـ sparsity أو عدد البتاتComputeالحسابMemoryالذاكرةRule of thumbالقاعدة العامة
Sparse weightأوزان متناثرة90% static90% ثابتة (static)10x5x (index overhead)5x (زيادة الفهارس)0 x A = 0
Sparse activationactivations متناثرة70% dynamic70% ديناميكية (dynamic)3xnone claimedلم يُذكر توفيرW x 0 = 0
Weight sharingمشاركة الأوزان (weight sharing)4-bit codesرموز بطول 4-bitnone claimedلم يُذكر توفير8x2.09, 1.92 => 2
Three savings (slide 57)ثلاثة أنواع من التوفير (الشريحة 57)
bi=ReLU(∑j∈Xi∩YS[Iij] aj)b_i = \mathrm{ReLU}\Big(\sum_{j \in X_i \cap Y} S[I_{ij}]\, a_j\Big)
X_i: static nonzero columns of row i; Y: dynamic nonzero activations; S: 16-entry codebook; I_ij: 4-bit codeX_i: الأعمدة غير الصفرية الثابتة في الصف i؛ Y: التنشيطات غير الصفرية الديناميكية؛ S: دفتر رموز من 16 مدخلًا؛ I_ij: رمز من 4 بتات
PE(i)=i mod N,bi=ReLU(∑j∈YWij aj)\mathrm{PE}(i) = i \bmod N, \qquad b_i = \mathrm{ReLU}\Big(\sum_{j \in Y} W_{ij}\, a_j\Big)
Rows interleaved round-robin; nonzero activations broadcast with their index; every output stays local to one PEالصفوف موزعة بالتناوب (round-robin)؛ والتنشيطات غير الصفرية تُبث مع فهرسها؛ وكل مخرج يبقى محليًا في PE واحد

Worked 8 x 4 example with a = (0, 2, 0, 1) and eleven nonzeros: two broadcasts, seven multiplications instead of 32, columns 0 and 2 never visited, MACs per PE 3, 0, 3, 1. EIE accelerates only matrix-vector products in FC and LSTM layers at batch size 1.

مثال محلول 8 x 4 مع a = (0, 2, 0, 1) وإحدى عشرة قيمة غير صفرية: عمليتا بث، وسبع عمليات ضرب بدل 32، والعمودان 0 و2 لا يُزاران أبدًا، وعدد MACs لكل PE هو 3, 0, 3, 1. يسرّع EIE فقط ضرب المصفوفة في المتجه في طبقات FC وLSTM عند حجم دفعة يساوي 1.

Inside the PE and the storage formatداخل الـPE وصيغة التخزين

Part 08: EIE dataflow and PE

Part 08: EIE dataflow and PE

Five stages in orderخمس مراحل بالترتيب

1. Act Queue
FIFO of broadcast (a_j, j) pairs, depth 8; depth 1 idles about half of all cyclesطابور FIFO لأزواج (a_j, j) المبثوثة، بعمق 8؛ والعمق 1 يترك الوحدة خاملة في نحو نصف الدورات
2. Pointer Read
p_j and p_(j+1) from even and odd banks in one cycle; entry count is p(j+1) - p(j)p_j وp_(j+1) من البنكين الزوجي والفردي في دورة واحدة؛ وعدد المدخلات هو p(j+1) - p(j)
3. Sparse Matrix Access
8-bit entries, 4-bit code plus 4-bit relative index; one 64-bit read returns 8 entriesمدخلات بطول 8-bit: رمز 4-bit مع فهرس نسبي 4-bit؛ وقراءة واحدة بطول 64-bit تعيد 8 مدخلات
4. Arithmetic Unit
Decoder expands the code to 16-bit fixed point; address accumulator sums relative indices; multiply-add with bypassالـdecoder يوسّع الرمز إلى 16-bit بفاصلة ثابتة (fixed point)؛ ومُجمِّع العناوين يجمع الفهارس النسبية؛ ثم ضرب وجمع (multiply-add) مع مسار تجاوز (bypass)
5. Act R/W
Source and destination register files, 64 x 16 bits each, swap roles per layerملفا سجلات للمصدر والوجهة، كل منهما 64 x 16 bits، يتبادلان الدورين في كل طبقة
Tailالذيل
ReLU, then leading nonzero detection feeds the next layer's broadcastReLU، ثم leading nonzero detection يغذي البث في الطبقة التالية

Storage formats and bit widthsصيغ التخزين وعرض البتات

Weight code vرمز الوزن v
4 bits, index into a 16-entry per-layer codebook4 bits، فهرس داخل codebook من 16 مدخلًا لكل طبقة
Relative index xالفهرس النسبي x
4 bits, zeros since the previous entry, at most 154 bits، عدد الأصفار منذ المدخل السابق، بحد أقصى 15
Paddingالحشو (Padding)
gap above 15: insert v = 0, x = 15, keep countingفجوة أكبر من 15: أدخل v = 0, x = 15 واستمر في العد
Pointer p(j)المؤشر p(j)
16 bits, start of column j16 bits، بداية العمود j
Arithmeticالحساب
16-bit fixed point (79.8% vs 80.3% FP32; 8-bit collapses to 53%)16-bit بفاصلة ثابتة (79.8% مقابل 80.3% لـFP32؛ و8-bit تنهار إلى 53%)
Per PEلكل PE
162 KB SRAM, 93% of area, 0.638 mm2, 9.157 mW at 800 MHz, 45 nm162 KB SRAM، تشغل 93% من المساحة، و0.638 mm2، و9.157 mW عند 800 MHz، بتقنية 45 nm
Chipالشريحة
64 PEs, about 600 mW, 21 LNZD nodes (16 + 4 + 1)64 وحدة PE، نحو 600 mW، و21 عقدة LNZD (16 + 4 + 1)

Relative-index CSC on the running exampleصيغة relative-index CSC على المثال المستمر

PE0 slice (rows 0, 4)شريحة PE0 (الصفان 0 و4)
[w00, w01, 0, w03] over [0, 0, w42, w43][w00, w01, 0, w03] فوق [0, 0, w42, w43]
Values vالقيم v
[w00, w01, w42, w03, w43]
Relative index xالفهرس النسبي x
[0, 0, 1, 0, 0]
Pointers pالمؤشرات p
[0, 1, 2, 3, 5]
Column [0,0,5,0,0,0,0,7]العمود [0,0,5,0,0,0,0,7]
v = [5, 7], z = [2, 4]

EIE results and what came afterنتائج EIE وما جاء بعده

After the accumulators, ReLU then leading nonzero detection make the output the next layer's sparse input without leaving the chip. Part 09: EIE results and lessons

بعد المجمِّعات، تطبَّق ReLU ثم leading nonzero detection، فيصبح الخرج مدخلًا متناثرًا للطبقة التالية دون مغادرة الشريحة. Part 09: EIE results and lessons

120×10×8×3=28,800×120 \times 10 \times 8 \times 3 = 28{,}800\times
Theoretical energy saving; dropping the SRAM factor alone leaves only 240xالتوفير النظري في الطاقة؛ وإسقاط عامل SRAM وحده يترك 240x فقط
FactorالعاملSizeالحجمWhere it comes fromمن أين يأتيMechanismالآلية
SRAM instead of DRAMSRAM بدل DRAM120x5 pJ vs 640 pJ per 32-bit read (128x, rounded)5 pJ مقابل 640 pJ لكل قراءة 32-bit (128x، مقرّبة)Compression makes the model fit on chipالضغط يجعل النموذج يتسع داخل الشريحة
Weight sparsityتناثر الأوزان (weight sparsity)10x10% densityكثافة 10%Zeros never stored or fetchedالأصفار لا تُخزَّن ولا تُجلب أبدًا
Weight sharingمشاركة الأوزان8x4-bit codes vs 32-bitرموز 4-bit مقابل 32-bitDecoder expands on the way to the multiplierالـdecoder يوسّع الرمز في الطريق إلى المضاعِف
Activation skippingتخطي الـactivations3xabout 70% zeros after ReLUنحو 70% أصفار بعد ReLUNever broadcast a zeroلا يُبث الصفر أبدًا
The four factorsالعوامل الأربعة

Headline numbers to quote and qualifyالأرقام الرئيسية التي تُذكر مع شروطها

Speedالسرعة
189x vs Core i7 CPU, 13x vs Titan X GPU, batch size 1189x مقابل Core i7 CPU، و13x مقابل Titan X GPU، بحجم دفعة 1
Energyالطاقة
24,000x vs CPU, 3,400x vs GPU, 2,700x vs Tegra K124,000x مقابل CPU، و3,400x مقابل GPU، و2,700x مقابل Tegra K1
Theory versus measuredالنظري مقابل المقاس
28,800x on paper; about 10x lower measured because of index overhead and 45 nm vs 28 nm28,800x على الورق؛ والمقاس أقل بنحو 10x بسبب زيادة الفهارس والفرق بين 45 nm و28 nm
Throughputالإنتاجية (Throughput)
102 GOPS on the compressed network equals about 3 TOPS dense102 GOPS على الشبكة المضغوطة تعادل نحو 3 TOPS على شبكة كثيفة
FLOP reduction per layerتقليل FLOP لكل طبقة
1 / (d_weight x d_activation): AlexNet-6 33x, VGG-6 100x, LSTM layers 10x (activation density 100%)1 / (d_weight x d_activation): AlexNet-6 بمقدار 33x، وVGG-6 بمقدار 100x، وطبقات LSTM بمقدار 10x (كثافة الـactivations تساوي 100%)
Versus DaDianNao, matched nodeمقابل DaDianNao بعقدة التصنيع نفسها
2.9x throughput, 19x energy, 3x area2.9x في الإنتاجية، و19x في الطاقة، و3x في المساحة
FLOP reduction=1dweight×dactivation\text{FLOP reduction} = \frac{1}{d_{\text{weight}} \times d_{\text{activation}}}
AlexNet-6: 1 / (0.09 x 0.35), about 33x; LSTM gates produce no zeros so activation density is 100%AlexNet-6: 1 / (0.09 x 0.35)، أي نحو 33x؛ وبوابات LSTM لا تنتج أصفارًا لذلك كثافة التنشيطات 100%

The cross-platform chart mixes 22, 28 and 45 nm, a projected 256-PE bar and a bandwidth estimate for DaDianNao: read it as decades, not ratios. EIE at 0.59 W gives 138,927 frames per joule against 9,263 for DaDianNao at 15.97 W.

الرسم المقارن بين المنصات يخلط بين 22 و28 و45 nm، وعمودًا متوقعًا لـ256 PE، وتقديرًا لعرض النطاق لـDaDianNao: اقرأه كمراتب عشرية لا كنسب دقيقة. يعطي EIE عند 0.59 W عدد 138,927 إطارًا لكل جول مقابل 9,263 لـDaDianNao عند 15.97 W.

VerdictالحكمPointالنقطةEvidence or successorالدليل أو الخلف
Held upصمدSpecial-purpose hardware pays off earlyالعتاد المخصص يؤتي ثماره مبكرًاSparse stays cost-effective to 50% density on EIE; software only below 1%الـsparse يبقى مجديًا من حيث التكلفة حتى كثافة 50% على EIE؛ أما بالبرمجيات وحدها فتحت 1% فقط
Held upصمدBoth sparsities, cycles and energyنوعا الـsparsity معًا، في الدورات وفي الطاقةNVDLA, Samsung NPU, Ambarella CV22NVDLA، وSamsung NPU، وAmbarella CV22
Held upصمدW4A16GPTQ, AWQ, llama.cpp, MLC LLM for batch-1 LLM decodingGPTQ وAWQ وllama.cpp وMLC LLM لفك ترميز LLM بدفعة 1
Did notلم يصمدIrregular sparsity on vector processorsالـsparsity غير المنتظمة على معالجات المتجهات2:4 Sparse Tensor Cores, ESE load-balance-aware pruning2:4 Sparse Tensor Cores، وESE مع حذف يراعي توازن الحمل (load-balance-aware pruning)
Did notلم يصمد50% index overhead around one MACزيادة فهارس بنسبة 50% حول MAC واحدةCoarse-grained block sparsityالـblock sparsity خشنة الحبيبات
Did notلم يصمدFC layers only, batch 1طبقات FC فقط، بدفعة 1SCNN, Cambricon-X, Eyeriss v2 for sparse convolutionSCNN وCambricon-X وEyeriss v2 للالتفاف المتناثر
Did notلم يصمدEverything in SRAMكل شيء في SRAM10 to 100 billion parameter LLMs do not fitنماذج LLM بحجم 10 إلى 100 مليار معامل لا تتسع
The 2023 retrospectiveمراجعة عام 2023

M:N sparsity on tensor coresالـM:N sparsity على tensor cores

Fine-grained in what it removes, structured in how many: exactly two of every four consecutive weights along a row. Part 10: M:N sparsity

دقيقة الحبيبات في ما تحذفه، ومنتظمة في عدد ما تحذفه: وزنان بالضبط من كل أربعة أوزان متتالية على طول الصف. Part 10: M:N sparsity

sparsity=1−ab,2:4  ⇒  50%\text{sparsity} = 1 - \frac{a}{b}, \qquad 2{:}4 \;\Rightarrow\; 50\%
a:b pattern, a survivors per block of bنمط a:b، يبقى a عنصرًا في كل كتلة من b
bits2:4=R⋅C2⋅b+R⋅C2⋅2,bitsdense=R⋅C⋅b\text{bits}_{2:4} = R \cdot \tfrac{C}{2} \cdot b + R \cdot \tfrac{C}{2} \cdot 2, \qquad \text{bits}_{\text{dense}} = R \cdot C \cdot b
Values plus 2-bit indices; the saving is below 50 percent because of the metadataالقيم مع فهارس من 2 بت؛ والتوفير أقل من 50 بالمئة بسبب البيانات الوصفية (metadata)

One group of four, and A100 peaksمجموعة واحدة من أربعة، وقمم A100

FP16 denseFP16 كثيف
4 x 16 = 64 bits
FP16 compressedFP16 مضغوط
2 x 16 + 2 x 2 = 36 bits, about 44% saved2 x 16 + 2 x 2 = 36 bits، أي توفير نحو 44%
INT8 denseINT8 كثيف
4 x 8 = 32 bits
INT8 compressedINT8 مضغوط
2 x 8 + 2 x 2 = 20 bits, about 38% saved2 x 8 + 2 x 2 = 20 bits، أي توفير نحو 38%
A100 peak TOPSقمة TOPS في A100
FP16 312 dense, 624 sparse; INT8 624 dense, 1248 sparseFP16: 312 كثيف و624 متناثر؛ INT8: 624 كثيف و1248 متناثر
CaseالحالةDenseكثيفValuesالقيمMetadataالبيانات الوصفية (Metadata)TotalالإجماليSavingالتوفير
FP16, 1024 x 102416,777,216 (2 MiB)8,388,608 (1 MiB)1,048,576 (128 KiB)9,437,184 (1.125 MiB)43.75%
INT8, 4096 x 4096134,217,728 (16 MiB)67,108,864 (8 MiB)16,777,216 (2 MiB)83,886,080 (10 MiB)37.5%
Whole-matrix storage in bitsتخزين المصفوفة كاملة بالبتات
  1. Train the model dense, exactly as usual.درّب النموذج كثيفًا، تمامًا كالمعتاد.
  2. Prune to 2:4 by magnitude: zero the two smallest of every four along each row.احذف إلى نمط 2:4 بالمقدار: صفّر أصغر وزنين من كل أربعة على طول كل صف.
  3. Retrain with the same optimizer, schedule and epochs, zeros held fixed. No hyper-parameter search.أعد التدريب بنفس الـoptimizer والجدول الزمني وعدد الـepochs، مع تثبيت الأصفار. دون أي بحث عن hyper-parameters.
GEMM-KGEMM-KSpeedupالتسريع
1280about 1.2xنحو 1.2x
3840about 1.7xنحو 1.7x
12800about 1.9xنحو 1.9x
20480about 1.95xنحو 1.95x
INT8 sparse versus dense GEMM speedup on A100, M = N = 10240تسريع GEMM المتناثر مقابل الكثيف بدقة INT8 على A100، M = N = 10240

Speedup grows with K because only the math halves; small GEMMs are memory and overhead bound (low arithmetic intensity). Amdahl with GEMMs at 70% of time: 1.8x on GEMMs gives about 1.45x end to end, 1.2x gives 1.13x. Accuracy: ResNet-50 76.1 dense, 76.2 sparse FP16 and INT8, within run-to-run noise on twenty CNNs. MobileNet v2 drops from 71.55 to 69.56 under the plain recipe and recovers to 71.56 with channel permutation.

يزداد التسريع مع K لأن الحساب وحده هو ما ينتصف، أما عمليات GEMM الصغيرة فمقيدة بالذاكرة والتكلفة الثابتة (شدة حسابية (arithmetic intensity) منخفضة). وفق قانون Amdahl حين تشغل GEMMs نسبة 70% من الوقت: 1.8x على GEMMs تعطي نحو 1.45x من البداية إلى النهاية، و1.2x تعطي 1.13x. الدقة: ResNet-50 تبلغ 76.1 كثيفة و76.2 متناثرة في FP16 وINT8، ضمن ضوضاء التشغيل على عشرين شبكة CNN. أما MobileNet v2 فتنخفض من 71.55 إلى 69.56 بالوصفة البسيطة، وتتعافى إلى 71.56 مع channel permutation.

AspectالجانبEIE (2016)EIE (2016)2:4 tensor core (2020)2:4 tensor core (2020)
Sparsity exploitedالـsparsity المستغلةWeights about 90% plus activations about 70%الأوزان بنحو 90% مع الـactivations بنحو 70%Weights only, exactly 50%الأوزان فقط، 50% بالضبط
Weight formatصيغة الأوزانCSC, 4-bit index plus 4-bit code, pointers, paddingCSC، فهرس 4-bit مع رمز 4-bit، ومؤشرات، وحشوContiguous values plus one 2-bit index eachقيم متجاورة مع فهرس واحد بطول 2-bit لكل منها
Finding workإيجاد العملLeading nonzero detection, FIFO for load balanceleading nonzero detection، وFIFO لموازنة الحملMultiplexer driven by 2-bit indicesمُختار (multiplexer) تقوده فهارس 2-bit
HardwareالعتادCustom 45 nm ASICASIC مخصصة بتقنية 45 nmEvery Ampere or later GPUكل GPU من جيل Ampere أو أحدث
Ceiling on mathسقف الحسابProportional to combined sparsityمتناسب مع الـsparsity المجتمعة2x, fixed by the pattern2x، يحدده النمط
EIE versus 2:4EIE مقابل 2:4

Sparse convolutionالالتفاف المتناثر (sparse convolution)

Outdoor LiDAR grids are below 0.01% dense. A dense 3 x 3 convolution dilates one active site to 3^d, then 5^d. Submanifold sparse convolution computes an output only where an input exists, so P_out = P_in. Part 11: Sparse convolution

شبكات LiDAR الخارجية كثافتها أقل من 0.01%. الالتفاف الكثيف 3 x 3 يوسّع موقعًا نشطًا واحدًا إلى 3^d ثم 5^d. أما submanifold sparse convolution فيحسب الخرج فقط حيث يوجد مدخل، لذلك P_out = P_in. Part 11: Sparse convolution

∣PL∣=(2L+1)d\lvert \mathcal{P}_L \rvert = (2L + 1)^d
Active sites from one point after L dense 3^d layersالمواقع النشطة الناتجة من نقطة واحدة بعد L طبقة كثيفة 3^d
StageالمرحلةActive cellsالخلايا النشطةDensityالكثافة
Inputالمدخل4 of 204 من 2020%
After one dense 3 x 3 layerبعد طبقة كثيفة واحدة 3 x 317 of 2017 من 2085%
After one submanifold layerبعد طبقة submanifold واحدة4 of 204 من 2020%
After a second dense layerبعد طبقة كثيفة ثانية20 of 2020 من 20100%
Slide grid, 4 x 5 with four active cellsشبكة الشريحة، 4 x 5 مع أربع خلايا نشطة
fout(Q)←fout(Q)+fin(P) W(dx,dy)for every (P,Q,W(dx,dy)),  P=Q+(dx,dy)f_{\text{out}}(Q) \leftarrow f_{\text{out}}(Q) + f_{\text{in}}(P)\, W_{(dx,dy)} \quad \text{for every } (P, Q, W_{(dx,dy)}),\; P = Q + (dx, dy)
The update rule; the map of (In, Out, Wgt) tuples is the whole computationقاعدة التحديث؛ وخريطة الثلاثيات (In, Out, Wgt) هي الحوسبة كلها

For P0 on slide 95: nine conventional entries, two sparse entries (W(0,0) to itself and W(-1,-1) to the point at (2, 2)). State the sign convention before computing anything: TorchSparse writes the opposite sign.

بالنسبة لـP0 في الشريحة 95: تسعة مدخلات في الطريقة التقليدية، ومدخلان في الطريقة المتناثرة (W(0,0) إلى نفسها، وW(-1,-1) إلى النقطة عند (2, 2)). حدد اصطلاح الإشارة قبل أن تحسب أي شيء: TorchSparse يكتب الإشارة المعاكسة.

MethodالطريقةEntriesالمدخلاتMACsMACs
Fully dense 3 x 3 over 20 outputsكثيف تمامًا 3 x 3 على 20 مخرجًا180737,280
Conventional, skipping zero inputsتقليدي، مع تخطي المدخلات الصفرية30122,880
Submanifold sparseSubmanifold متناثر1040,960
One 3 x 3 layer on the slide grid, C_in = C_out = 64 (4,096 MACs per entry)طبقة 3 x 3 واحدة على شبكة الشريحة، C_in = C_out = 64 (4,096 MACs لكل مدخل)
WeightالوزنEntries (In, Out)المدخلات (In, Out)Rowsالصفوف
W(-1,-1)(P0, Q1), (P3, Q4)2
W(-1,0)(P1, Q3)1
W(0,0)(Pi, Qi) for all five points(Pi, Qi) لكل النقاط الخمس5
W(1,0)(P3, Q1)1
W(1,1)(P1, Q0), (P4, Q3)2
Other four offsetsالإزاحات الأربع الأخرىnoneلا شيء0
Slide 96: eleven entries grouped by weight offset, five points on a 5 x 5 gridالشريحة 96: إحدى عشرة مدخلة مجمّعة حسب إزاحة الوزن، خمس نقاط على شبكة 5 x 5

TorchSparse: regularity from irregularityTorchSparse: انتظام من قلب عدم الانتظام

A 3 x 3 x 3 kernel launches 27 (or 26 plus a separate centre) small uneven matmuls per layer. Part 12: TorchSparse

kernel بحجم 3 x 3 x 3 يطلق 27 (أو 26 مع مركز منفصل) عملية matmul صغيرة غير متساوية في كل طبقة. Part 12: TorchSparse

r=1−∑δ∈G∣Mδ∣∣G∣⋅max⁡δ∈G∣Mδ∣r = 1 - \frac{\sum_{\delta \in G} |M_\delta|}{|G| \cdot \max_{\delta \in G} |M_\delta|}
Redundant computation ratio of a group; adaptive grouping keeps r at or below epsilon, and a group runs as bmm only if its largest map is below Sنسبة الحوسبة الزائدة لمجموعة؛ والتجميع التكيفي يبقي r عند epsilon أو دونها، ولا تُنفذ المجموعة بوصفها bmm إلا إذا كانت أكبر خريطة فيها أقل من S
StrategyالاستراتيجيةLaunchesمرات الإطلاقRows computedالصفوف المحسوبةPad rowsصفوف الحشوOverheadالزيادة (Overhead)
Separate (one mm per offset)منفصل (mm واحدة لكل إزاحة)930200%
Dense (one bmm, batch 9, padded to 100)كثيف (bmm واحدة، دفعة 9، محشوة إلى 100)190059866.4%
Adaptive (epsilon 0.05, S = 50)تكيفي (epsilon 0.05, S = 50)330861.9%
Nine offsets on a 100-point cloud (map sizes 100, 40, 40, 38, 38, 12, 12, 11, 11)تسع إزاحات على سحابة من 100 نقطة (أحجام الخرائط 100، 40، 40، 38، 38، 12، 12، 11، 11)
Datasetمجموعة البياناتStrategyالاستراتيجيةTFLOP/sTFLOP/sSpeedupالتسريع
SemanticKITTISeparateمنفصل8.11.00x
SemanticKITTIFixed groupingتجميع ثابت8.70.87x
SemanticKITTIAdaptive groupingتجميع تكيفي11.91.39x
nuScenesSeparateمنفصل10.41.00x
nuScenesFixed groupingتجميع ثابت21.11.50x
nuScenesAdaptive groupingتجميع تكيفي16.91.54x
Matmul-phase ablation, RTX 2080 Ti, FP16 (Table 2)دراسة إزالة (ablation) لمرحلة الـ matmul، RTX 2080 Ti، FP16 (الجدول 2)

Numbers to keepأرقام يجب حفظها

Baseline bottlenecksاختناقات خط الأساس
Gather and scatter 40 to 50% of runtime; matmul about 30% utilization (8.1 TFLOP/s on an RTX 2080 Ti)الـgather والـscatter يأخذان من 40 إلى 50% من زمن التشغيل؛ والـmatmul باستغلال نحو 30% (8.1 TFLOP/s على RTX 2080 Ti)
Groups sweep (slide 105)مسح عدد المجموعات (الشريحة 105)
26 groups 1.0x, 13 about 1.2x, 6 about 1.5x, 3 below 1.0x, 1 about 0.35x26 مجموعة: 1.0x، و13: نحو 1.2x، و6: نحو 1.5x، و3: أقل من 1.0x، و1: نحو 0.35x
End to endمن البداية إلى النهاية
1.6x over MinkowskiEngine, 1.5x over SpConv, memory movement cost 2.7x lower1.6x مقارنة بـMinkowskiEngine، و1.5x مقارنة بـSpConv، وتكلفة نقل الذاكرة أقل بـ2.7x
TorchSparse++ on A100TorchSparse++ على A100
2.9x, 3.3x, 2.2x, 1.7x over MinkowskiEngine, SpConv 1.2.1, TorchSparse, SpConv 2.3.52.9x و3.3x و2.2x و1.7x مقارنة بـMinkowskiEngine وSpConv 1.2.1 وTorchSparse وSpConv 2.3.5 على الترتيب
TorchSparse++ on Jetson OrinTorchSparse++ على Jetson Orin
1.25x over SpConv 2.3.5 on average1.25x مقارنة بـSpConv 2.3.5 في المتوسط
Implicit GEMM redundancyالتكرار في Implicit GEMM
Slide 109: 12 to 10 (row reordering) to 8 (column splitting)الشريحة 109: من 12 إلى 10 (إعادة ترتيب الصفوف) ثم إلى 8 (تقسيم الأعمدة)
Dataflowتدفق البياناتStationaryالثابت (Stationary)Kernelsالنوى (Kernels)Memory and computeالذاكرة والحسابRedundancyالتكرار (Redundancy)
Gather-GEMM-scatterWeightالأوزانThree kernels per offsetثلاث نوى لكل إزاحةNo overlapدون تداخلZero (plus padding if grouped)صفر (مع حشو إذا جُمّعت)
Fetch-on-demandWeight, fusedالأوزان، مدمجةOne fused kernelنواة مدمجة واحدةLoads overlap on-chip multiplyالتحميل يتداخل مع الضرب داخل الشريحةZero, but 4x to 10x more output writesصفر، لكن عمليات كتابة الخرج أكثر بـ4x إلى 10x
Implicit GEMMOutputالخرجOne fused kernel, pipelined tilesنواة مدمجة واحدة، مع بلاطات متداخلة المراحل (pipelined)Next tile loads overlap the current oneتحميل البلاطة التالية يتداخل مع الحاليةLockstep redundancy inside each warpتكرار متزامن (lockstep) داخل كل warp
Three GPU dataflows (TorchSparse++)ثلاثة أنماط لتدفق البيانات على GPU (TorchSparse++)

TorchSparse++ fuses the phases so loads for the next tile overlap the current multiply, and contributes the Sparse Kernel Generator (fused, pipelined kernels at under a tenth of SpConv v2's 40,000 lines) and the Sparse Autotuner (dataflow and tile parameters per layer group). Adaptive grouping stays in its design space.

يدمج TorchSparse++ المراحل بحيث يتداخل تحميل البلاطة التالية مع ضرب البلاطة الحالية، ويضيف Sparse Kernel Generator (نوى مدمجة ومتداخلة المراحل بأقل من عُشر أسطر SpConv v2 البالغة 40,000) وSparse Autotuner (يختار الـdataflow ومعاملات البلاطة لكل مجموعة طبقات). ويبقى التجميع التكيفي (adaptive grouping) ضمن فضاء تصميمه.

PointAcc: mapping in hardwarePointAcc: بناء الخرائط في العتاد

On point clouds more than half of runtime on general-purpose hardware is map construction, and a TPU must ship coordinates back to its host (60 to 90% of runtime in data movement). Part 13: PointAcc and summary

في السحب النقطية، أكثر من نصف زمن التشغيل على العتاد العام يذهب إلى بناء الخرائط، وTPU مضطر إلى إرسال الإحداثيات إلى المضيف (من 60% إلى 90% من الزمن في نقل البيانات). Part 13: PointAcc and summary

p=q+δ  ⟺  p−δ=q,comparisons per offset=∣I∣+∣O∣−1p = q + \delta \iff p - \delta = q, \qquad \text{comparisons per offset} = |I| + |O| - 1
Shift every input by minus delta, merge-sort with the outputs, read equal adjacent pairs as map entriesأزح كل مدخل بمقدار سالب delta، ثم ادمجه بالترتيب مع المخرجات، واقرأ الأزواج المتجاورة المتساوية على أنها مدخلات في الخريطة
W1,1 (slide 112)W1,1 (الشريحة 112)W-1,-1 (slide 111)W-1,-1 (الشريحة 111)
Offset deltaفرق الإزاحة(1, 1)(-1, -1)
Shift applied to inputsالإزاحة المطبقة على المدخلات+ (-1, -1)+ (1, 1)
Shifted inputs P0 to P4المدخلات المزاحة من P0 إلى P4(0,0) (1,1) (1,3) (2,1) (3,2)(2,2) (3,3) (3,5) (4,3) (5,4)
Equal neighbors after the mergeالجيران المتساوون بعد الدمجQ0 = P1, Q3 = P4Q1 = P0, Q4 = P3
Tuples emittedالثلاثيات الناتجة(P1, Q0, W1,1), (P4, Q3, W1,1)(P0, Q1, W-1,-1), (P3, Q4, W-1,-1)
Slides 112 and 111, five points P0 (1,1), P1 (2,2), P2 (2,4), P3 (3,2), P4 (4,3), stride 1الشريحتان 112 و111، خمس نقاط P0 (1,1)، P1 (2,2)، P2 (2,4)، P3 (3,2)، P4 (4,3)، بخطوة 1
Hash tableجدول التجزئة (Hash table)Merge sortالترتيب بالدمج (Merge sort)
Memory accessالوصول إلى الذاكرةRandom probes, one per output per offsetاستعلامات عشوائية، واحد لكل خرج ولكل إزاحةTwo sequential streams, read onceتدفقان متتاليان، يُقرأ كل منهما مرة واحدة
Parallel hardwareالعتاد المتوازيN x N crossbar, O(N^2) areaشبكة تبديل (crossbar) بحجم N x N، بمساحة O(N^2)One comparator per merge stepمقارن واحد لكل خطوة دمج
StorageالتخزينTable up to 160 MBجدول يصل إلى 160 MBSorted coordinate lists, no tableقوائم إحداثيات مرتبة، دون جدول
At equal parallelismعند التوازي نفسهBaselineخط الأساس1.4x faster, up to 14x less areaأسرع 1.4x، ومساحة أقل حتى 14x
Hash table versus merge sort as the mapping engineجدول التجزئة مقابل الترتيب بالدمج كمحرك لبناء الخرائط

One ranking unit also serves stride downsampling (quantize then deduplicate), farthest point sampling (top-1), kNN (top-k) and ball query (threshold). The mapping unit emits indices only; the systolic matrix unit does the multiplies.

وحدة الترتيب نفسها تخدم أيضًا stride downsampling (تكميم ثم إزالة التكرار)، وfarthest point sampling (top-1)، وkNN (top-k)، وball query (عتبة). وحدة بناء الخرائط تُخرج الفهارس فقط، ووحدة المصفوفات الانقباضية (systolic) تنفذ عمليات الضرب.

Metricالمقياسvs RTX 2080Tiمقابل RTX 2080Tivs Xeon Skylake + TPU V3مقابل Xeon Skylake + TPU V3vs Xeon Gold 6130مقابل Xeon Gold 6130
Speedupالتسريع3.7x53x90x
Energy savingتوفير الطاقة22x210x176x (slide prints 193x)176x (الشريحة تطبع 193x)
Geometric means over eight networks (slide 113)المتوسطات الهندسية على ثماني شبكات (الشريحة 113)

The TPU column swings from 3.4x (DGCNN, feature-space neighbour search is already dense matmul) to 269x (F-PointNet++, dominated by sampling and neighbour search the TPU sends back to the host). The energy number is the embedded number.

يتأرجح عمود TPU بين 3.4x (DGCNN، حيث البحث عن الجيران في فضاء الخصائص هو أصلًا matmul كثيف) و269x (F-PointNet++، الذي يهيمن عليه أخذ العينات والبحث عن الجيران اللذان يرسلهما TPU إلى المضيف). ورقم الطاقة هو رقم النسخة المدمجة (embedded).

Sparsity types and the systems that exploit themأنواع الـsparsity والأنظمة التي تستغلها

Sparsityالـ SparsityOriginالمنشأSystemالنظامMechanismالآلية
Fine-grained weightأوزان دقيقة الحبيباتPruning, staticالحذف، ثابتةEIECSC storage, PE array, weight sharing, skip zero weightsتخزين CSC، ومصفوفة PE، ومشاركة الأوزان، وتخطي الأوزان الصفرية
M:N weight (2:4)أوزان M:N (2:4)Patterned pruning, staticحذف بنمط محدد، ثابتةNVIDIA Ampere sparse tensor coressparse tensor cores في NVIDIA Ampere2-bit metadata selects activations, 2x mathبيانات وصفية بطول 2-bit تختار الـactivations، وحساب أسرع 2x
Activation (ReLU zeros)الـactivations (أصفار ReLU)ReLU at run time, dynamicReLU وقت التشغيل، ديناميكيةEIELeading nonzero detection, never broadcast a zeroleading nonzero detection، ولا يُبث الصفر أبدًا
Activation (point clouds)الـactivations (السحب النقطية)Data occupancy, dynamicإشغال البيانات، ديناميكيةTorchSparse, PointAccTorchSparse وPointAccMaps plus gather, matmul, scatter; merge-sort mapping unitخرائط مع gather وmatmul وscatter؛ ووحدة بناء خرائط تعتمد الترتيب بالدمج
The lecture in one tableالمحاضرة في جدول واحد

Slide errataأخطاء الشرائح

Answer with the corrected fact, and name the slide if a question depends on it.

أجب بالمعلومة المصححة، واذكر رقم الشريحة إذا كان السؤال يعتمد عليها.

What the slides get wrongما تخطئ فيه الشرائح

Slide 3الشريحة 3
Text writes ||W_p||_0 < N, figure writes ||W_P||_0 <= N. Read <= N and one matrix.النص يكتب ||W_p||_0 < N، والشكل يكتب ||W_P||_0 <= N. اقرأها <= N ومصفوفة واحدة.
Slide 29الشريحة 29
"constrains" means constraints. Action range is (0, 1] in the paper, not [0, 1).كلمة "constrains" المقصود بها constraints (القيود). ومجال الفعل في الورقة هو (0, 1] وليس [0, 1).
Slide 40الشريحة 40
"a serial of models" means a series of models.عبارة "a serial of models" المقصود بها a series of models (سلسلة من النماذج).
Slide 43الشريحة 43
"the model may decrease" means the model accuracy may decrease. "Finetuing" means Finetuning.عبارة "the model may decrease" المقصود بها أن دقة النموذج قد تنخفض. و"Finetuing" المقصود بها Finetuning.
Slide 51الشريحة 51
"Finetuing" again. 5X to 9X are compression ratios 5x and 9x."Finetuing" مرة أخرى. و5X to 9X هما نسبتا الضغط 5x و9x.
Slide 52الشريحة 52
"fine-tuning quantized networks" means pruned networks here. Network Slimming uses plain L1, not smooth-L1.عبارة "fine-tuning quantized networks" المقصود بها هنا الشبكات المحذوفة (pruned). وNetwork Slimming يستخدم L1 العادي، وليس smooth-L1.
Slide 56الشريحة 56
"Han et al (MIT)": all five papers list Stanford and NVIDIA; Han joined MIT afterwards.عبارة "Han et al (MIT)": الأوراق الخمس كلها تذكر Stanford وNVIDIA؛ وقد انضم Han إلى MIT لاحقًا.
Slides 61 to 64الشرائح من 61 إلى 64
With a = (0, a1, 0, a3), outputs b1, b3, b5 must be zero; the figure draws them nonzero.مع a = (0, a1, 0, a3) يجب أن تكون المخرجات b1 وb3 وb5 صفرًا؛ لكن الشكل يرسمها غير صفرية.
Slide 74الشريحة 74
Axes say Layers/s and Layers/J; the paper says frames. Same quantity for one FC layer.المحاور تقول Layers/s وLayers/J، والورقة تقول إطارات (frames). وهي الكمية نفسها لطبقة FC واحدة.
Slide 77الشريحة 77
PointAcc is MICRO 2021, not Micro'22.PointAcc منشورة في MICRO 2021، وليس Micro'22.
Slide 86الشريحة 86
Credit says Graham, BMVC 2015; submanifold sparse convolution is Graham and van der Maaten 2017 and CVPR 2018.الإسناد يقول Graham, BMVC 2015؛ أما submanifold sparse convolution فهو لـGraham وvan der Maaten عام 2017 وفي CVPR 2018.
Slide 101الشريحة 101
"TorshSparse" means TorchSparse."TorshSparse" المقصود بها TorchSparse.
Slide 113الشريحة 113
CPU energy GeoMean printed as 193; the paper and the eight bars give 176x.المتوسط الهندسي لطاقة CPU مطبوع 193؛ والورقة والأعمدة الثمانية تعطي 176x.
Slide 115الشريحة 115
Missing NetAdapt, EIE, Mishra et al. 2021, TorchSparse, TorchSparse++, PointAcc. Hu et al. is 2016 (arXiv 1607.03250), not 2017.تنقصها NetAdapt وEIE وMishra et al. 2021 وTorchSparse وTorchSparse++ وPointAcc. وHu et al. عام 2016 (arXiv 1607.03250)، وليس 2017.