מדוע וכיצד להשתמש ברכיבי Efinix FPGA‏ עבור דימות AI/ML‏ — חלק 1: צעדים ראשונים

מאת ‎Adam Taylor

באדיבות ‎העורכים האירופיים של DigiKey

הערת העורך: גישות חדשות לארכיטקטורות FPGA מביאות בקרה עדינה יותר וגמישות גדולה יותר לענות על הצרכים של למידת מכונה (ML) ובינה מלאכותית (AI). חלק 1 של סדרת שני חלקים זו מציג ארכיטקטורה אחת כזאת מבית Efinix וכיצד להתחיל לעבוד איתה תוך שימוש בלוח פיתוח. חלק 2 דן בחיבור לוח הפיתוח להתקנים חיצוניים והיקפיים, כגון מצלמה.

רכיבי FPGA‏ משחקים תפקיד קריטי ביישומים רבים, מבקרה תעשייתית ובטיחות עד רובוטיקה, תעופה וחלל ורכב. הודות לאופי הגמיש של ליבת הלוגיקה הניתנת לתכנות ויכולות ההתממשקות הרחבות שלה, אחד השימושים ההולכים וגדלים ברכיבי FPGA‏ הוא עיבוד תמונה כשיש להשתמש בהיסק ML. רכיבי FPGA‏ הם אידיאליים עבור מימוש פתרונות שיש להם מספר ממשקי מצלמה מהירות-גבוהה. נוסף לכך, רכיבי FPGA‏ גם מאפשרים את המימוש של צינורות עיבוד ייעודיים בלוגיקה, ובכך להסיר צווארי בקבוק המשויכים לפתרונות מבוססי CPU או GPU.

עם זאת, עבור מפתחים רבים, היישומים שלהם דורשים יותר פונקציונליות ML/AI ובקרה או ניתוב עדין יותר ולוגיקה, מעבר למה שארכיטקטורות FPGA‏ קלאסיות עם בלוקים לוגיים קומבינטוריים (CLBs) יכולים לספק. גישות חדשות יותר לארכיטקטורות FPGA‏ מתמודדות עם נושאים אלה. לדוגמה, ארכיטקטורת Quantum של Efinix משתמשת ב-‏eXchangeable Logic ובלוק Routing‏ (XLR).

מאמר זה דן בתכונות ומאפייני מפתח של ארכיטקטורת ה-Efinix FPGA‏, תוך הדגשת יכולות ה-AI/ML שלה והצגת יישומים מהעולם האמיתי. אחר כך הוא דן‏ בלוח פיתוח וכלים נלווים בהם מפתחים יכולים להשתמש כדי להתחיל במהירות בתכנון דימות AI/ML‏.

התקני Efinix FPGA‏

Efinix מציעה כעת התקנים בשני תחומים. היא הציגה בהתחלה את משפחת ה-Trion, שמציעה צפיפויות לוגיות מ-4000 (4K‏) עד 120K אלמנטים לוגיים (LEs‏), ומיוצרת תוך שימוש בתהליך‏ SMIC 40LL. קו ההתקנים החדש ביותר, משפחת ה-Titanium, מציע צפיפויות לוגיות מ-35K עד 1 מיליון (1M) אלמנטים לוגיים, ומיוצר בצומת TSMC‏ 16-ננומטר (nm) הנפוץ מאוד.

שני ההיצעים מבוססים סביב ארכיטקטורת ה-Quantum, שהיא ייחודית בעולם ה-FPGA‏. ארכיטקטורת FPGA הסטנדרטית מבוססת על בלוקים CLB שברמתם הפשוטה ביותר מכילים טבלת חיפוש‏ (LUT) ופליפ-פלופים. בלוקים CLB מממשים משוואות לוגיות שמחוברות אחר כך באמצעות ניתוב. ארכיטקטורת Quantum של Efinix מתרחקת מלוגיקה מובחנת ובלוקים של ניתוב עם בלוק ה-XLR.

מה שעושה את בלוק ה-XLR ייחודי הוא שניתן להגדיר את תצורתו כך שיתפקד כתא לוגי עם LUT, אוגר ומסכם (Adder‏), או routing matrix. גישה זו מציעה‏ ארכיטקטורה עדינה יותר המספקת גמישות ניתוב, מאפשרת מימושים שהם עמוסי לוגיקה או עמוסי ניתוב כדי להשיג את הביצועים המבוקשים.

