מהפכה במערכות מוקשחות משובצות מחשב

טכנולוגית GPU נמצאת כבר בשימוש רחב בתוך יישומים כמו רדאר, סונאר ו-ISR שיכולים להנות באופן מיידי מדרגה גבוהה של מקביליות המתאפשרת על ידי שימוש במעבדים גרפיים. עם זאת, יכולת המיחשוב המקיפה המתאפשרת בשימוש בטכנולוגית GPU עדיין מתמודדת עם אתגרים כמו צריכת חשמל ואיבוד חום – בעיה המופיעה בפלטפורמות קטנות וקלות יותר בעלות צריכת חשמל נמוכה שאינן מתקררות בקלות.

בתחילת השנה בחרה ®NVIDIA בחברת  Intelligent Platforms  כספק למערכות מוקשחות המבוססות על Tegra® K1, המיועדות לסביבה מאתגרת וקשה – 192 מעבדים. 327GFLOPS. הספק קטן מ-10W.

Tegra K1 () מתוצרת NVIDIA היא מערכת-על-שבב הראשונה עם ליבת ARM המשלבת ארכיטקטורת ®CUDA. עם 192 ליבות GPU מסוג Kepler וארבע ליבות מסוג ARM Cortex-A15 (תמונה 1) ועם ביצועי מיחשוב של 327GFLOPS, ל-TK1 יכולת עיבוד גבוהה של מידע בארכיטקטורת CUDA בהספק אופייני של 6W בלבד (כולל מערכת ה-SoC וה-). CUDA

(Compute Unified Device Architecture) היא מערכת מיחשוב מקבילי ומודל תכנות מבית היוצר של NVIDIA המעניקה למפתחים גישה ישירה לקבוצת ההוראות הוירטואלית ולזכרון של רכיבי המיחשוב המקבילי ביחידות GPU מסוג CUDA, ומאפשרת להשתמש בהם גם למטרות עיבוד כלליות.

מחשב עם לוח אחד מרובה מעבדים מסוג 6U VPX בטכנולוגית GPU ישנה יותר צורך 100 וואט לערך כדי להשיג ביצועים של

645GFLOPS. במילים אחרות, כמות כפולה של כח מיחשוב, אך עם כמות גדולה פי עשר של צריכת חשמל. פלטפורמות אילו, עם יכולת המיחשוב והגמישות הגולמיות שלהן, ימשיכו להיות מותקנות בליבן של מערכות משובצות מחשב מתקדמות רבות. עם זאת, יש מספר גדל והולך של ישומים הנמצאים בתכנון שיהנו באופן משמעותי ‘רק’ ממחצית ביצועי העיבוד אם ניתן יהיה להוריד את צריכת חשמל/קירור באופן משמעותי כל כך. TK1, אם כן, משנה את כללי המשחק בכל הנוגע לביצועים של ישומי SFF בעלי דרישות SWAP נמוכות בתחום שמתחת ל-10 וואט, בעוד הוא תומך בסביבת פיתוח ידידותית מסוג Ubuntu Linux המעניקה חוויה של מחשב שולחני ולא מערכת-על-שבב SoC משובצת. TK1 מופעל מיד עם חיבורו (plug and play) ויכול להעביר נתונים מציוד היקפי עם רוחב פס גבוה, חיישנים, וממשקי רשת באמצעות יציאות USB 3.0

ו-.

TK1 מיועד לעיבוד אותות מחיישנים ומציע פונקציונליות נוספת נתמכת-חומרה שהיא אסינכרונית למודל CUDA, כמו מנועי קידוד H.264 וממשקי מצלמה מסוג

MIPI CSI-2 ומעבדי תמונה (ISP). קיימים ישומים משובצים נהדרים רבים ל-TK1 העושים שימוש ביכולת הטבעית שלו כמעבד מדיה וכפלטפורמה בעלת צריכת חשמל נמוכה, כדי לשלב התקנים וסנסורים.

ניתוח מקרה ראשון – פלטפורמת רובוטיקה/כלי רכב לא מאוישים

