אינטל חושפת פרטים על השבב הגראפי החדש שהיא מתכננת המיועד להתחרות בקרב על שוק כרטיסי המסך מול NVIDIA ו-ATI. הפרטים שנחשפו מתארים את הארכיטקטורה של Larrabee שתהיה זמינה כמוצר בסוף 2009 או בתחילת 2010.
מזה זמן ידוע כי אינטל מתכננת את כניסתה לשוק הכרטיסים הגראפיים ובכך היא מתכוונת לשבור את ההגמוניה של NVIDIA ו-ATI. לביצוע התוכנית קדמה תקופת פיתוח ורכישת טכנולוגיות כמו רכישתן של החברות Havok ו-Neoptica במהלך שנת 2007 וכן גיוס עובדים המתמחים בתחום. נכון לעכשיו, מחזיקה אינטל בנתח השוק הגדול ביותר בשוק השבבים הגראפיים, הודות לערכות השבבים שלה המכילות כרטיס מסך מובנה. אולם הכרטיסים המובנים של אינטל הם חלשים ומוגבלים מאוד יחסית לכרטיסי מסך וגם יחסית לשבבים המובנים של ATI. באינטל לא מתכוונים להסתפק בכך, והם מתכוונים להטביע את חותמם גם במגרש של הגדולים.
נא להכיר Larrabee
השבוע הציגה אינטל באופן רשמי בכנס SIGRAPH (ר"ת עבור Special Interest Group on GRAPHics and Interactive Techniques) – הארוע המרכזי של השנה בכל הקשור לתחום הגרפיקה הנערך השנה בלוס-אנג'לס, מסמך המתאר את התכונות והיכולות של ארכיטקטורה חדשה המבוססת על ריבוי ליבות בשם Larrabee. מדוע ארכיטקטורה ולא GPU? כי אי אפשר לומר ש-Larrabee הוא GPU במובנו המקובל, זהו למעשה מעבד (CPU) מרובה ליבות שעבר אופטימיזציה נרחבת לעיבוד מידע מקבילי. ואם אתם עדיין לא משוכנעים נציין כי ל-Larrabee יש מעט מאוד חומרה ייעודית למטרה מסוימת, והרבה חומרה שנועדה להריץ קוד כללי – X86 אלא מה.
אינטל מתכוונת להציג כרטיס מסך שיתבסס על הארכיטקטורה החדשה לקראת סוף שנת 2009 או לכל המאוחר בתחילת 2010. הכרטיס יצטרך להתחרות בדגמי ה-GeForce וה-Radeon של NVIDIA ו-ATI שיהיו זמינים אז, כלומר שני דורות מהיום. בנוסף מייעדת אינטל את ה-Larrabee להתמודד בהמשך גם בשוק ה-HPC שנועד להאיץ חישובים מורכבים בתחנות עבודה, שם יתחרה מול כרטיסי ה-Tesla וה-FireStream של NVIDIA ו-AMD.
המתחרות מיהרו להגיב לאיום החדש ו-NVIDIA הקפידה להדגיש כי למעשה היא תומכת כבר בהרצת קוד על הכרטיסים הגראפיים שלה החל מסדרת G8X וזאת באמצעות CUDA, שהוא קומפיילר C וכלי פיתוח המאפשרים לקודד אלגוריתמים לביצוע ב-GPU. הפתרון של AMD נקבע גם הוא בעבר עם רכישתה של ATI בדמות ה-Fusion, וכעת הודיעה AMD כי שבב בשם Shrike (המיועד למחשבים נישאים) יממש את חזון ה-Fusion גם הוא בתחילת 2010 יחד עם הופעת ה-Larrabee, וייוצר בטכנולוגיה של 32 ננו-מטר.
מספר עובדות בסיסיות – Larrabee כ-GPU
ראשית אינטל ציינה כי המוצר הראשון המבוסס על ארכיטקטורת Larrabee יהיה כרטיס שמיועד להאצת משחקים גראפיים בתלת-מימד – זהו אישור לכך שמדובר בכרטיס מסך מן השורה שיתחרה כאמור ישירות במוצרים של ATI ו-NVIDIA. שבב ה-Larrabee יכיל ליבות רבות, שלא כמו במעבדי החברה המכילים כיום 4 ליבות, או 8 ליבות במעבדי הנהלם הצפויים להופיע בקרוב, ה-Larrabee יכיל כבר עם הופעתו עשרות ליבות וכנראה מאות בהמשך.
פתרון מבוסס תוכנה |
יחידת העיבוד הבסיסית (ליבה אחת) מבוססת על נגזרת של מעבד הפנטיום המקורי שהוספו לו יכולות עיבוד 64 ביט וזיכרון מטמון מרמה שניה של 256 קילו-בייט. כמו כן הליבה צוידה ביחידת עיבוד וקטורית רחבה במיוחד המסוגלת לטפל ב-16 וקטורים במקביל. באינטל עשו חשבון כיצד ניתן לנצל את שטח הליבה הנתון בצורה היעילה ביותר כדי לקבל מקסימום חישובי וקטורים בזמן נתון והגיעו למסקנה כי שימוש במעבדים רבים קטנים ופשוטים (פנטיום זוכרים?) יתן תפוקה גדולה פי 20 יותר מאשר מעבדים מודרניים ומורכבים בעלי יכולת SSE ו-Out of order execution.
אינטל החליטה ללכת בנתיב שונה מזה של ATI ו-NVIDIA אשר מתבסס על מאות יחידות עיבוד פשוטות המסוגלות לבצע חישובי נקודה צפה וביניהם חומרה יעודית ומכוונת מטרה. בדומה לכרטיס ה-3DLabs P10 שכבר לפני שנים הציע פתרון דומה בחרו באינטל בפיתרון המבוסס על תוכנה בו כל הפונקציות החישוביות מתבצעות על ידי מעבדים המריצים קוד סטנדרטי וכך מושגת גמישות מירבית. הכרטיס יכול לממש בתוכנה ממשקים קיימים של DX10 או OpenGL ולחילופין להריץ תוכנה שונה לגמרי שנכתבה במיוחד עבורו.
ארכיטקטורה חדשה – ישנה
המעבדים המודרניים שונים מאוד מהמעבדים הראשונים שהפעילו את המחשבים האישיים כמו ה-8088 שהפעיל את ה-IBM XT המקורי במהירות של 4.47MHz. המעבדים החדשים מכילים פונקציות רבות ומורכבות כמו זיכרון מטמון גדול, מנגנוני ביצוע מורכבים שנועדו לביצוע פקודות שלא לפי הסדר (Out-Of-Order pipelines), אפשרויות לביצוע פקודות מורכבות SIMD/MIMD וכמובן מהירויות שעון של 3GHz ויותר. החלטתה של אינטל לא לפתח טכנולוגיה חדשה לחלוטין עבור ה-Larrabee היתה מפתיעה, אולם מפתיעה יותר היא העובדה שהחברה החליטה לחפש את הבסיס לטכנולוגיה בארכיון ולשלוף משם את הפנטיום המקורי, זה שהושק בשנת 1993 ופעל בתחילה במהירות של 60MHz. זהו מעבד המסוגל לבצע שתי פקודות במקביל (superscalar), מכיל כמות סבירה של זיכרון מטמון מרמה אחת בלבד (L1 cache) וכולל 3.1 מיליון טרנזיסטורים בלבד.
ליבת המעבד המיושן היוותה את הבסיס לשינויים נירחבים שבוצעו בה כדי להתאימה לביצוע אינטנסיבי של חישובי נקודה צפה הנחוצים כדי ליצור את הגרפיקה התלת-מימדית אותה מייצר הכרטיס. אינטל הוסיפה יחידת עיבוד וקטורית המסוגלת לבצע 16 פעולות נקודה צפה במקביל כאשר רוחב כל מילה הוא 32 ביט. היחידה יכולה לטפל בפקודות של 32 ביט עבור נקודה צפה ושלמים (integer) או 64 ביט עבור נקודה צפה. בכך משיגים כח עיבוד לא מבוטל עבור כל ליבה וגמישות בהקצאת היחידה שלא קיימת במעבדי הזרימה היעודיים מבית ATI ו-NVIDIA.
אפיק טבעתי |
יחידת הטקסטורה (Texture Logic) היא פונקציה הדורשת משאבי עיבוד רבים ולכן אינטל בחרה ליישם אותה בחומרה וכך לייעל את ביצוע המטלה. זוהי למעשה אחת היחידות הבודדות בארכיטקטורה אשר ממלאות תפקיד קבוע ולא ניתנות לתכנות. היות ומדובר בכמויות גדולות מאוד של מידע שצריכות לעבור בין היחידות השונות של המעבד נבנה באס מיוחד המקשר בין כול היחידות ומאפשר תקשורת מהירה והשהיה נמוכה יחסית. זהו באס טבעתי דו-כיווני ברוחב 512 ביטים – כלומר ברוחב כולל של 1024 ביטים. בעזרת באס זה נשמרת עקביות זיכרון המטמון וכך דואגים שפעולת העיבוד תישאר יעילה ככל האפשר והליבות לא ישארו חסרות עבודה עקב חוסר נתונים בזיכרון המטמון שלהם.
אחת מהתכונות המענינות ביותר של הארכיטקטורה החדשה היא יכולת הרחבה טובה מאוד (scaling) והגדלה של הביצועים עם הוספת יחידות עיבוד. אינטל טוענים להגדלה כמעט ליניארית יחסית למספר הליבות כך שהכפלת מספר הליבות בשבב תכפיל למעשה את ביצועיו. זה כמובן יתאפשר יחד עם התפתחות טכנולוגיות הייצור כך שעם המעבר לייצור ב-32 ננומטר יוכלו באינטל להכפיל את כמות יחידות העיבוד בכל שבב. אנו רואים כי ל-Larrabee יש כאן יתרון ברור על פני הטכנולוגיות הקיימות של ATI ו-NVIDIA אשר לא מצליחות להתקרב להגדלה ליניארית של הביצועים יחסית למספר יחידות העיבוד.
התוכנה
המפתח להשגת ביצועים גבוהים באלגוריתמים מקביליים ליצירת תמונה (Rendering) הוא חלוקת המשימה לתת משימות רבות ככל האפשר שניתן לחלקן בין מעבדים שונים באופן שיעמיס את כולם באופן שווה עם הפחתת נקודות הסינכרון בין המשימות למינימום. ה-Larrabee מאפשר גמישות רבה יותר מכל מעבד גרפי בחלוקת המשימות וביצוען וזאת עקב מודל הזיכרון הגמיש והיכולת לשלוט בתוכנה על אופן ודרך הביצוע.
מושג מתחום הגרפיקה העולה לעיתים קרובות עם אזכור ה-Larrabee הוא ה-Ray Tracing אשר לא אמור להחליף את שיטות יצירת התמונה המסורתיות של חישוב וציור פוליגונים היוצרים את התמונה אלה להוות גורם משלים שיוסיף נופך מציאותי לתמונה. ללא כניסה לפרטים המורכבים של השיטה נאמר רק כי בבסיס השיטה קיים מעקב אחר קרן האור היוצאת ממקור האור בסצינה וחישוב הנתיב שהיא עוברת וההחזרות שלה, בכך מתאפשר ציור מדוייק של צללים והשתקפויות המשווים לתמונה מראה מציאותי. על פי אינטל ה-Larrabee יאפשר ביצוע גרפיקה תוך שימוש בטכנולוגיית Ray Tracing על ידי כך שהארכיטקטורה שלו הופכת כל ליבה ליעילה פי 4.7 ממעבד בטכנולוגית Core 2 Duo לכל מחזור שעון בסוג החישובים הדרוש עבור Ray Tracing.
עבור מפתחי התוכנה עומדות שתי אפשרויות לרתימת כוחו של ה-Larrabee לרצונם. הראשונה והמסורתית, כתיבת קוד שיפעיל את ממשקי ה-DirectX או ה-OpenGL שנתמכים לצורך תאימות לישומים קיימים. אינטל חייבת לפתח תוכנה שתיישם את הממשקים האלה כדי שהכרטיס יהיה מוכן להרצת ישומים קיימים. האפשרות השנייה היא כתיבת ישום שירוץ ישירות על חומרת ה-Larrabee בשפת C/C++. ההבדל כאן מה-CUDA של NVIDIA הוא שניתן לכתוב כל קוד בכל קומפיילר ל-X86 ולא צריך להסתמך על כלי פיתוח יעודיים ותכונות המפותחות על ידי NVIDIA. הקוד פשוט ירוץ על מכונת X86 סטנדרטית שכל מתכנת רגיל אליה.
היות וממשקי ה-DirectX/OpenGL מיושמים בתוכנה אשר צריכה גם לתרגם את הוראות הביצוע ליחידות העיבוד השונות המדמות דרגות לוגיות בכרטיסים גרפיים צפוי שיהי אובדן מסויים של ביצועים בהרצת קוד שכזה. הדרך היעילה ביותר לנצל את משאבי ה-Larrabee תהיה כמובן כתיבת תוכנה שתרוץ עליו באופן ישיר.
מעל חומרת ה-Larrabee קיימת תוכנה µOS שהיא למעשה התוכנה שבאה עם הכרטיס ואחראית לחלוקה אופטימלית של עומס העבודה בין הליבות ולהחלטה איזה מנגנון יופעל על כל ליבה. תוכנה זאת נטענת לזיכרון הכרטיס מהדיסק עם תחילת פעולתו ולכן יכולה להתעדכן לצורך הוספת תכונות ושיפור ביצועים בדיוק כמו דריוור של כרטיס מסך. בנוסף ניתן יהיה כמובן לספק µOS המותאמת ספציפית לישום או משחק מסויים ולטעון אותה בהתאם ובכך לאפשר ביצועים מיטביים עבור אותה תוכנה, מעין פרופיל עבודה המותאם לישום.
למה לצפות?
המגמה הנוכחית היא שמעבדים כלליים הופכים לחזקים יותר ויותר ומצד שני מעבדים גרפיים משתכללים ומקבלים יכולות חישוב לא מבוטלות. בטווח הארוך צפוי שילוב של המגמות לכלל מוצר משולב חזק. מודל התוכנה של ה-Larrabee מפריד אותו באופן ברור מהמתחרים ובעוד המעבדים הגרפיים צוברים אט אט יכולות עיבוד כלליות ה-Larrabee כבר מהווה מעבד כללי לכל דבר המריץ את סט הפקודות של X86. מנהלי ההתקן של ה-Larrabee אמורים להסתיר את העובדה הזאת ממערכת ההפעלה אולם אין כל מניעה שבעתיד יחד עם שינויים קלים, כרטיס כזה יוכל להשתתף בכל המטלות המבוצעות על ידי המחשב.
העתיד כבר כאן |
על אף כי אינטל הציגה ארכיטקטורה בלבד ולא שבב ספציפי, צפוי כי ה-Larrabee הראשוני שיופיע כאמור ב-2009 יכיל 32 ליבות וייוצר בטכנולוגיה הזמינה של 45 ננו-מטר. במהלך 2010 עם העברת הייצור ל-32 ננו-מטר יגדלו מספר הליבות עד 48. אינטל לא גילתה פרטים ספציפיים לגבי המוצרים שצפויים להופיע ולא ידוע עם כמה ליבות בדיוק יופיעו הגרסאות השונות של הכרטיסים, כמה זיכרון הם יכילו, כמה הספק יצרכו וכדומה. כמובן שלא ידוע אם ה-Larrabee, לפחות בגרסתו הראשונה, יהיה מספיק חזק בכדי להתמודד עם כרטיסי המסך של ATI ו-NVIDIA שיהיו קיימים עם השקתו. אולם ללא ספק מדובר בשינוי כוון מרענן שהשוק כולו רק ירוויח ממנו.