סוגי מאיצים לבינה מלאכותית- AI Accelerators

היתרונות של FPGA על CPU בבינה מלאכותית ואיך זה משפיע על TOPS

כאשר מריצים מודל Artificial Intelligence (AI), אפשר להריץ אותו על כמה סוגי חומרה:

במאמר הזה נתמקד בעיקר בהבדל בין:

ונראה איך FPGA משנה את חישוב ה-TOPS.


מה זה CPU?

CPU הוא מעבד כללי.

הוא מתאים להרבה סוגי תוכנות:

היתרון הגדול של CPU הוא גמישות.

קל לתכנת אותו, קל להריץ עליו קוד, והוא מתאים להרבה משימות שונות.

אבל החיסרון שלו הוא שבחישובי בינה מלאכותית הוא לא תמיד יעיל, כי רשת נוירונים דורשת הרבה פעולות שחוזרות על עצמן:


מה זה FPGA?

FPGA הוא קיצור של:

כלומר רכיב לוגי שניתן לתכנות כחומרה.

ב-CPU כותבים תוכנה.

ב-FPGA בונים חומרה.

אפשר לבנות בתוך FPGA:

לכן FPGA מתאים מאוד למשימות שבהן החישוב קבוע וחוזר על עצמו.


ההבדל המרכזי: CPU מריץ פקודות, FPGA בונה חומרה

ב-CPU החישוב מתבצע על ידי רצף פקודות.

לדוגמה:

ב-FPGA אפשר לבנות מעגל שמבצע את כל זה במקביל.

לדוגמה:

לכן FPGA יכול להיות מהיר מאוד גם אם התדר שלו נמוך יותר מ-CPU.


למה FPGA יכול לנצח CPU למרות שהתדר נמוך יותר?

CPU יכול לעבוד בתדר גבוה:

FPGA בדרך כלל עובד בתדר נמוך יותר:

אבל FPGA יכול לבצע הרבה פעולות במקביל.

כלומר:

זו נקודה חשובה מאוד.

בבינה מלאכותית, הרבה מהחישוב הוא חישוב מקבילי:

ולכן FPGA יכול להתאים מאוד לחלק ממודלי AI.


מה זה TOPS?

TOPS הוא קיצור של:

כלומר:

במספרים:

אם שבב מבצע 1 TOPS, הוא מבצע בערך טריליון פעולות בשנייה.


מה זה MAC?

בבינה מלאכותית משתמשים הרבה בפעולת:

כלומר:

הפעולה כוללת:

לכן יש שתי שיטות ספירה:

או:

במאמר הזה נחשב לפי:


איך מחשבים TOPS ב-FPGA?

ב-FPGA ה-TOPS לא קבוע מראש כמו במעבד רגיל.

הוא תלוי במה שבנינו בתוך ה-FPGA:

הנוסחה:

אם יש לנו MAC units:

ולכן:


דוגמה 1: FPGA עם 64 יחידות MAC

נניח שבנינו בתוך FPGA:

התדר:

כל MAC עושה:

לכן בכל clock:

עכשיו נכפיל בתדר:

כלומר:

המרה ל-TOPS:

כלומר:

זה נשמע קטן, אבל למודלי ANN קטנים זה הרבה מאוד.


דוגמה 2: FPGA עם 512 יחידות MAC

נניח FPGA חזק יותר עם:

התדר:

כל MAC:

חישוב פעולות בכל clock:

חישוב פעולות בשנייה:

המרה ל-TOPS:

כלומר:


דוגמה 3: חישוב ANN קטן על FPGA

נניח רשת ANN פשוטה:

כלומר:

זו רשת Fully Connected.


חישוב MAC לרשת

שכבה ראשונה:

שכבה שנייה:

שכבה שלישית:

שכבת פלט:

סה"כ:

אם סופרים כל MAC כשתי פעולות:

בקירוב:


כמה זמן FPGA צריך כדי להריץ את הרשת?

נניח FPGA עם:

הרשת דורשת:

בכל clock אפשר לבצע:

מספר clocks:

מעגלים למעלה:

אם התדר הוא:

זמן clock אחד:

לכן זמן חישוב אידיאלי:

כלומר:


כמה inference בשנייה?

כלומר בתיאוריה:

בפועל יהיה פחות בגלל:

אבל עדיין מדובר בביצועים גבוהים מאוד לרשת קטנה.


למה CPU פחות יעיל כאן?

CPU יכול להיות חזק מאוד, אבל הוא כללי.