יישומים משובצים מצריכים בדרך כלל רכיבים של עיבוד וידאו, עיבוד אותות דיגיטלי (DSP), פיקוד ובקרה, וכך הלאה. בארכיטקטורה זו הכוללת את Tegra K1, CUDA משמשת לעיבוד תמונה באיכות גבוהה ממצלמות ג’יגביט GigEVision כאשר בו זמנית מתבצע מיפוי של העולם ומבצעים לאיתור מכשולים במדי-טווח מסוג LIDAR המבצעים סריקה של

180 (תמונה 3). בנוסף, התקנים כמו רסיברים של GPS, יחידות מידה אינרטיות (IMU), בקרי מנועים, וחיישנים אחרים, משולבים יחדיו כדי להדגים את השימוש ב-TK1 להשגת ניווט חופשי ובקרת תנועה של פלטפורמה ניידת (כמו רובוט או כלי רכב לא מאויש). יכולות של הפעלה מרחוק מתאפשרות הודות לפורמט דחיסה H.264 נתמך-חומרה של Tegra עבור הוידאו והנתונים העוברים ברשת האלחוטית, 3G/4G, או יצירת קשר בין לווין לתחנת קרקע רחוקה או פלטפורמה אחרת ברשת. ארכיטקטורה זו מהווה דוגמה למידול מושגי ועצמאות תוך שימוש ב-TK1 כמעבד מרכזי של המערכת וממשק החיישן. מה שהופך את Tegra למעבד האידיאלי לסביבה סגורה כמו רובוטים וכלי רכב לא מאוישים קטנים, הם צריכת החשמל הנמוכה ואיבוד חום מינימלי, המעניקים להם יכולת עיבוד מקומית שבעבר היתה בלתי נתפשת.

טכנולוגית ה-LIDAR בה משתמשים כאן לצורך סריקה מייצרת דוגמאות במרווחים של 0.5 על פני 180 מעלות, המקובצות לצברים (clusters) על פי ההיסט הממוצע ומזוהות כאשר יש תזוזה. נעשה שימוש במודל CUDA כדי לעבד את הדוגמאות בו זמנית ולאתר תזוזות ביחס לענן התלת-מימדי עם חלוקה פנימית ליחידות של שמונה חלקים שנבנה על בסיס סריקות LIDAR קודמות, וליצור רשימה של מכשולים נייחים ונעים בזמן אמת כדי למנוע התנגשות. לאחר מכן יצויר PPI הדומה לרדאר בצד של OpenGL (ציור 4). LIDAR מסוים זה חובר באמצעות RS232 ליציאה (port) סדרתית; אחרים תומכים בחיבור Ethernet מסוג Gigabit. נעשה שימוש בספרית SICK Toolbox כדי להתחבר לחיישן, שמתקמפל ורץ מחוץ לקופסה על TK1.

גישה קלה לחיישני LIDAR מאפשרת ל-TK1 לקרוא בדיוק של פחות ממילימטר ולהשתמש במידע בשילוב עם CUDA כדי לערוך מיפוי תלת מימדי של הסביבה ותכנון מקביל בזמן אמת.

בכל הנוגע לדימות, ל-TK1 יש כמה ממשקים כדי להעביר וידאו באיכות גבוהה, כמו CSI-2, USB 3.0 ו-Gigabit Ethernet. קולטי תמונה עבור ציוד כמו HD-SDI, CameraLink, LVDS ניתנים לשילוב עם TK1 דרך כרטיס PCIe Gen2 x4. עבור ניתוח מקרה זה, הניסויים נעשו באמצעות מספר מצלמות Gigabit Ethernet של יצרנים תואמי GigEVision, ברזולוציה הנעה בין 1920X1080 לבין 2448X2048, בעוד שליבת CPU מסוג ARM אחת הספיקה לכל יציאת Gigabit Ethernet כדי לטפל בפרוטוקולי רשת ומשלוח יחידות מידע תוך שימוש בממשק תכנות הישומים (API) של השקע (socket). באמצעות cudaMallocManaged, פונקציה חדשה של CUDA 6, זרם הוידאו מפורק על ידי המעבד לתוך זכרון זמני (buffer) שבו משתמש גם ה-GPU, ועל ידי כך אין צורך לשמור “העתקים” של הוידאו בזכרון של ה-GPU (במקרה של TK1, מדובר באותו זכרון פיזי).

