Table of Contents
ההתרחבות הבלתי פוסקת של מערכות ראייה ברזולוציה גבוהה דוחפת מעבדים קונבנציונליים למגבלות האדריכליות שלהם.מכוניות אוטונומיות, רובוטיות כירורגיות, ובדיקה תעשייתית דורשות כעת ניתוח של זרמי ראייה רב-מאגפל במהירויות שמשאירות את הרכיבים הכלליים של CPU ואפילו GPUs נאבקים לשמור על עמידות ⁇ בתוך תקציבי חשמל קפדניים.
מחשוב ספארי: The Fundamental Shift
היתרון העיקרי של FPGA עבור משימות חזון הוא היכולת שלה ליישם ארכיטקטורת מחשוב מרחבית.במקום להביא הוראות ונתונים מן הזיכרון, ההיגיון עצמו מבצע פעולות על נתונים כפי שהוא זורם דרך צינור ייעודי. פיקסל יחיד להיכנס הבד FPGA יכול במקביל לחצות מספר מסלולים עיבוד - אחד עבור המרת שטח צבע, אחר עבור מיצוי, ועוד עבור רשת עצבית במנוע זה הוא לא מקבילה, אלא גם עבור זרם דיגיטלי אחיד (DIVE) עבור עיבוד מיידי (DIVEL) עבור כל אחד) ומעבדה (DIVEDIVEL) באופן קבוע, אך ורק על פני שטחית עיבוד אלקטרוני (DIVEL) באופן קבוע, אך ורק עבור עיבוד אלקטרוני (DIVEL) באופן קבוע, אך ורק עבור עיבוד אלקטרוני) באופן קבוע, כל אחד (DIVEL) באופן קבוע, אחד עבור עיבוד אלקטרוני) עבור עיבוד אלקטרוני) עבור תפקודים, אחד (DIVELIVELIVELIVELIVEL.
להתגבר על חומת הזיכרון עם ההיררכיה של המכס
רוחב פס זיכרון הוא לעתים קרובות הגורם המגביל בראייה ממוחשבת. מסגרת 4K אחת ב 60 fps דורשת עיבוד של 12 GB / של נתונים פיקסל גולמי מעבדים אמנה מסתמכים על צ'יפים גדולים ומחוץ ל-chip DRAM, אשר רוחב הפס שלו משותף על כל רכיבי עיבוד של נתונים.FPGAs לתקוף בעיה זו משתי זוויות. ראשית, הם מופצות על בלוקים זיכרון (B ו- UltraRAM) שיכולהת לנטרקישומים אלה כדי למנוע את רכיבי בקרה קצרים באופן דרסטיים.
מפה ל-Modert Vision Pipeline to FPGA
מערכת ראייה מוטבעת טיפוסית יכולה להיות ממוסככת לכמה שלבים נפרדים, כל אחד עם דרישות שונות של compute וזיכרון.FPGAs מצטיין כאשר שלבים אלה משולבים בתוך מכשיר אחד, ביטול הכדאיות והכוח מעל פני שבבים דיסקרטיים.
חיישן Interface and Image Signal Processing
המסע של פיקסל מתחיל בחיישן.FPGAs מספק IP קשיח ורך ממשקים סטנדרטיים כגון MIPI CSI-2, LVDS, ו SLVS-EC חיישן ישיר למנוע את הצורך שבב גשר ייעודי.לאחר שנתפס, נתוני מפרץ גולמי מעובדים באמצעות מעבד אותות תמונה (ISP) - הדמיה, לבן, איזון gamibs, כגון פונקציות זיכרון CLTX) מכילות לעתים קרובות פונקציות זיכרון מסוג CX.
חומרה-Accelerated Preprocessing
מעבר למשימות ISP סטנדרטיות, מערכות ראייה דורשות לעתים קרובות שינויים גאומטריים (התמריצים, Affine הופכת, תיקון עדשות) ופעולות pixel-wise (הההתאזרחות, סף) אלה הן מקבילות ומפת ישירות למרקם FPGA.לדוגמה, ניתוח בגודל תמונה באמצעות אינטרפולציה דו-לינית יכול להיות מיושם כדאטה פשוטה למחזור מפתח.
רשת עמוקה של Neural
הליבה של חזון מודרני הוא למידה עמוקה ההיקף. FPGAs להאיץ רשתות עצביות באמצעות שילוב של מערךים מקבילים והגדרה אגרסיבית של שכבת מהפכת A ממפה למערך סינתי של יחידות מרובות-קומדומים (MAC) אשר יישמו באמצעות DSP48 בלוקים ב- AMD/Xilinxuan או חסימת AIor בתקני AIRIFKIFID, כולל IF1, כולל IFD2T) ו-IFD2T.
המונחים: law
לאחר הקצוב, תיבות חוצות, ציוני כיתה, ומסכות פלח חייב להיות מעובד על ידי דיכוי לא-מקסום (NMS) ו לעקוב אלגוריתמים. משימות ממוקדות החלטות אלה מתאימים לעתים קרובות יותר למעבד.במערכת-on-chip (SoC) FPGA, אלה מופעלים על הליבה ARM קשיח או על מעבד רך כמו RISC-ידי מיידי גישה זורמת.
High-Level Synthesis: Unlocking Productivity
המחסום לאימוץ FPGA היה היסטורי הקושי של שפות תיאור חומרה (HDLs) כמו VHDL ו- Verilog. The maturation of FLT:0-Level Synthesis (HLS)FLT:1 שינתה באופן יסודי את זה, ומאפשר מהנדסי תוכנה לתאר מאיצים ב C, ++C, או OpenC, ולהפיק אותם ישירות לתוך הבנה דיגיטלית, בעוד שעדיין מאפשר למפתחי תוכנה ממוקדת.
מפתח אופטימיזציה עבור חזון קרנלים
כתיבת קוד HLS יעיל דורש שינוי חשיבה מביצועים אפשריים לזרימת נתונים מצנרת.שלושה פרגמות הם חיוניים להאצת הראייה:
- (FLT:0)Pipeline:FLT:1 , צנרת HLS II=1 "הנחיה להורות לציר להשיג מרווח חניכה של מחזור שעון אחד.זה אומר פיקסל חדש ניתן לצרוך כל מחזור, למקסם את דרך הטלוט ולשמור את החומרה כל הזמן עסוק.
- (FLT:0 Dataflow:Build:cioFLT:1) ’#pragma Dataflow’ הנחיה מאפשרת צינורות ברמת המשימה, המאפשרים פונקציות (למשל, גודל, ולאחר מכן מסנן, ולאחר מכן תת-מטר) לפעול במקביל על זרם נתונים, ולא לחכות לתפקוד הקודם כדי להשלים.
- (FLT:0Array Partitioning:FLT:1 באלגוריתמים חזון, 2D גלקסיות המייצגות שכונות תמונות מאוחסנות על שבב ב- BRAM. "#pragma HLS partition" מתפצלים אחד BRAM לזיכרונות קטנים יותר, הגדלת מספר יציאות קריאה/טקס.זה מספק רוחב פס הכרחי עבור פעולות חלון מקבילות או חישובים מקבילים.
על ידי יישום הוראות אלה, מהנדס תוכנה יכול להפוך את לולאה C++ transential לתוך מאיץ חומרה מקבילה מאוד מסוגל עיבוד 4K וידאו בזמן אמת.
בדיקה אחרונה ב-[[1924]] ו-Hardware-in-the-Loop Testing
Co-simulation, שבו C++ Testbench משמש כדי לאמת את הפלט RTL של אוסף HLS, הוא חלק סטנדרטי של זרימת העבודה. עם זאת, אימות אמין ביותר הוא חומרה בתוך-the-loop (HWIL), שבו bitstream מסונתז הוא טעון על FPGA ובדיקה עם נתונים מצלמה אמיתית.
מחקר: גילוי עצמי בזמן אמת על צוק
כדי לקרקע מושגים אלה, לשקול פריסת קצה טיפוסית: מל"ט או מצלמה חכמה ביצוע גילוי אובייקטים בזמן אמת. בסיס משותף הוא GPU מוטבע פועל YOLOv3 ב 30 FPS. גישה חלופית משתמשת שיlinx K26 K26 System-on-Module (SOM) עם צינור Vitis AI מותאם אישית.
הבד FPGA מחולק למקלט MIPI CSI-2, צינור ISP קל משקל, kernel בגודל תמונה בגודל של kernel, ו- DPU (Deep Learning Processor Unit) המפעיל מודל YOLOv3 קוונטי.DPU הוא בלוק IP קשיח בגודל תצורה אשר מאיצה אוטומטית את מהפכת, בריכות, ו-הפעלה שכבות.הצנרת כולה מחוברת באמצעות AXI-StRAM, המבטיחה את הממשק של ה-DTM ללא ה-DRED.
התוצאות משכנעות.ה KRA K26 משיגות 30 FPS בצריכת חשמל של 7.5 W בלבד, בהשוואה ל-30 W לפתרון GPU מוטבע דומה יותר, ההיקף מקצה לקצה מפוטין לקופסא כבולה הוא מתחת ל 80 מ"שניות, דטרמיניסטיות, ושוחררות מהג'ייטר שהוצג על ידי נהג GPU.
ניווט את מערכת הפיתוח
בחירת החומרה הנכונה והכלים היא קריטית.מערכת האקולוגית של FPGA עבור חזון נשלטת על ידי שני ספקים עיקריים, עם תרומות קוד פתוח חזקות אשר מורידות את המחסום לכניסה.
AMD (Xilinx): Vitis ו KRA Ecosystem
AMD מספק את הפלטפורמה המקיפה ביותר עבור האצת החזון.ה-FLT:0Vitis AIFLT:1 פיתוח הסביבה כוללת כלים עבור מודל קוונטיזציה, איסוף, פריסה, תמיכה TensorFlow, PyTorch, ו Caffe.DPU הליבה היא חינם ומדורגת מעבר קווי ההפעלה שלהם.עבור ראייה מואצת, תיק SORAM מספק תיק מוכן-todey עם פלטפורמה עם חבילות תמיכה HDL.
אינטל (Altera): OpenVINO ו- Agilex
מרכזי האסטרטגיה של אינטל ב-FLT:0 (OpenVINOFLT:1 ), המספקים ממשק API אחיד על פני CPUs, GPUs, Myriad VPUs ו- FPGAs. עבור האצה FPGA, OpenVINO תומך ב- Intel FPGA Suite, אשר מקנה מודלים להתאמה במנועי ה-Action 10 ו-FxAbx As.
קוד פתוח: HLS4ML ו-FINN
קהילת הקוד הפתוח דוחפת באופן אגרסיבי את הגבולות של נגישות FPGA.מסגרות כמו FLT:0HLS4MLFLT:1 מאפשר לחוקרים להנפיק מודלים של Keras ו- PyTorch ישירות לתוך קוד HLS C++, אשר ניתן לסנתז קבוצות לתוך מעט זרם נתונים ספציפי של ספק, ומעניקה למפתחים שליטה מלאה על הארכיטקטורה החומרית.
(ב) [[1924]]]]]] [[1924]]]]]] [[1924]]]]]]]]]] [[1924]]]]]]]]]] [[1924]]]]]]]]]]]]]]]]]]]]]]]] [[1924]]]]]]]]]]
אתגרים עקביים בפיתוח חזון FPGA
למרות ההתקדמות, פיתוח FPGA מציג מכשולים אמיתיים.האתגר העיקרי הוא עקומת הלמידה הקשורה בעיצוב של מטבע חומרה.גם עם HLS, מפתחים חייבים לתפוס מושגים כמו צינורות, מחיצת זיכרון, וקידוד קבוע כדי להשיג ביצועים סבירים. A C++ kernel כתוב ללא התחשבות בחומרה יהיה לתוך עיצוב איטי, משאב-hungry.
(FLT:0) הערכת קליק: FLT:1 ככל עיצובים גדלים למלא FPGA גדול, מגבלות הפגישה הופכת להיות קשה.תהליך מיקום והמסלול יכול לקחת שעות, ועיכוב בלתי צפוי דורש שינויים RTL או מגבלות תכנון הרצפה.זמן זה הוא הרבה יותר זמן מאשר מחזור עיבוד תוכנה.
(FLT:0) Ecosystem Fragmentation: FevolveLT:1 ; Migrating עיצוב ממכשיר AMD למכשיר אינטל הוא מאמץ עיקרי. בעוד קוד HLS שנכתב עם C++ הוא קצת נייד, הממשקים (AXI לעומת Avalon), בלוקים IP (DPU לעומת AI Suite), ו- Toolchains (Vitis לעומת Quartus) הם לחלוטין צוותים נפרדים.
(FLT:0)Resource Constraints: FLT1 FPGAs יש אלמנטים לוגיים סופיים.מודל רשת עצבי גדול עשוי לא להתאים למכשיר חד-טווח אחד.מהנדסים חייבים לעתים קרובות לפנות למודל לחיתוך, צמצום ערוצים או הטיה – לשבור את המודל לחתיכות קטנות יותר אשר מקובעות באופן שווה על גבי הבד.
הגבול הבא: AI Engines ו- Chiplets
המסלול של פיתוח FPGA נע לעבר ארכיטקטורות heterogeneous עמוק. AMD Versal ACAP (פלטפורמת אישורים Compent Compeleration Platform) הוא דוגמה ראשית.זה משלב בד FPGA עם מנועי מדרג (ARM ליבות), מנועי הסתגלות (מרקם טכנולוגי), ומנועי אינטליגנטים (המכונים ליבות AIs מותאם לעיבוד ו- AI אלה יושבים לצד תוכנית ה- AI-Regramable עבור ביצועים מתקדמים, תוך כדי שיפור נתונים מתקדמים ו-מחדשניים).
ארכיטקטורות Chiplet עוד להאיץ את המגמה הזו.על ידי אריזה FPGA שבבים עם שבבים מנוע AI ו שבבים ברשת במות יחיד באמצעות interposer, ספקים יכולים להציע ביצועים מדרגיים ללא בעיות של מונוליטי למות.עבור ראיית מחשב, זה אומר שבב יחיד יכול לשלב היתוך חיישן, עיבוד CV קלאסי, AI, ולהציג פלט עם יעילות אנרגיה חסרת תקדים.
(FLT:0) רפורמה חלקית: ⁇ : 1:1 יכולת FPGA מתקדמת זו מאפשרת חלק מהלוגיקה המתוכננת להיות מעודכנת בעוד שאר המערכת ממשיכה לרוץ. מצלמה חכמה יכולה לשנות בלוק מאיץ מגורם של יום לדגמי דפוס תרמי של לילה ללא כוח.
(ב) ויקרא י"ד:2 (ב)
בנייה לטווח הארוך
אימוץ האצה של FPGA עבור ראיית מחשב היא השקעה בארכיטקטורה של מערכת, לא רק החלפת רכיב טיפה.התגמולים הם משמעותיים: FPGA אחד יכול לשלב את צינור החזון כולו, מקלט חיישן גולמי לתפוקת החלטות מעובד, עם שקיפות ⁇ יסטית וכוח מינימלי.ההההה של HLS כלי עזר וספריות נתמך על ידי ספקים הפכה את הטכנולוגיה הזו לנגישה לקבוצות הנדסיות תוכנה.
עבור צוותים בבניית מערכות שבהן החומר של מילימטריים, שבו הכוח מוגבל, או היכן שהדרישות האלגוריתמיות יפתחו לפני שהמחזור של חיי החומרה יסתיים, FPGAs מספק את הבסיס ההסתגלות והביצועים הגבוהים ביותר. על ידי אימוץ מודל מחשוב מרחבי, מפתחים עוברים מעבר לגבולות העיבוד הטמון בבניית חומרה שבאמת רואה בזמן אמת.