הוא צריך להריץ:

בנוסף, CPU לא תמיד מבצע 64 או 512 MAC אמיתיים בכל clock עבור המודל שלך.

FPGA לעומת זאת יכול להיבנות בדיוק למודל:

לכן FPGA חזק במיוחד כאשר צריך:


יתרונות FPGA על CPU בבינה מלאכותית

1. מקביליות אמיתית

FPGA יכול לבצע הרבה פעולות באותו clock.

לדוגמה:

ב-CPU זה קשה יותר, כי המעבד בנוי להרבה משימות כלליות.


2. Latency נמוך

ב-FPGA אפשר לקבל זמן תגובה קצר מאוד.

לדוגמה:

בלי לעבור דרך הרבה שכבות תוכנה.


3. זמן תגובה קבוע

במערכת real-time חשוב שהתגובה תהיה קבועה.

ב-CPU לפעמים מערכת ההפעלה או interrupt יכולים לגרום לעיכובים.

ב-FPGA אפשר לבנות מערכת דטרמיניסטית:


4. צריכת חשמל טובה

למשימות מסוימות FPGA יכול לבצע חישוב AI בצריכת חשמל נמוכה יותר מ-CPU חזק.

זה חשוב במיוחד במערכות:


5. חיבור ישיר לחיישנים

FPGA יכול להתחבר ישירות ל:

זה יתרון גדול במערכות זמן אמת.


6. התאמה אישית למודל

ב-CPU אתה מתאים את המודל למעבד.

ב-FPGA אתה יכול להתאים את החומרה למודל.

זו נקודה חזקה מאוד.


חסרונות FPGA לעומת CPU

FPGA לא תמיד עדיף.

החסרונות:

CPU עדיף כאשר צריך:


חברות FPGA מרכזיות בעולם

יש כמה חברות FPGA חשובות בעולם.

חלקן מערביות, וחלקן סיניות.

חברות מערביות מוכרות:

חברות סיניות מוכרות:

בנוסף, יש חברות סיניות שאינן FPGA קלאסי, אבל חשובות בעולם מאיצי AI:


טבלת השוואה בין חברות FPGA ומאיצי AI

חברה מדינה סוג חומרה תחום חזק התאמה ל-AI הערה חשובה
AMD Xilinx ארה"ב FPGA / Adaptive SoC ביצועים גבוהים, תקשורת, תעשייה, ביטחון גבוהה מאוד משפחת Versal כוללת AI Engines לעיבוד DSP ו-AI
Altera / Intel FPGA ארה"ב FPGA / SoC FPGA דאטה סנטר, תעשייה, edge גבוהה FPGA AI Suite מאפשר לבנות מאיצי inference על FPGA
Lattice ארה"ב Low-power FPGA edge, מצלמות קטנות, צריכת חשמל נמוכה בינונית-גבוהה מתאים ל-AI קטן ו-TinyML קרוב לחיישן
Microchip / Microsemi ארה"ב FPGA / SoC FPGA אמינות, תעשייה, Aerospace, צריכת חשמל בינונית-גבוהה VectorBlox מיועד ל-AI/ML inference על PolarFire
Efinix ארה"ב FPGA embedded, edge, TinyML בינונית מציעה משפחות Trion, Topaz, Titanium
Gowin סין FPGA FPGA קטן/בינוני, dev boards, cost effective בינונית מציעה FPGA chips, design tools, IP cores ו-development kits
Anlogic סין FPGA / FPSoC FPGA סיני מקומי, תעשייה ותקשורת בינונית חברה סינית ל-FPGA, FPSoC, EDA ותוכנות פיתוח
Pango Micro סין FPGA / Programmable SoC FPGA סיני, SoC programmable platform בינונית מתמקדת בשבבי programmable system platform וכלי EDA
Huawei Ascend סין NPU / AI Accelerator אימון והרצת מודלי AI גדולים גבוהה מאוד לא FPGA, אלא מאיץ AI ייעודי
Cambricon סין AI Accelerator שבבי AI ושרתים גבוהה מאוד לא FPGA, אלא ASIC/NPU ל-AI
Rockchip סין SoC עם NPU מצלמות, edge AI, embedded Linux בינונית מתאים למוצרים כמו RK3588 עם NPU מובנה
Kendryte סין RISC-V AIoT chip TinyML, מצלמה קטנה, edge בינונית מתאים למערכות AI קטנות בצריכת חשמל נמוכה

מקורות כלליים לחברות ולכלים

