שיעור 11: Precision — FP32 → FP16/BF16 ו-Tensor Cores
המודל שלך מאוחסן ב-FP32 — 4 בייטים לכל מספר. אבל ל-inference לרוב לא צריך את כל הדיוק הזה. מעבר ל-FP16 או BF16 חוצה את הזיכרון ומפעיל את ה-Tensor Cores — יחידות חומרה ייעודיות שמכפילות מטריצות בדיוק נמוך הרבה יותר מהר. בשיעור הזה נבין איך מקבלים את ההאצה הזו כמעט בחינם, ומתי BF16 עדיף על FP16.
FP32 זה לכתוב כל מספר עם המון ספרות אחרי הנקודה. ל-inference לרוב מספיקות פחות ספרות (FP16) — חצי מהמקום, וה-GPU יודע להכפיל אותן הרבה יותר מהר עם חומרה ייעודית.
- FP16 / BF16
- פורמטים של 16 ביט (2 בייט) במקום FP32 (4 בייט). חוצים זיכרון ומאיצים. ל-BF16 טווח מעריך כמו FP32.
- Tensor Cores
- יחידות חומרה ב-GPU של NVIDIA לכפל-וצבירה של מטריצות בדיוק נמוך (FP16/BF16/INT8) — מהיר בהרבה מ-FP32.
- autocast (mixed precision)
- מריץ פעולות כבדות ב-FP16 ושומר פעולות רגישות ב-FP32 — מהירות עם יציבות.