Table of Contents
ה-FPGAs in Deep Neural Network Inference
שער שדה-Programmable Gate Arrays תופסת עמדה ייחודית בין אפשרויות האצה להיקף למידה עמוק.בניגוד CPUs למטרות כלליות עם צינורות ההוראה המשתנים שלהם, או GPUs אשר מסתמכים על מקבילות מסיבית ברמת חוט, FPGAs מאפשר למהנדסים לבנות נתיבי נתונים מותאמים אישית המראה של גרף חישוב של רשת עצבית. גישה זו מחשוב מספק שקיפות ⁇ ית בטווח התת-ימי ו-2, כמו יעילות מגנטית 5G חיונית עבור עיבוד יעיל של כוח אדם יעיל עבור מערכת אינטליגנציה מלאכותית, כמו עיבוד מגנטית של מערכת ניהול יעיל של כוח חכם אמיתי, כמו עיבוד PG-גלקטית של מערכת ניהול יעיל יותר, כמו עיבוד PG-גלקטית של מערכת עיבוד יעיל יותר.
הכוח העיקרי של FPGA הוא בד ההיגיון המפוחד שלה ו-mdash; מערך צפוף של שולחנות מבט, טבלאות ספין-קרקעיות, DSP פרוסות, וחוסם זיכרונות שניתן לנסח מחדש ב- Runtime. מכשיר אחד יכול להיות reured ממנוע בקרה קונסולה או ליתר דיוק, מאשר IPG-Facter-Facterive ביצועים טובים יותר מאשר לעתים קרובות מקבל ביצועים קלים יותר מאשר חומרה-Facter-Facter-Facter-Facter-T.
יסודות אדריכליים של FPGA Inference Engines
תכנון חומרה יעילה דורש הבנה כיצד מפת משאבי FPGA למבצעי רשת עצביים:
- (FLT:0DSP Slices: FPGALT:1Hardened רב-היתר יחידות אשר מטפלות במהירות גבוהה teger או מתמטיקה צף. המודרנית FPGAs אורז אלפי פרוסות אלה, ויצרו את עמוד השדרה חישובי עבור multiplication ממטריקס, convolution, ושכבות מחוברות לחלוטין.
- (FLT:0)Block RAM ו- UltraRAM:FLT:1 על-chip זיכרון עם גישה מחזורית אחת. Buffers אלה לאחסן משקולות, מפות הפעלה ותוצאות ביניים.
- (FLT:0Logic Cells (LUTs and Flip-Flops): לוגיקה כללית למטרות כלליות המשמשת למכונות ממשלתיות, פונקציות הפעלה, עיבוד נתונים, דור כתובת ו בלוקים מותאמים אישית קטנים כגון תוספות Winograd.
- (FLT:0) Transceivers ו- Memory Controllers:FLT 1 SerDes ממשקים עבור PCIe, Ethernet, או חיבור ישיר DRAM. מנועי גישה ישירה לזיכרון מזרמים נתונים בין זיכרון מחוץ ל-chip לבין הבד ללא מעורבות CPU.
מאיץ מוצלח מתפתל את המשאבים האלה לתוך מנוע זרימת נתונים מרופפים עמוק.כל שכבה אינה מסוללת באופן מרחבי: בלוקים ייעודיים להתמודד עם מהפכת, בריכות, נורמליזציה, והפעלה ברצף.האתגר הוא לשמור על כל יחידות מקבילות עסוקות בעת האכלה של נתונים וניקוז תוצאות ו-mdash; מאזן הדורש תכנון buffer זהיר, tiling, תזמון.
The End-to-End Design Flow: From Trained Model to Bitstream
בניית מאיץ FPGA בעקבות צינור מובנה המגשר מסגרות תוכנה וסינתז חומרה.השלבים העיקריים הם:
1.מודל ניתוח ו-Gemphation
התהליך מתחיל על ידי בחירת מודל מאומנים מראש מ PyTorch, TensorFlow, או ONNX מעצבs לזהות מפעילי אינטנסיביים חישוביים & mdash;convolutions, מנגנוני תשומת לב, multiplications & mdash; כדי להסיר את התפעול כמו אופטימיזציה קלט או Softmax עשוי להישאר על CPU. המודל הוא מייצא לזהות ביניים גרף לכידת העליון וסוגים כגון: 10 ל- AIx לתפקודים.
המונחים: Quantization and Precision Reduction
פלוגמנטל-נקודתי הוא יקר בלוגיקה FPGA. Quantization מקטין משקלים והפעלה להורדת הריון ב-32s & mdash; באופן זמני INT8, אך יותר ויותר INT4, בינארי, או לחסום את אחוזי הפחתת נקודות צף.לאחר אימון לחץ על ידי צמצום של מדדי זיכרון דינמית, תוך כדי ירידה של 4 נקודות-דיוק גבוה יותר ב-תרגול, תוך כדי תיקון של רמות INT של דיוק בינוניות גבוהות יותר, תוך כדי תיקון של 4 רזולוציה גבוהה יותר של אבטחה מדויקות של אבטחה של אבטחה מדויקת של אבטחה מדויקת של אבטחה של אבטחה מדויקת של אבטחה מדויקת של אבטחה מדויקת יותר, תוך כדי ירידה של 4.2%, תוך כדי ירידה של אבטחה מדויקת של אבטחה מדויקת יותר באמצעות מדדים של אבטחה מדויקת יותר באמצעות רזולוציה גבוהה יותר של אבטחה מדויקת של אבטחה מדויקת של אבטחה מדויקת של רמות INT.
יישום חומרה: High-Level Synthesis Versus Hand-coded RTL
תיאורים קשיחים יכולים להיות כתובים ב-VHDL או VHDL, אבל רוב היזמים משתמשים כיום בכלים גבוהים-Level Synthesis שממיר C++ או SystemC ל-Regulation Level Level Index. HLS מאיצה באופן דרמטי את הפיתוח: מעצבים מביעים חישוב עם לולאות מקונן וסוגי נתונים C, ולאחר מכן ליישם את פרגמס עבור צינורות, לאולציה, , קידוד, ו-Dataflow כמו VLSL.
אדריכלות: Memory Subsystem
ה-FPGA ’ המוגבל על זיכרון שבב חייב להיות מחולק לתוך מציצים במשקל, קלט קו-buffers, ו פלט מצטבר buffers. כפול buffering (pong) מסתתר DMA latashency: בעוד אחד bu מזין את הצינור, השני הוא מלא מ DRAM גדול כי עולה על קיבולת-ידי האריזה, מכווץ ביעילות את הממשקים הפיזיים של CR.
5.תחליף תוכנה ותוכנות ריצה
המאצ'ל מתחבר ל- CPU מארח באמצעות PCIe או שוכן ב-SoC עם מעבד מוטבע (למשל, Xilinx Zynq, Intel Agilex) הנהג ה- Runtime מטפל בטעינה משקל, קלט/העברה קידוד, ו-Invocation. Frameworks כמו Vitis AI לספק ערימה מלאה: מפיץ את הגרף בין מארח ו-FPGA, פועל לעתים קרובות עם פרטי API תואמים (Ricer) ו-HDFlower.
תכנון של רפורמת CNN
רשתות עצביות מהפכתיות שולטות בחוד החנית של ניצול חומרה גבוה דורשות ניצול זהיר של מקבילות ומיקום נתונים:
- Loop Unrolling andPipelining:cioFLT:1] שבעת הלולאות הקונסטנטיות של מהפכת הם ללא תשלום חלקי כדי ליצור יחידות MAC מקבילות מרובות.Pilining מבטיח נתונים חדשים נכנסים לכל מחזור, הימנעות דוכנים.
- (FLT:0Winograd Convolution:FLT:1 אלגוריתם זה מקטין מורכבות רב-הכפלה עבור 3×3 הקרנלים על ידי הפיכת אריחי קלט ופילטרים לתוך התחום Winograd, שבו ריבוי אלמנט חכם להחליף מהפכת מלאה.זה יכול לחתוך את השימוש DSP עד 2.2× עלות של תוספות נוספות ולהפוך זיכרונות.
- (FLT:0) ,Buffing:Fearal Line:FIRLT:1 במקום לקרוא מחדש את כל המפה תכונה, קו buffer מזרם פיקסלים שורה-by-row to multi processing factor מספר פיקסלים פלט במקביל.
- (FLT:0)Flow Layers: FLT:1 משלב מהפכת, נורמטיביזציה אצווה, ו- ReLU לתוך צינור אחד להימנע מזיכרון ביניים עגול ולהפחית את הסבלנות.
מאיץ CNN מוקרן היטב על FPGA לטווח בינוני כמו Xilinx Zynq-7,000 יכול לעלות על 1 TOPS (פעילות טרה לשנייה) על נתונים INT8 תחת 10 וואט כוח לוח, המאפשר זיהוי בזמן אמת על מזל"טים מופעל סוללות או מצלמות חכמות.
מעבר ל-CNN: Transformers, RNNNs ו-Gearph Neural Networks
מודלים מודרניים מציגים אתגרים חדשים של האצה.רשתות רובוטר כגון bert ו GPT להסתמך על רב-הכפלה גדולה ולא-לינאריות מורכבות ( Softmax, שכבת נורמליזציה) מנגנוני תשומת לב יכולים להיות מיושמים כמערךים סינתיים של יחידות דו-מוצריות, אבל הצמיחה האקו דרסטית של ממטריקס תשומת הלב היא צוואר בקבוק.
רשתות חוזרות כמו LSTMs יש מקבילות מוגבלות בשל תלות זמני.FPGAs להאיץ אותם על ידי מיפוי כל שער להכפלת וקטורת ייעודית ומדפי חישוב לאורך כל השלבים עם צינורות. מילת מפתח עבור עוזרי קול תמיד על יכול להפעיל LSTM קטן ברמות מיקרו-וואט, להעיר את המעבד הראשי רק כאשר מילה מזוהה.
רשתות עצביות משלבות אגרציה ספארית עם פעולות עצביות צפופות.ד דפוסי הגישה הלא סדירים של נתונים של אדג'אזות דלילים הם יעילים על GPUs. FPGAs ליישם מנועי פיזור מותאם אישית אשר מטפלים בגישה לא-מוכרת ביעילות, בשילוב עם מערך סינסטלי עבור שכבות צפופות.
כלי פיתוח ומסגרות עבור AI FPGA
מערכת אקולוגית למידה עמוקה FPGA התבגרה באופן משמעותי, הורדת מחסומים עבור מפתחים ללא מומחיות חומרה:
- (ב) [ה]הסביבה המלאה שלוקחת מודל צף מאומן, אופטימיזציה ומדמת אותו, מאגד גרף עבור יחידת עיבוד למידה עמוקה, ומייצר קוד זמן רצוף.הוא תומך TensorFlow, PyTorch, ו- ONNX, מיקוד לוחות קצה וכרטיסי מרכז נתונים.
- (FLT:0)Intel FPGA AI Suite (OpenVINOאינטגרציה): Enables לפרוס אופטימיזציה של מינוף אופטימיזציה על Agilex ו- Stratix 10 FPGAs באמצעות OpenVINO. דגמי החלוקה המדגמים ו- offloads שכבות ל-FPGA באמצעות PCIe Runtime.
- (FLT:0)FINN (AMD Research): מסגרת ניסיונית שיוצרת ארכיטקטורות נתונים מותאמות אישית עבור רשתות עצביות קוונטיות באמצעות HLS.It מצטיין בחקר תוכניות קוונטיות חדשניות וארכיטקטורה דלה, אידיאלי למחקר.
- (FLT:0 hls4ml: FLT:1 חבילת קוד פתוח המתורגמת מודלים Keras / PyTorch קוד HLS, מותאם לפיזיקה עתירת אנרגיה גבוהה מודלים דחוסים.הוא תומך בפלון נמוך, פופולרי במחשוב מדעי.
- (FLT:0)Brevitas (PyTorch): אנדרל 1) ספריית אימון קוונטית-מודעה המכין מודלים עבור FINN או Vitis AI על ידי הדמיה של חומרה במהלך אימון עדין, הבטחת שימור דיוק.
כלים אלה מופשטים פרטים רבים ברמה נמוכה, אך השגת ביצועי שיא עדיין דורשת כוונון ידני של HLS pragmas, חלוקת זיכרון וסגרת תזמון.
טכניקות זיכרון וטיפוח
מאיצים השוויון הם לעתים קרובות ריבאונד זיכרון ולא אסטרטגיות מפתח כדי לשמור צינורות רווי כוללים:
- (FLT:0)-Channel-wise Tiling:FreaLT:1 , שכבות מהפכתיות מחולקות לאורך מידות קלט ופלט לתוך אריחים שמתאימים ל-chip BRAM. סכומים חלקיים מצטברים בין אריחים באמצעות אחסון מקומי.
- (FLT:0)ouble Buffering and Prefetching:FLT 1:1 מנועי DMA ייעודיים מזרמים את האריח &rsquo הבא; משקלים של DRAM לתוך חיץ משני בעוד הצינור עובד על הטבול הפעיל, החביא זיכרון מסתתר.
- (FLT:0Weight Compression: FLT:1) משקלים קוונטיים דחוסים באמצעות אורך ריצה או Huffman ⁇ . Decompression לוגיקה מוכנסת לפני מערך ההכפלה למעשה מגביר רוחב פס פנימי.
- (FLT:0Data Layout Optimization:FLT:1 Weights reorders in Memory toתואמים את דפוסי הגישה & mdash; לדוגמה, Z-order tiling for convolution or interleaving לאורך ערוצי הפלט.This ממקסימה את השימוש רוחב הפס DDR על ידי הימנעות מגישות לא עקביות.
- (FLT:0) אדריכלות מרתקת:FLT:1 עבור מודלים קטנים כמו MobileNet שמתאימים לחלוטין על שבב, משקולות נשאר קבוע ב BRAM או מופץ RAM. Activations זורם דרך הצינור עם אפס גישה חיצונית זיכרון לאחר טעינה ראשונית, השגת צריכת חשמל של כמה מאות מילימטרים.
מאיץ Resnet-50 טיפוסי באמצעות INT8 יכול לצרוך כ 2 MB של על שבב BRAM, להשיג 300 fps בפחות מ 5 וואט של כוח לוח, מה שהופך את FPGAs תחרותי עם מאיצים AI ייעודי עבור יישומים משובצים.
FPGA Versus GPU Versus ASIC: בחירת המארגן הנכון
הבחירה תלויה עומס עבודה, עלויות פיתוח, דרישות פריסה. GPUs מציעים את הפסגה הגבוהה ביותר דרך ספוט ותועלת ממערכות אקולוגיות בוגרות כמו CUDA ו- TensorRT. הם מצטיינים עבור אצילה במרכזי נתונים שבהם מגבלות כוח וכבדות הם רופפת יותר.עם זאת, עבור זרם יחיד, כפל נמוך הקצף, GPU overhead וזיכרון קבוע הופך בעייתי.
ASICs כמו Google TPU או Apple Neural Engine לספק את הביצועים הטובים ביותר עבור משפחת מודל ספציפי אבל דורש מחזורי עלייה מסיבית ההשקעה ולא ניתן לעדכן לאחר מיצוי. FPGAs כובש קרקע בינונית: הם בעלי יכולת שטח כדי לתמוך אדריכלות חדשה, פורמטים PGnumeric מותאם אישית, וסטנדרטים מתפתחים של 2020 בעסקאות במחשבים (Fal:0GA-Falated סיכון מבוסס 2DN)
אתגרים פתוחים בעיצוב למידה מעמיק של FPGA
למרות ההתקדמות, כמה מכשולים נותרו:
- (FLT:0) עיצוב מורכבות: FLT:1 בניית זרימת נתונים ביצועים גבוהה דורש מומחיות בעיצוב דיגיטלי והבנה עמוקה של שני המודל ואת מרק FPGA. HLS כלים להפחית את הנטל אבל לעתים קרובות מניב תדירות תת-אופטימית או אזור ללא ר"ק ידני. Achieving תזמון סגר על עיצובים מורכבים עם DSP גבוה הוא משימה לא רצויה.
- (FLT:0)התחייב על-Chip Memory: ⁇ F1) המדינה-of-the-art FPGAs מציעים עשרות מגה-בתים של BRAM/UlRAM & mdash; הזמנות של גודל פחות מאשר זיכרון GPU GDDR. מודלים גדולים כמו GPT-2 דורשים גישה חיצונית תכופה, הגבלת ביצועים המבוססים על FPGAs משולבים עם מטרה זו.
- (FLT:0)Quantization Slack:FLT:1 לא כל הדגמים להתמודד עם קוונטיזציה אגרסיבית היטב.אדריכלות עם הפעלה ארוכה זנב או תשומת לב התפלגות Softmax עלול לסבול INT4. Quantization-aware אימון הוא לעתים קרובות הכרחי אבל מוסיף זמן פיתוח.
- (FLT:0)Time-to-Market:FLT:1 Designing accelerator מותאם אישית יכול לקחת חודשים, בהשוואה לימים עבור פריסת GPU עם TensorRT.זה הופך את FPGAs מתאים יותר עבור מוצרים עתירי זמן רב, שבו כוח וחיסכון בעקביות להצדיק את ההשקעה.
- (FLT:0 interconnect Bottlenecks:FLT:1) הקישור PCIe בין מארח ו-FPGA יכול להפוך צוואר בקבוק עבור מודלים הדורשים העברות מפה גדולה.עיצובים לשמור על הרשת כולה על שבב (באמצעות מעבדים משובצים) או למנף ממשקי זיכרון משותפים כמו CXL.
מגמות מתפתחות שמצמציינות את העתיד
התחום ממשיך להתפתח במהירות.מגמות מפתח שיפחיתו את החסמים וירחיבו את היישומים כוללים:
- (FLT:0) אדריכלות: FLT:1 מעבדים רכים ומערךים מוטבעים כפירה במרקם ניתן לתכנן עם מערכות הוראה ספציפית דומיין. AMD ’s Versal AI Engine משלב רשת של מעבדי VLIW /SIMD עם לוגיקה יעילה, המאפשרת נתונים דינמיים שניתן לשחזר שכבת חיסון.
- (FLT:0)אולמום הארדware-Software Co-design: 10 כלים שמטמים יחדיו ארכיטקטורת רשת עצבית, קוונטיזציה ומיקרו-ארכיטקטורה חומרה באמצעות למידה חיזוק או חיפוש אחר הם מתעוררים.זה יכול בסופו של דבר לאפשר וולדקו; שותפים מ PyTorch ל bitstream ” זרימה של פריסת GPU.
- (FLT:0)Compute Express Link (CXL): ibph:1 , CXL מאפשר מאיצים FPGA לגשת לזיכרון המארח באופן קוהרנטי בפס רוחב פס ליד, לפשט שיתוף נתונים ולאפשר עיבוד של מודלים גדולים יותר ללא עותקים ממוחשבים יקרים.
- (FLT:0Cloud FPGA-as-a-Service:BuildFLT) 1 ספקים כמו AWS (F1 מקרים) ו-HPE מציעים מקרים FPGA להשכרה, המאפשרים לצוותים להעריך תצורה מחדש של אי-שוויון ללא רכישת חומרה מוקדמת, צמצום אימוץ עבור עומסי עבודה משתנים.
- (FLT:0)TinyML על Ultra-Low-Power FPGAs:FLT:1 מכשירים כמו Lattice iCE40 ו- Microchip PolarFire משמשים עבור תמיד על חיישן היתוך מילת מפתח וסימון מילות מפתח, פועל באופן מלא רשתות בינאריות המכילות רק מילימטרים.
מסקנה
יצירת חומרה FPGA ללמידה עמוקה היא אתגר רב תחומי הדורש הבנה של אלגוריתמים ברשת עצבית ועיצוב דיגיטלי.היכולת להתאים אישית כל נתיב נתונים, היררכיה זיכרון, ותבנית מספרנית למודל ’ הצרכים המדויקים מניבים ביצועים ויעילות שמעבדי נתונים קבועים פועלים כדי להתאים את עצמם ובאופן מודע; במיוחד כאשר עצלות, כוח, וזמן אמת הם זרימה קריטית של פתרונות מתקדמים יותר מאשר פיתוח AI-NGA ימשיך לפתח גמישות גבוהה יותר מאשר פיתוח.