AMD מציגה את AI Engine כמשאב חישובי ל-DSP ול-AI בתוך משפחת Versal adaptive SoC.
Altera מציגה FPGA AI Suite כפלטפורמה לבניית inference accelerators על FPGAs.
Lattice מציגה את sensAI כפתרון AI/ML ל-FPGA בצריכת חשמל נמוכה ולמכשירי edge.
Microchip מציגה את VectorBlox SDK כפתרון AI/ML inference עבור PolarFire FPGAs ו-SoCs.
Gowin מציגה פורטפוליו הכולל FPGA chips, design tools, IP cores ו-development kits.
Anlogic מציגה את עצמה כספקית FPGA סינית העוסקת ב-FPGA, FPSoC, EDA וכלי פיתוח.
Pango Micro מציגה עצמה כחברה סינית המתמחה ב-programmable system platform chips ובכלי EDA.


השוואה קצרה: CPU מול FPGA

נושא CPU FPGA
גמישות גבוהה מאוד בינונית
קלות פיתוח קלה קשה יותר
ביצוע מקבילי מוגבל יחסית חזק מאוד
latency משתנה נמוך וקבוע
צריכת חשמל בינונית-גבוהה יכולה להיות נמוכה מאוד
התאמה לחיישנים דרך דרייברים וממשקים ישירה מאוד
התאמה ל-AI קטן טובה מצוינת
התאמה ל-AI גדול מוגבלת תלוי FPGA וזיכרון
TOPS נקבע לפי המעבד נקבע לפי התכנון שלך
שימוש מומלץ תוכנה כללית real-time, חיישנים, pipeline, AI קבוע

השוואה קצרה: FPGA מול NPU

נושא FPGA NPU
גמישות חומרה גבוהה נמוכה יותר
קלות שימוש קשה יותר קלה יותר
ביצועים ב-AI נפוץ טובים טובים מאוד
תמיכה במודלים תלוי תכנון תלוי SDK
latency נמוך מאוד נמוך
צריכת חשמל טובה מאוד טובה מאוד
שינוי ארכיטקטורה אפשרי כמעט לא אפשרי
מתאים לחיישנים מיוחדים מאוד פחות
מתאים לייצור מוצר המוני כן, אבל פיתוח יקר כן

כאשר מריצים מודל Artificial Intelligence (AI), אפשר להריץ אותו על כמה סוגי חומרה:

במאמר הזה נתמקד בעיקר בהבדל בין:

ונראה איך FPGA משנה את חישוב ה-TOPS, ובנוסף נציג השוואה הנדסית מלאה בין כל סוגי החומרה.


טבלת השוואה בין סוגי חומרה להרצת AI

פרמטר CPU GPU FPGA NPU TPU ASIC AI Accelerator
סוג ארכיטקטורה General Purpose SIMD / Massive Parallel Reconfigurable Hardware Fixed AI Engine Tensor Optimized Fixed Hardware
גמישות גבוהה מאוד גבוהה בינונית-גבוהה נמוכה נמוכה נמוכה מאוד
קלות פיתוח קלה מאוד בינונית קשה קלה יחסית קלה (דרך framework) קשה מאוד
ביצוע מקבילי נמוך-בינוני גבוה מאוד גבוה מאוד (מותאם אישית) גבוה מאוד גבוה מאוד מקסימלי
latency גבוה יחסית בינוני נמוך מאוד נמוך נמוך נמוך מאוד
throughput נמוך גבוה מאוד תלוי תכנון גבוה מאוד גבוה מאוד מקסימלי
צריכת חשמל גבוהה גבוהה מאוד נמוכה-בינונית נמוכה בינונית נמוכה מאוד
התאמה ל-AI קטן טובה טובה מצוינת מצוינת פחות פחות
התאמה ל-AI גדול מוגבלת מצוינת תלוי משאבים מצוינת מצוינת מצוינת
זמן פיתוח קצר בינוני ארוך קצר קצר ארוך מאוד
התאמה ל-real-time בינונית טובה מצוינת מצוינת טובה מצוינת
TOPS קבוע לפי CPU גבוה מאוד תלוי תכנון גבוה מאוד גבוה מאוד מקסימלי

הסבר הנדסי: איך סוג החומרה משפיע על הרצת מודל

1. CPU – גמישות על חשבון ביצועים

CPU מריץ קוד סדרתי יחסית:

השפעה על מודל:

  • מתאים למודלים קטנים או ניסויים
  • latency גבוה יחסית
  • לא מנצל היטב מקביליות של רשתות נוירונים
  • bottleneck בזיכרון וב-cache

