מודול COM Express עם CPU ו-192 ליבות GPU של Nvidia
חברת SECO, המיוצגת על-ידי חברת דנאל טכנולוגיות, עומדת להוציא מודול COM Express עם מעבד Nvidia Tegra K1. מודול זה יאפשר לתכנן מוצרים קטנים, וכמובן גם גדולים, באמצעות שימוש במספר מודולים כאלו, המבוססים על ארכיטקטורת Kepler של Nvidia, אשר היתה זמינה עד היום אך ורק בכרטיסים שגודלם הפיזי גדול ואילצו שילוב עם מחשב לצורך מתן מענה שלם.
המעבד החדש של
Tegra K1 – Nvidia
Nvidia שחררה את הדור החמישי של ערכות השבבים שלה למובייל, מעבד Tegra K1. קיים זיכרון משותף ל-CPU ול-GPU כך ששניהם יכולים לגשת אליו, דבר החוסך כתיבה/קריאה לשני/משני זכרונות שונים והעברת מידע בינהם. הראשונה מכונה “Logan”. היא מכילה מעבד 32-bit מרובע-ליבות בקצב 2.3GHz המבוסס על ארכיטקטורת ARM Cortex-A15, שלצידה ליבה נוספת חלשה יותר שתפעל כאשר אין צורך ביכולות עיבוד גבוהות, על-פי עיקרון ה-ARM® big.LITTLE.
מעבד ™ARM® Cortex®-A15 MPCore הינו מנוע בעל ביצועים גבוהים, אחד לפני ה-ARM® Cortex®-A17. מעבד זה מספק גמישות ויכולת עיבוד חסרות תקדים, בעל טכניקות הפחתת צריכת חשמל מתקדמות, ומאפשר מוצרים מרתקים במגוון רחב של שווקי ARM חדשים וקיימים.
הגרסה השנייה מכונה “Denver”. גרסה זו מכילה מעבד 64-bit המבוסס על ארכיטקטורת ARMv8. מדובר במעבד בעל ליבה כפולה, בו כל ליבת “Super Core” תעבוד בתדר מרבי של 2.5GHz עם עוצמת עיבוד גבוהה מאד, הטוענת לכתר של המעבדים החזקים ביותר הקיימים כיום בשוק.
לשתי הגרסאות הספק זהה, כאשר לגרסת ה-Denver יתרון של פי 3 ביצועים ביחס ל-Logan.
רקע
המעבד הגרפי (GPU – Graphics Processing Unit) יושב על הכרטיס הגרפי במחשב או ליד ליבת המעבד במערכת על שבב (SoC) ותפקידו לחלק עומסים בינו לבין מעבד המחשוב הראשי בעת חישוב חישובים גרפיים שונים. המעבד הגרפי יודע לבצע חישובים גרפיים מסובכים וניתן לתכנות בדומה למעבדים אחרים. הופעת המעבד הגרפי אפשרה למפתחי משחקי המחשב לפתח גרפיקה ריאליסטית הרבה יותר הודות לכוח העיבוד שלו.
שתי החברות המובילות בייצור מעבדים גרפיים הן NVIDIA ו־ATI, שנרכשה ביולי 2006 על ידי AMD.
חברת Nvidia היא חברה אמריקאית וספקית גדולה של מיקרו-שבבים המשמשים לערכות שבבים של מחשבים אישיים, יחידות עיבוד גרפיות (GPU), כרטיסי מסך (מאיצים גרפיים), התקני מדיה ותקשורת וקונסולות משחק. Nvidia מוכרת בזכות סדרות כרטיסי המסך למחשב GeForce ו-Quadro וכמו כן ערכות השבבים הידועות בשם nForce.
Nvidia ייצרה חמש ארכיטקטורות למעבדים גרפיים:
● טסלה – ארכיטקטורה שמשמשת לסדרות 8, 9, 100, 200 ו-300 בטכנולוגיות 90 ננומטר, 80 ננומטר, 65 ננומטר ו-55 ננומטר. לבסוף הוחלף על ידי פרמי. יצאה לראשונה ביוני 2007.
● פרמי – פרמי היא הארכיטקטורה הבאה לאחר טסלה, שמשמשת את סדרות 400 ו-500 בטכנולוגיות 40 ננומטר ו-28 ננומטר. הוחלפה על ידי קפלר. יצאה לראשונה במרץ 2010.
● קפלר – קפלר היא הארכיטקטורה הבאה אחרי פרמי, שמשמשת את סדרת 600, רוב סדרת 700 וחלק מסדרת 800 בטכנולוגיית 28 ננומטר. יצאה לראשונה באפריל 2012.
● מקסוול – אחרי קפלר, מקסוול היא הארכיטקטורה הבאה שמשמשת את חלק מסדרת 700 וממשיכה עם סדרת 800 בטכנולוגיות 28 ננומטר ו-20 ננומטר. מקסוול הוכרזה במרץ 2013 ושוחררה לראשונה ב-2014 יחד עם GTX 750 ו-GTX 750 TI.
● פסקל – ארכיטקטורה אשר עתידה לבוא על פי NVIDIA בשנת 2016 ותשמש בעתיד את הסדרות העתידיות 1000 ו-1100 ככל הנראה בטכנולוגיית 20 ננומטר.
סוגי עיבוד גרפי בתעשייה
עיבוד גרפי בתעשיית ה-Embedded עד היום התבצע באמצעות אחת משלושת האפשרויות הבאות:
1. חומרה ייעודית או מן המדף המבוססת על FPGA או ASIC.
2. מעבד מחשוב חזק, או מספר מעבדי מחשוב חזקים, לדוגמה מספר מעבדי Intel Xeon.
3. Processing Frame Grabber עם API המאפשר שימוש בספריות עיבוד תמונה המכילות את מרבית פונקציות העיבוד הדרושות לאפליקציה. אופציה זו רלוונטית למוצרים/מערכות הכוללים קלט ממצלמה/מצלמות.
למעשה כל חברה תכננה את הכרטיסים על-פי הצורך הספציפי של האפליקציה כששיקולי הבחירה כללו מגבלת צריכת הספק, קצב העיבוד הנדרש, ידע קודם בצד ה-Firmware הדרוש לרכיב הנבחר/ידע בתכנות, Schedule של הפרוייקט, ניהול סיכונים כתוצאה מלמידה ומעבר לרכיב אחר ושיקולים אובייקטיביים אחרים הייחודיים לפרוייקט.
אז מה התחדש?
חברת Nvidia הצליחה להכניס ארכיטקטורת GPU מסוג Kepler לתוך מעבד Tegra. מדהים לראות מהלך כזה של מעבר מפתרון ברמת כרטיס מסך אל תוך מעבד על-שבב (SoC), דבר שמאפשר ליצרני SoM לשבץ את המעבד בכרטיסים. למעשה מדובר בסוג רביעי של חומרת עיבוד גרפי בנוסף לשלושת סוגי העיבוד שהוצגו קודם לכן, כאשר העיבוד ייעשה על-גבי מודול סטנדרטי מן המדף.
תכנון מבוסס מודולים סטנדרטיים (COM Express/Qseven)
תכנון מבוסס מודולים מהווה למעשה “מיני-אינטגרציה” בין שני כרטיסים. האחד הינו מודול Off-The-Shelf הכולל מעבד, זיכרונות וקונקטור/ים. השני זהו כרטיס עם קונקטורים נגדיים שהלקוח מתכנן ובו מיושמים ה-IP של הלקוח, אפיקי התקשורת, הקישוריות הנדרשת והממשקים, כלומר כל פרמטרי המחשוב מלבד המעבד והזיכרון.
זהו קונספט המחליף את לוח המחשוב המסורתי בשני לוחות ומאפשר ללקוח גמישות תכנונית של ההתמחות שלו ואפשרות החלפת ה”מוח”, קרי הכרטיס הנושא את המעבד, בכל פעם שמושק דור מעבדים חדש. בצורה זו חברות יכולות לדלוור מוצר/מערכת חדשני/ת עם ערך מוסף ו-Time-To-Market.
יש מודולים בסטנדרטים שונים, כאשר המובילים בעלי ותק ו-Deployment של מליוני יחידות הם Com Express ו-Qseven. הסטנדרט מגדיר את המכניקה, הגודל, המחברים ואת ה-Embedded API. מרבית מודולי ה-Com Express מכילים מעבדי X86 ואילו מרבית מודולי ה-Qseven מכילים מעבדים מבוססי ARM. הסיבה העיקרית לכך הינה הגודל הפיזי. ככל שהמודול גדול יותר כך ניתן לפזר עליו יותר הספק. מעבד מבוסס ARM מצטיין בצריכת הספק נמוכה ומסיבה זו מתאפשר לשבץ אותו על מודול קטן יותר.
CUDA
(Compute Unified Device Architecture)
ארכיטקטורת מחשוב מקבילי שפותחה על ידי חברת NVIDIA, אשר פיתחה את סביבת CUDA כדי לאפשר לקהילת מתכנתי ומדעני המחשב לפתח ולהריץ תוכניות מחשב בעזרת כרטיסי GPU. התכנות עצמו מתבצע בעזרת שימוש בשפת C for CUDA. סביבת CUDA מאפשרת למפתחים גישה לזיכרון ההתקן, ולסט הפקודות של המכונה הווירטואלית, המכילה אלמנטים חישוביים. סביבת CUDA מיועדת למשימות עיבוד מקבילי מסיבי (Massively Parallel Programming).
CUDA מייצגת את הדור החדש של שפות התכנות אשר מיועדות לתכנות מקבילי. עד שנת 2007, השנה שבה הופצה הגרסה הראשונה של סביבת הפיתוח CUDA, המתכנתים השתמשו בממשק התוכנה OpenGL. בעזרת מנגנון מיוחד הצליחו שני היצרנים המובילים בתחום, חברת NVIDIA וחברת ATI (החל מ-2006, חברת AMD), לאפשר הפעלת תוכניות מחשב מקביליות, הכתובות בשפת התכנות GLSL על גבי חומרה מסוג GPUs.
הופעתה של CUDA אפשרה לקהילת המתכנתים/המדענים, בפעם הראשונה, לייצר תוכניות מחשב אשר רצות על חומרה מקבילית מסוג GPUs בשפת תכנות המתאימה לחישוב מדעי-מתמטי.
התכנות בסביבת CUDA ובעיקר בשפת התכנות C for CUDA מורכב משני אלמנטי תוכנה עיקריים:
● הקוד המתמטי-מדעי, הנכתב בשפת C for CUDA ומכיל את הגרעין החישובי (Kernel).
● קוד המעטפת (בדרך כלל בשפת C) אשר אחראי להקצאות ושחרור זיכרון, העתקות יחידות מידע אל ההתקן ומן ההתקן חזרה אל המחשב המארח, והפעלת גרעיני החישוב.
סביבת הפיתוח כוללת את המרכיבים הבאים:
● מהדר (Compiler) בשם nvcc
● ממשק תוכנה (סט קובצי C header files)וספריות תוכנה.
● מנהל התקן (driver)
● סביבת הרצה. CUDA תומכת במערכות ההפעלה Microsoft Windows, Linux ו-MAC.
יכולות תכנות Nvidia Tegra K1
באופן טבעי, סביבת CUDA אשר פותחה על ידי חברת Nvidia, מסוגלת לרוץ אך ורק על חומרה מסוג GPU אשר מיוצרת על ידי החברה.
בנוסף ל-CUDA, הפתרון תומך בחידושים האחרונים בגרפיקה וב-APIs למחשוב GPU, לרבות Open GL, OpenCL וגםRenderScript, דבר המעניק חוויה ויזואלית שקודם התאפשרה רק על הטאבלטים והטלפונים החכמים המתקדמים ביותר בשוק.
דנאל טכנולוגיות מייצגת את חברת Portwell, אחת מתוך שלושת חברי Intel Premier Embedded Partners, ואת SECO, העוסקים בתחום מודולי COM Express ו-Qseven על בסיס מעבדי X86 ו-ARM.
לפרטים נוספים פנו לתמר גולדברט בחברת דנאל טכנולוגיות.
- איור 1. מרחב זיכרון משותף ב-Tegra K1
- איור 2. יתרון Zero Copy ב-Integrated GPU with Tegra K1 לעומת GPU דיסקרטי ב-ARM
- איור 3. ARM of Tegra K1 “Logan” (Cortex-A15) Vs. “Denver” (Cortex-A57)
- איור 4. CUDA ב-Nvidia Tegra K1
- איור 5. Processing Flow on CUDA
- איור 6. תוכנה עבור Nvidia Tegra K1
- איור 7. ערכת פיתוח מבוססת על Nvidia Tegra K1