תוך שימוש בספריות הניתנות בחינם כמו OpenCV, NVIDIA NPP, ו-VisionWorks, קיימת אפשרות להריץ מספר רב של פילטרים נתמכי-CUDA תוך כדי עבודה, לרבות זרם אופטי, SLAM, פערי סטריאו, שליפת תכונות חזקות ושיוך, ושיבוץ וזיהוי מטרה נעה (MMTI) (תמונה 5). גלאי כלי רכב והולכי רכב שניתנים לאימון יכולים להופיע בזמן אמת על TK1 בעזרת ישומי  (Histogram of Oriented Gradients). קיימים קטעי קוד רבים במודל CUDA שרצו בעבר על יחידות GPU בדידות והיום ניתנים להרצה ולשימוש על Tegra.

בנוסף להתקני LIDAR ולמצלמות, TK1 תומכים בחיישני ניווט כדוגמת GPS ו-IMU כדי להשיג עצמאות משופרת וגדולה יותר. אילו נפוצים וניתנים להשגה על USB או על התקן סדרתי אחר וניתן לשלבם בקלות עם TK1. דרך מהירה אחת לייצר ישומי GPS היא להשתמש ב-libgps/gpsd, המספקים ממשק תוכנה נפוץ ומנות מידע עבור קבוצה רחבה של התקנים תואמי NMEA. בינתיים, נעשה שימוש בחיישני IMU המתפקדים כמדי-תאוצה, ג’ירו, ומגנטומטר בקצב רענון של עד 100 הרץ או יותר.

TK1 משלב את המידע המהיר המתקבל מהתקני GPS ו-IMU תוך שימוש במסנני Kalman באיכות גבוהה כדי ליצר בזמן אמת אינטרפולציה של מיקומים על הפלטפורמה בשלושה מרחבים. אז הוא משתמש באינטרפולציות אילו כדי להפריד מד-מרחק ויזואלי מזרימה אופטית. בעוד שהתקני IMU הינם פחות סטנדרטיים מיחידות GPS תואמות-NMEA, הם ניתנים להשגה אצל הספקים המשווקים אותם עם קוד C/C++ המיועד ליצור קובץ ריצה עם libusb, ממשק סטנדרטי למנהל התקן (driver) שרץ בזכרון המיועד למשתמש, המספק גישה להתקני USB על Linux.

מנהלי התקנים אילו המשתמשים בספרית libusb מצריכים מאמץ קטן בהסבתם מפורמט x86 ל-ARM ומאפשרים למפתחים שילוב מהיר של התקנים שונים עם TK1, כדוגמת MOSFET או בקרי מנועים מסוג PWMעבור רכבים לנהיגה, חיישני מתח וזרם כדי לנטר חיי סוללה, חיישנים אטמוספריים או חיישני גז, ADCs/DACs, וכך הלאה תלוי בישום. בנוסף, TK1 כולל שש יציאות GPIO עבור אותות בדידים – שימושי כאשר מחברים מתגים, כפתורים, ממסרים ו-LEDs.

ניתוח מקרה זה מציג היבטים מיחשוביים וסנסוריאליים נפוצים המצויים בדרך כלל ברובוטיקה, ראיית מכונה, חישה מרחוק וכן הלאה. TK1 מספק סביבת פיתוח ידידותית המאפשרת עבודת אינטגרציה קלה יותר והופכת התקנת ישומים משובצים בארכיטקטורת CUDA לקלה יותר תוך הפגנת ביצועים מעולים.

ניתוח מקרה שני – מערכת בארכיטקטורת “אריחים”

(Tiled Tegra)