תרשים של בלוק תא XLRאיור 1: מה שעושה בלוק XLR לייחודי הוא שניתן להגדיר את תצורתו כך שיתפקד כתא לוגי עם LUT, אוגר ומסכם (Adder‏) או routing matrix. (מקור תמונה: Efinix)

כמשפחה החדשה ביותר, התקני ה-Titanium מציעים את המאפיינים המתקדמים ביותר עבור המפתח (איור 2‏). ביחד עם ליבת ה-XLR, הם מספקים קישורים טוריים מרובי-Gigabit‏ הפועלים במהירות של 16 גיגה-ביט לשנייה (Gbps‏) או ‎25.8 Gbps‏, תלוי בהתקן הנבחר. קישורים מרובי-Gigabit‏ אלו הם חיוניים עבור אפשור העברת נתונים מהירות-גבוהה בשבב ומחוץ לשבב.

תמונה של Titanium FPGA Ti180 המגיע‏ במגוון אפשרויותאיור 2: ה-Titanium FPGA Ti180 מגיע‏ במגוון אפשרויות, תלוי ברוחב האפיק, I/O ודרישות זיכרון. (מקור תמונה: Efinix)

התקני Titanium גם מספקים מגוון רחב של יכולות התחברות כניסה/יציאה (I/O) הניתנות לחלוקה כ-I/O לשימוש כללי‏ (GPIO‏), והיכולות לתמוך בתקני I/O קצה-יחיד (Single-Ended‏) כמו CMOS מתח-נמוך (LVCMOS) ב-3.3 וולט, 2.5‏ וולט ו-1.8 וולט.

עבור מהירות-גבוהה וממשק הפרשי, התקני ה-Titanium מספקים I/O מהירות-גבוהה (HSIO) התומך בתקני I/O קצה-יחיד (Single-Ended‏) כגון רכיבי LVCMOS ב-1.2 וולט, 1.5 וולט ו-SSTL ו-HSTL‏. תקני I/O הפרשי נתמכים על ידי HSIO כוללים איתות הפרשי מתח-נמוך (LVDS‏), SSTL הפרשי ו-HSTL‏.