שימוש טיפוסי:


2. GPU – מקביליות רחבה

GPU בנוי להריץ אלפי threads במקביל:

השפעה על מודל:

  • מצוין ל-CNN, Transformer, LLM
  • throughput גבוה מאוד
  • latency בינוני (kernel launch overhead)
  • דורש memory bandwidth גבוה

שימוש טיפוסי:


3. FPGA – חומרה מותאמת למודל

FPGA מאפשר לבנות pipeline מותאם:

השפעה על מודל:

  • latency נמוך מאוד
  • deterministic timing
  • ניתן להתאים בדיוק למודל
  • יעיל במיוחד ל-AI קטן/בינוני

יתרון קריטי:

חיסרון:


4. NPU – מאיץ AI ייעודי

NPU הוא יחידת חישוב שמיועדת ל-AI בלבד:

השפעה על מודל:

  • ביצועים גבוהים מאוד ל-inference
  • latency נמוך
  • תלוי ב-SDK ובתמיכה במודל

שימוש טיפוסי:


5. TPU – אופטימיזציה ל-TensorFlow

TPU (של Google) מותאם ל:

השפעה על מודל:

  • ביצועים גבוהים מאוד ל-Transformer ו-CNN
  • מתאים ל-training ו-inference
  • פחות גמיש מחומרה כללית

6. ASIC AI Accelerator – ביצועים מקסימליים

ASIC הוא שבב שתוכנן במיוחד למודל או סוג מודלים:

השפעה על מודל:

  • ביצועים מקסימליים
  • צריכת חשמל מינימלית
  • אין גמישות

חיסרון:


איך זה משפיע על מודל ספציפי?

ניקח דוגמה:

CPU

GPU

FPGA

NPU

TPU

ASIC


השפעה על TOPS לפי סוג חומרה

CPU

GPU

FPGA

NPU / TPU / ASIC


מסקנה הנדסית למהנדסים

בחירת חומרה להרצת מודל AI תלויה ב:

כללי אצבע


סיכום

אין חומרה אחת "הכי טובה".

יש התאמה בין:


איך זה משנה את TOPS בפועל?

ב-CPU ה-TOPS הוא תוצאה של המעבד:

ב-FPGA ה-TOPS הוא תוצאה של התכנון:

לכן ב-FPGA לא נכון לשאול רק:

אלא צריך לשאול:

זו שאלה הרבה יותר נכונה.


דוגמה מעשית: ANN קטן

רשת:

דורשת בערך:

אם נשתמש ב-FPGA עם:

נקבל:

וזמן חישוב אידיאלי:

כלומר:

לכן לרשת ANN קטנה אין צורך ב-10 TOPS או 100 TOPS.

מה שחשוב יותר הוא:


דוגמה מעשית: CNN קטן

מודל CNN קטן יכול לדרוש מאות מיליוני פעולות לכל תמונה.

לדוגמה:

אם רוצים 30 FPS:

המרה ל-TOPS:

כלומר:

אבל בפועל צריך יותר בגלל:

לכן במציאות בוחרים רכיב עם מרווח ביטחון.


מסקנה הנדסית

TOPS הוא מספר חשוב, אבל הוא לא מספר מספיק.

במערכת אמיתית צריך לבדוק:

למערכת AI קטנה עם חיישנים, FPGA יכול להיות בחירה מעולה.

למערכת AI גדולה כמו LLM או YOLO כבד, בדרך כלל GPU או NPU יהיו פשוטים וחזקים יותר.

למערכת real-time עם חיישנים, latency נמוך ותגובה קבועה, FPGA יכול להיות עדיף מ-CPU.


סיכום

CPU הוא מעבד כללי, קל לתכנות וגמיש.

FPGA הוא חומרה ניתנת לתכנות, קשה יותר לפיתוח, אבל חזק מאוד בעיבוד מקבילי וזמן אמת.

ב-CPU ה-TOPS מגיע מהמעבד.

ב-FPGA ה-TOPS מגיע מהארכיטקטורה שאתה בונה.

לכן FPGA יכול להיות מצוין לבינה מלאכותית כאשר המודל ידוע, החישוב חוזר על עצמו, וצריך זמן תגובה נמוך וקבוע.

המשפט החשוב לזכור:

ובמערכת הנדסית טובה לא בוחרים רק לפי TOPS.

בוחרים לפי:

בינה מלאכותית