יישומים מסוימים עשויים להזדקק למספר שבבי Tegra העובדים במשולב כדי לענות על צרכיהם. ניתן להעמיד זו לצד זו מערכות SoC המכילות צברים (clusters) של Tegra K1 ולחברן באמצעות יציאות PCIe או חיבור Ethernet (תמונה 6). יתרונות הגודל, המשקל וצריכת החשמל המושגים מישום ארכיטקטורת “אריחים” כזו הינם משמעותיים ומרחיבים את השימוש בשבבי TK1 למרכזי מידע ומיחשוב לביצועים גבוהים (HPC). ניתן להשיג טופולוגיה צפופה עם 4,6,8 או יותר מערכות על שבב מסוג TK1 על לוח אחד, ולספק יכולת הרחבה (scalability) חיונית הן ליישומים משובצים והן למערכות HPC. אם נסתכל על הדוגמא להלן המבוססת על מערכת משובצת קיימת, המשתמשת בשישה TK1: ששת שבבי ה-TK1 מחוברים ביניהם באמצעות PCIe gen2 x4 ובאמצעות מתג PCIe בעל 32 נתיבים, NTB ומנועים המאפשרים פריקה של ה-DMA. תצורה זו בצירוף עם ספרית RDMA קלת-משקל שרצה בזכרון המשתמש, מאפשרים תקשורת עם תקורה נמוכה בין מעבדי TK1. בינתיים, התממשקות לחיישנים מתאפשרת באמצעות

Gigabit Ethernet NIC/PHY המחוברים לכל יציאה PCIe gen2 x1 של השבב Tegra. קיימת תוספת הרחבה חיצונית ל-PCIe x8 של עד 4GB/s להתחברות לממשקי I/O המוגדרים על ידי המשתמש.

פתרון כזה (tiled) מאפשר ביצועי חישובים של 2 TFLOPS כמעט בהספק של 50W, ומהווה עליה גדולה ביעילות של צבר מערכות-על-שבב בעלות צריכת חשמל נמוכה לעומת ארכיטקטורות המשתמשות ברכיבים בדידים בצריכת חשמל גבוהה יותר.

הירידה בצריכת החשמל מאפשרת מיקום וניתוב של כל הרכיבים הנמצאים על הלוח, כשהתוצאה היא תקשורת חופשיה ממחברים (connector), שלמות אות משופרת ומוקשחות טובה יותר. ארכיטקטורה משולבת TK1 שימושית לניתוח כמויות גדולות של מידע, וידאו רב-ערוצי, עיבוד אותות ומכונות לומדות, ומציעה שיפורי ביצועים משמעותיים עבור ישומים הצורכים משאבים רבים הזקוקים ליכולת חישובית גבוהה תוך הקטנת דרישות SWaP.

דור חדש של התקנים משובצים

הביצועים החישוביים של Tegra K1, המונעים על ידי צריכת חשמל אופטימלית של NVIDIA והשימוש בארכיטקטורת CUDA משולבת, מייצרים דור חדש של התקנים ומערכות משובצות הנהנות מיתרון SWaP, האופיינית ל-TK1, המציגים מאפיינים ויכולות מתקדמים. NVIDIA וחברת GE חברו יחדיו כדי להביא למרחב המערכות המשובצות, מודולים ומערכות SFF מוקשחות המכילים TK1. ישומים רובוטיים, רפואיים והתקנים הנלבשים על ידי אדם, רדיו מוגדר בתוכנה, בטחון, מעקב, ואחרים הינם המועמדים הראשונים לשיפור ביצועים עם Tegra K1. מעבר לכך, קלות השימוש ב-TK1 מקדמת את פיתוחן של מערכות משובצות ניידות הניתנות להרחבה עם תהליכי פיתוח מקוצרים. השימוש בTK1- מעניק בנוסף עושר פונקציונלי המצוי בספריות CUDA שרצה עכשיו על Tegra.

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

אך עשוי להיווצר ספק קטן, אם Tegra K1 מציע הזדמנות משמעותית להכנסת מיחשוב מוקשח משובץ למקומות וישומים בהם זה לא היה אפשרי בעבר.

תרגם וערך עידן ושיץ, מנהל שיווק אדקו טכנולוגיות

Dustin Franklin, GE Intelligent Platforms

תגובות סגורות