الدرس 11: Precision — FP32 → FP16/BF16 و Tensor Cores
يُخزَّن نموذجك بصيغة FP32 — 4 بايت لكل رقم. لكن الاستدلال عادةً لا يحتاج إلى كل تلك الدقة. الانتقال إلى FP16 أو BF16 يخفض الذاكرة إلى النصف ويُشغّل Tensor Cores — وحدات عتاد مخصّصة تضرب المصفوفات بدقة منخفضة وبسرعة أكبر بكثير. في هذا الدرس نرى كيف نحصل على هذا التسريع بلا تكلفة تقريبًا، ومتى يتفوّق
FP32 يعني كتابة كل رقم بعدد هائل من الأرقام بعد الفاصلة العشرية. الاستدلال عادةً يحتاج إلى أرقام أقل (FP16) — نصف المساحة، وتضربها الـ GPU بسرعة أكبر بكثير باستخدام عتاد مخصّص.
- FP16 / BF16
- صيغتان بطول 16 بت (2 بايت) بدلًا من FP32 (4 بايت). تخفضان الذاكرة إلى النصف وتُسرّعان الأداء. يحافظ BF16 على مدى الـ exponent الخاص بـ FP32.
- Tensor Cores
- وحدات عتاد في بطاقات GPU من NVIDIA لضرب-وتجميع المصفوفات بدقة منخفضة (FP16/BF16/INT8) — أسرع بكثير من FP32.
- autocast (mixed precision)
- يشغّل العمليات الثقيلة بصيغة FP16 ويُبقي العمليات الحساسة بصيغة FP32 — سرعة مع استقرار.