רכיבי FPGA‏ מודרניים דורשים גם זיכרון רוחב-פס-גבוה צמוד המשמש לאחסון מסגרות תמונה עבור יישומי עיבוד תמונה, נתונים לדוגמה עבור עיבוד אותות, וכמובן להרצת מערכות הפעלה ותוכנה עבור מעבדים ממומשים ב-FPGA‏. ההתקנים מסדרת Titanium מספקים את היכולת להתממשק עם קצב נתונים דינמי ארבע (DDR4) והספק-נמוך ((DDR4(x) (LPDDR4(x. בהתאם להתקן ה-Titanium המדויק הנבחר, תמיכת רוחב האפיק הוא x32‏ (J) או x16‏ (M), בעוד התקנים מסוימים לא נתמכים LPDDR4‏ ‏(L).

רכיבי Titanium FPGA מבוססים SRAM‏ ודורשים זיכרון תצורה, עם הגדרת התצורה של ההתקן מבוצעת על ידי master/slave Serial Peripheral Interconnect‏ (SPI) או JTAG. כדי להבטיח ששיטת הגדרת תצורה זו היא מאובטחת, ה-Titanium FPGA‏ משתמש בהצפנה AES GCM של ה-bitstream, ביחד עם AES GCM ו-RSA-4096 כדי לספק אימות bitstream. דרושה אבטחה חזקה כזו מאחר ורכיבי FPGA‏ פרוסים בקצה היכן שגורמים זדוניים יכולים לגשת ולבצע מניפולציות בהתנהגותם.

הצגת לוח פיתוח

לוחות פיתוח מהווים‏ אלמנט קריטי של תהליך הערכת ה-FPGA‏ מאחר וניתן להשתמש בהם לחקירת היכולות של התקן ולבדוק אב-טיפוס של יישומים, ובכך לסייע בהפחתת סיכון כולל. לוח הפיתוח הראשון הקיים להערכת רכיבי Titanium FPGA ולהתחלת בנייה של יישומי אב-טיפוס הוא ה-Ti180 M484 (איור 3‏). הלוח כולל מחבר FPGA Mezzanine Card‏ (FMC) וארבעה מחברי Samtec QSE.

תמונה של ערכת פיתוח Efinix Ti180 M484איור 3‏: ביחד עם Titanium FPGA, ערכת הפיתוח Ti180 M484 כוללת מחבר‏ FMC‏ וארבעה מחברי Samtec QSE. (מקור תמונה: Adam Taylor)

ה-Ti180 FPGA‏ הכלול בלוח פיתוח זה מספק 172K XLR תאים, 32 שעונים כלל-עולמיים, 640 אלמנטים של עיבוד אות דיגיטלי (DSP), ו-13 מגה-ביט (Mbits‏) של RAM משובץ. האלמנטים של DSP מספקים את היכולת לממש 19 x‏ 18 הכפלות נקודה קבועה והכפלות 48-ביט. DSP זה יכול גם להיות ממוטב עבור פעולות פקודה יחידה, נתונים מרובים (SIMD‏) הרצות על קונפיגורציה כפולה או מרובעת. אלמנטים של DSP ניתנים גם להגדרת תצורה לבצע פעולות נקודה צפה.

כמו מרבית לוחות הפיתוח, לוח הפיתוח Ti180 מספק נורות LED‏ ולחצנים פשוטים. עם זאת, החוזק האמיתי שלו בא מיכולות ההתממשקות שלו. לוח הפיתוח Ti180 מספק מחבר FMC מספר-פינים-נמוך‏ המאפשר לחבר מגוון רחב של רכיבים היקפיים. מאחר והוא מהווה תקן הנמצא בשימוש נרחב, ישנם הרבה כרטיסי FMC המאפשרים חיבור ממיר אנלוגי-לדיגיטלי (ADC) מהירות-גבוהה, ממיר דיגיטלי-לאנלוגי (DAC), רשתות ופתרונות זיכרון/אחסון.

בנוסף לחיבור ה-FMC‏, הלוח מספק ארבעה מחברי Samtec QSE המאפשרים למפתח להוסיף כרטיסי הרחבה. מחברי QSE אלו משמשים לספק כניסות ויציאות MIPI‏, כשכל מחבר QSE מספק כניסת או יציאת MIPI.

תמונה של ערכת פיתוח Efinix Ti180 M484איור 4‏: ערכת הפיתוח Ti180 M484 מוצגת עם המגוון הרב-תכליתי של אפשרויות הרחבה שלה המבוסס על מחברי QSE ו-FMC‏. (מקור תמונה: Adam Taylor)

לוח ה-Ti180 גם מספק ‎256 Mbits‏ של LPDDR4‏ כדי לתמוך בזיכרון ביצועים-עיליים הדרוש ביישומי עיבוד אותות או תמונה. נוסף לכך, לוח הפיתוח מספק מגוון אפשרויות תזמון (Clocking) ב-25, 33.33, 50 ו-74.25 מגה-הרץ (MHz‏), שניתנות לשימוש עם חוג נעול הפאזה (PLL) של ההתקן כדי לחולל תדרים פנימיים שונים.

היכולת לתכנת מחדש ולנפות באגים באופן חי על הלוח במהלך פיתוח הוא קריטי ודורש חיבור JTAG, שמסופק על הלוח דרך ממשק USB-C. כמו כן מסופק זיכרון לא-נדיף בצורה של שני התקני ‎256-Mbit NOR Flash‏ הניתנים לשימוש כדי להדגים את פתרון הגדרת התצורה.

הלוח מוזן ממתאם כוח אוניברסלי של‏ 12‏-וולט‏ הכלול בקופסה. כמו כן כלולים כרטיס break out‏ FMC‏-ל-QSE, ביחד עם כרטיסי הרחבה מבוססי-QSE עבור HDMI‏, Ethernet‏, MIPI‏ ו-LVDS‏. כדי להדגים את יכולות עיבוד התמונה של ה-Ti180,‏ מסופקים גם כרטיס בת RPI כפול ושני כרטיסי מצלמה IMX477.

סביבת התוכנה

מימוש תכנון המכוון אל לוח הפיתוח Ti180 משתמש בתוכנת ה-Efinix ‏Efinity. התוכנה מאפשרת את היצירה של‏ bit stream באמצעות סינתזה ומיקום וניתוב. היא גם מספקת למפתחים בלוקים של קניין רוחני (IP‏), ניתוח תזמון וניפוי-באגים על-השבב.

שים לב שדרוש‏ לוח פיתוח כדי לקבל גישה אל תוכנת ה-Efinity. אם כי, שלא כמו ספקים אחרים, לכלי אין גרסאות שונות הדורשות רישוי נוסף.

בתוך Efinity נוצרים פרויקטים חדשים המכוונים להתקן הנבחר. אחר כך ניתן להוסיף לפרויקט קבצי ‏RTL, ואילוצים הנוצרים עבור תזמון ותכנון I/O. במסגרת Efinity מפתחים יכולים גם לממש את תכנון ה-I/O, תוך שימוש ב-HSIO,‏ GPIO‏ ו-I/O ייעודי.

תמונה של פרויקטי תוכנה Efinity הנוצרים ומכוונים להתקן הנבחראיור 5: בתוך Efinity נוצרים פרויקטים חדשים המכוונים להתקן הנבחר. (מקור תמונה: Adam Taylor)

אלמנט‏ קריטי של תכנון FPGA‏ הוא מינוף IP‏, במיוחד עבור IP מורכב‏ כמו חיברורי AXI‏, בקרי זיכרון ומעבדי softcore. תוכנת Efinity מספקת למפתחים מגוון בלוקים IP‏ הניתנים לשימוש להאצת תהליך התכנון.

תמונה של Efinity המספקת למפתחים קטלוג‏ IP‏איור 6‏: Efinity מספקת למפתחים קטלוג‏ IP שהם יכולים להשתמש בו להאצת תהליך התכנון.‏ (מקור תמונה: Adam Taylor)

בעוד רכיבי FPGA‏ מצוינים במימוש מבני עיבוד מקביליים, תכני FPGA רבים כוללים מעבדי softcore. אלה מספקים את היכולת לממש עיבוד סדרתי כגון תקשורת רשת. כדי לאפשר את הפריסה של מעבדי ה-softcore בהתקני ה-Efinix, ‏Efinity מספקת את כלי הגדרת התצורה מערכת-על-שבב (SoC‏)‏ Sapphire. מערכת-על-שבב (SoC‏)‏ Sapphire מאפשרת למפתח להגדיר מערכת‏ מרובת-מעבדים שיש לה אוספים של נתוני Cache ו-Cache Coherency לרוחב מעבדים מרובים, ביחד עם היכולת להריץ מערכת הפעלה Linux‏ משובצת. בתוך Sapphire, המפתח יכול לבחור בין אחד וארבעה מעבדי softcore.

מעבד ה-softcore המיושם הוא ה-VexRiscV soft CPU, שמבוסס על ארכיטקטורת סט הפקודות RISC-V. מעבד ה-VexRiscv‏ הוא יישום של‏ bit‏-32‏ שיש לו הרחבות עבור חפיפה (pipelining) ומציע סט מאפיינים ניתנים להגדרת תצורה, דבר ההופך אותו לאידיאלי עבור מימוש בהתקני Efinix. תצורות אפשריות כוללות מכפל, פקודות אטומיות, הרחבות נקודה צפה ופקודות דחוסות. בהתאם להגדרת תצורה של מערכת ה-SoC,‏ ביצועים ינועו בין 0.86 ו-‎1.05 DMIPS/MHz‏.

לאחר תכנון ויישום סביבת החומרה בהתקן ה-Efinix, ניתן לפתח את תוכנת היישום תוך שימוש ב-Ashling RiscFree IDE. ה-Ashling RiscFree היא IDE מבוססת-Eclipse המאפשרת את היצירה וההידור (compilation) של תוכנת יישום, ביחד עם ניפוי שגיאות על המטרה כדי לכוונן כוונון-עדין את היישום לפני פריסה.

תמונה של Ashling RiscFree שהיא IDE מבוססת-Eclipseאיור 7: ה-Ashling RiscFree היא IDE מבוססת-Eclipse המאפשרת את היצירה וההידור (compilation) של תוכנת יישום, ביחד עם ניפוי שגיאות על המטרה. (מקור תמונה: Adam Taylor)

אם מפתחים פתרון Linux משובץ, כל הארטיפקטים של אתחול הדרושים מסופקים, כולל First Stage Boot Loader,‏ OpenSBI,‏ U-Boot ו-Linux המשתמשת ב-Buildroot. לחלופין, המפתח יכול להשתמש ב-FreeRTOS‏ אם דרוש פתרון זמן-אמת.

מימוש בינה מלאכותית (AI)

מימוש AI של Efinix בנוי על פעולת ה-RISC-V softcore. זה ממנף את יכולת ההוראה המותאמת-במיוחד של מעבד ה-RISC-V לאפשר את האצת הפתרונות TensorFlow Lite. השימוש במעבד RISC-V‏ גם מאפשר למשתמשים ליצור הוראות מותאמות-במיוחד היכולות לשמש כחלק מהקדם-עיבוד או הלאחר-עיבוד בהמשך להיסק AI, תוך יצירת פתרון רספונסיבי ודטרמיניסטי יותר.

כדי להתחיל בצעדים ראשונים של מימוש AI, הצעד הראשון הוא לחקור את ה-Efinix model zoo, שהיא ספריה של דגמי AI/ML‏ ממוטבת במיוחד עבור טכנולוגיית הקצה שלה. עבור מפתחים העובדים עם התקני ה-Efinix, ניתן לגשת אל ה-model zoo, ולאמן את הרשת תוך שימוש ב-Jupyter Notebooks או Google Colab. לאחר אימון הרשת, ניתן להמירה ממודל נקודה צפה לכמותי (quantized) תוך שימוש בממיר TensorFlow Lite.

כשבפורמט TensorFlow Lite, ניתן להשתמש במאיץ tinyML של Efinix כדי ליצור פתרון ניתן לפריסה על פתרון ה-RISC-V‏. מחולל ה-tinyML מאפשר למפתח להתאים-במיוחד את יישום המאיץ ולהפיק את קבצי הפרויקט. כשמופעל כך, ההאצה יכולה להיות בין 4x‏ ו-200x, תלוי בארכיטקטורה הנבחרת ובהתאמה-המיוחדת.

מסקנה

התקני Efinix מספקים למפתחים גמישות הודות לארכיטקטורת XLR הייחודית שלהם. כלי התכנות toolchain מספקים את היכולת לא רק לממש תכן RTL, אלא גם לממש פתרונות SoC מורכבים הפורסים מעבדי softcore RISC-V. בנוי על גבי ה-softcore SoC‏ נמצא פתרון‏ AI/ML‏ המאפשר פריסה של היסק ML‏.

DigiKey logo

מיאון אחריות: דעות, אמונות ונקודות מבט המובעות על ידי מחברים שונים ו/או משתתפי פורום באתר אינטרנט זה לא בהכרח משקפות את הדעות, האמונות ונקודות המבט של חברת DigiKey או את המדיניות הרשמית של חברת DigiKey.

אודות כותב זה

Image of Adam Taylor

Adam Taylor

Adam Taylor is a world-recognized expert in the design and development of embedded systems and FPGAs for several end applications. Throughout his career, Adam has used FPGAs to implement a wide variety of solutions, from RADAR to safety critical control systems (SIL4) and satellite systems. He also had interesting stops in image processing and cryptography along the way.

Adam is a Chartered Engineer, Senior Member of the IEEE, Fellow of the Institute of Engineering and Technology, Arm Innovator, and Edge Impulse Ambassador. He is also the owner of the engineering and consultancy company Adiuvo Engineering and Training which develops embedded solutions for high-reliability, mission-critical, and space applications. Current projects include ESA Plato, Lunar Gateway, Generic Space Imager, UKSA TreeView, and several other clients across the world.

FPGAs are Adam’s first love: he is the author of numerous articles and papers on electronic design and FPGA design, including over 440 blogs and 30 million plus views on how to use the Zynq and Zynq MPSoC for Xilinx.

אודות מוציא לאור זה

העורכים האירופיים של DigiKey