שנת 2019 במעבדים – זו לא השנה של אינטל

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

נובמבר 2018 – חברת AMD מכריזה על מעבדי ROME, הדור השני של מעבדי EPYC לשרתים. החברה כינסה את הכתבים והבלוגרים הטכניים ליום עיון טכני, ובסופו של דבר לאחר שהדברים החלו להתפרסם, התברר משהו פשוט אחד: ב-AMD הפיקו מהר מאוד לקחים מהדור הראשון (Naples) והם שינו את הארכיטקטורה (מ-NUMA ל-UMA). החברה עברה בהצלחה מ-14 ננומטר ל-7 ננומטר, והחברה ממשיכה לעבוד בשיטת ה-Chiplets במקום שבב ענק אחד – השיטה שאינטל עובדת (יעברו עוד כמה חודשים עד שאינטל תכריז כי בשבבים עתידיים שלה בעוד שנתיים, גם הם יעברו כ-Chiplets). חברת AMD החליטה לשנות בדרך גם מספר דברים פנימיים מבחינת עיבוד נתונים וגם להגדיר את ה-Cache לגדלים בומבסטיים. בסופו של דבר, כשיצאו המעבדים לשוק ותוצאות המבחנים הראו מעבר לכל ספק שמעבדי EPYC דור שני עוקפים כמעט בכל מבחן את המעבדים של אינטל, כל ספקי הענן הציבורי מיהרו לרכוש וכל יצרני השרתים החלו לקחת את AMD ברצינות והחלו להוציא הן דגמים מעודכנים עם מעבדי EPYC החדשים והן להכריז על משפחות שרתים חדשים שישתמשו במעבדים הללו. מכיוון ששדרוג שרתים נעשה באיטיות ולוקח לשינוי להתרחש במשך שנים בתחום ה-Enterprise, אף אחד לא ציפה ש-AMD תחטוף לאינטל פלח שוק גדול, וגם AMD עצמה הכריזו שהשאיפה שלהם היא להגיע עד 2020 ל-10%, ולפי דיווחים שונים, הם בהחלט בדרך לכך.

האירוניה הגדולה הקשורה לאינטל ולשוק זה – לאינטל יש מענה ל-ROME, והוא נקרא Xeon Platinum 9200, רק שיש מספר בעיות עם המענה הנ"ל:

  • אינטל בראש ובראשונה יעדה אותו אך ורק לשוק ה-HPC. ב-AMD מצהירים בפשטות שמי שרוצה ביצועים גבוהים וכמות ליבות גדולה, ישנם מספר דגמים עם 64 ליבות לרכישה.
  • מערכות השרתים שמריצות את ה-Xeon Platinum 9200 שונות לחלוטין ממערכות שרתים רגילות, הן בחשמל, הן במעבדים והן בתושבת (אין תושבת, המעבדים מולחמים ישירות על הלוח) – מה שלא מאפשר לשום יצרן שרתים לבנות ולמכור מכונות כאלו, זולת יצרנים שמייצרים לוחות אם Custom כמו Supermicro וכו'.
  • התמחור: במחיר של שרת עם מעבד יחיד, תוכל לרכוש שרת עם 2 מעבדי EPYC כשלכל אחד מהם 64 ליבות. עם הפרש מחירים כה גבוה, קשה מאוד לשכנע חברות לרכוש שרתים ועוד ישירות מאינטל (לאינטל אין נסיון רב במכירות שרתים ללקוח הסופי).

משוק השרתים נעבור לשוק ה-HEDT (כלומר: High End Desktop)

תחום ה-HEDT נוצר כתוצאה של תחרות בין אינטל ל-AMD. במקור, אינטל הוציאה סידרת מעבדים חדשה תחת משפחת Skylake, אלו מעבדים שיועדו לכל התחומים, מדסקטופ ועד שרתים. לדסקטופ אינטל הוציאה מספר מעבדים כאשר מקסימום הליבות פר מעבד הוא 4. AMD באותו זמן החלה להוציא פרטים על מעבדים חדשים, משהו שהחברה לא תכננה מראש והם תוצר פנימי של קבוצת מהנדסים שתכננו, הציגו להנהלה, בהנהלה אהבו את זה והחלו לייצר אותם. מהרגע שאינטל שמעה על זה, אינטל נכנסה לפאניקה והחלה לדרוש מיצרני לוחות האם לשנות את הלוחות שאמורים לצאת לשוק כדי לתמוך בכמויות יותר גדולה של PCIe, ולהוסיף תמיכה לסידרת מעבדים חדשה, ה-Skylake X, והכל כמובן היה תחת לחץ אטומי של אינטל לשנות הכל תוך .. 3 חודשים, והתוצאות גם ניכרו בהמשך כאשר לוחות שהחלו לצאת לשוק לא יכלו לתמוך מבחינת VRM וחום במעבדים החדשים. אז בזמן שאינטל הציגה רשימת מעבדים חדשה כשבראשה עומד ה-7980XE, חברת AMD הוציאו את ה-Threadripper עד 16 ליבות במחיר נמוך משמעותי מהמחירים שאינטל ביקשו. מאז החברות הוציאו דור שני למעבדי HEDT, ו-AMD הוציאה גם מעבדי Threadripper עם 32 ליבות.

בשבוע שעבר היתה לסוקרים ולבלוגרים הטכניים שמקבלים מעבדים לסקירה – "הפתעה" לא נעימה: אינטל החליטה להרים את ה-NDA כ-6 שעות לפני שהסוקרים יכלו להציג את מעבדי ה-Threadripper החדשים. ערוצי יוטיוב רציניים כמו Jaytwocents ו-Linus Tech tips די קטלו את אינטל על המהלך הנבזי הנ"ל (אינטל עם המהלך הזה רצתה להשיג סקירות שלא משוות את המעבדים החדשים ובמיוחד את ה-10980XE מול מעבדי ה-Threadripper) ובסופו של דבר רוב הסקירות שיצאו לשוק – די קטלו את המעבד החדש.

המעבד החדש, למרות שהוא מהיר בכ-400 מגהרץ בהשוואה לדור קודם (9980XE) קיבל חלק מתיקוני האבטחה, מה שגורם להאטת ביצועים מול ה-9980XE, כלומר מהירות השעון היא אכן יותר גבוהה, אך הביצועים יותר נמוכים. אינטל גם החליטה לחתוך במחצית את מחיר המעבד בהשוואה ל-9980XE כך שכולם ראו את התאוותנות של אינטל, ואז הגיעה ההשוואה מול מעבדי Threadripper החדשים של AMD (ה-3960X ו-3970X), וכאן – הפתעה: לא רק שה-Threadripper החדשים בועטים ב-10980XE כמעט בכל מבחן, ה-3950X, המעבד שמיועד בכלל לדסקטופ ויש לו "רק" 16 ליבות – גם הוא עוקף במבחנים רבים את ה-10980XE. בקיצור – אינטל נשארו עם עוגה על הפרצוף וההמלצה ברוב הסקירות היא שאם אין לך מערכת קודמת מבוססת X299, עדיף לבחור מהפתרונות של AMD.

שוק תחנות העבודה: הנה שוק שאינטל שולטת בו לחלוטין, והדבר היחיד החדש שהיה בו זה אינטל הוציאה לשוק זה את ה-Xeon W-3275. מעבד עם 28 ליבות במחיר של 4500$. רק לשם השוואה, ה-Threadripper 3970X עולה $2000 והוא "חוגג בסיבובים" ברוב מוחלט של המבחנים סביב המעבד הנ"ל של אינטל.

הגענו לשוק הדסקטופ, וכאן לאינטל השנה לא היה כמעט כלום מה לחדש. הם הוציאו מעבדים עם 8 ליבות שיכולים להגיע למהירות 5 ג'יגהרץ (כל הליבות), והם הוציאו גם כמה מעבדים ללא יחידת עיבוד גרפי פנימי (המבחנים הראו שחבל לרכוש אותם, לא מקבלים ביצועים יותר גבוהים). ב-AMD לעומת זאת "כיסו" עם שורת מעבדים את כל מה שאינטל מציעים, החל ממעבדים 2 ליבות ועד 16 ליבות – שרצים על לוחות אם חדשים וישנים (כל מה שצריך זה לעדכן BIOS) עם מחירים מאוד תחרותיים מול אינטל. המסקנה של רוב הסוקרים היתה פשוטה: אם אתה מחפש לרכוש/לבנות מערכת גיימינג שתתן לך את כל הפריימים עד האחרון שבהם, קח מעבד של אינטל ועדיף את ה-9900KS. אם יש לך צרכים מעורבים (כולל עריכת וידאו, אפקטים וכו'), תסתכל על ההצעות של AMD.

לסיכום: ל-AMD אין משאבים כמו שיש לאינטל, והשמועות על פלטפורמת Zen-2 (שכל המעבדים החדשים מתבססים עליה) החלו עוד באפריל 2018 ואני בטוח שאינטל ידעה הרבה יותר מהציבור, ובכל זאת, במהלך שנה וחצי, אינטל לא הוציאו שום מעבד תחרותי. אני פשוט המום מכך שחברה בשווי שוק של 254 מיליארד דולר לא מצליחה להוציא מעבדים תחרותיים בשעה שהמתחרה הקטנה שלה מצליחה לפתח ארכיקטורות חדשות (ה-Zen-3 שיצא בשנה הבאה היא הארכיטקטורה השלישית -AMD תוציא והיא מכוונת לנקודות החזקות של אינטל: Floating Point ו-IPC, ועוד כמה דברים). אני מאמין שאינטל תתעשת ותוציא ארכיטקטורות ומעבדים חדשים ויותר חזקים, אבל איך זה קורה ששנה וחצי אין שום התפתחות אצלם?

כשצריך הגנות על מכונות וירטואליות

מדי פעם יוצא לי לשוחח עם אנשים שאחראים על סביבות שמצריכים סיווג בטחוני גבוה ואותם אנשים מחפשים תמיד את השלב הבא בהגנה על התשתית של החברה שלהם. אחד הדברים שהם הכי חוששים מהם זה "פריצה פנימית": איך ניתן למישהו שמנהל תשתיות וירטואליזציה לנהל את כל המערכת אך לא לאפשר לו "להציץ" דרך כלים שונים – בתוך אותן מכונות VM שרצות, גם כאשר אותו איש תשתיות יש לו root למכונה הפיזית. (שימו לב: אני לא מדבר על ביצוע ssh לתוך מכונת VM, אלא להריץ סקריפט/כלי ברמת ה-Hypervisor כדי "לחקור" מכונת VM)

הבעיה אמיתית יותר בסביבות חיצוניות: נניח ויש לנו VM שאנחנו רוצים להריץ אותו בענן ציבורי או אצל כל ספק מקומי על תשתית ה-Hypervisor שלו. גם אם נאבטח וננעל את ה-VM עצמו מבפנים, תמיד יהיה חשש שמישהו בעל הרשאות root יוכל להריץ כלים כדי לאבחן את ה-VM מבחינת דברים שהוא מריץ (סריקת זכרון וכו'). אפשר כמובן לשכור שרת פיזי ולהריץ את ה-VM עליו, אך זה סיפור יותר יקר וגם שם יש בעיות אבטחה אחרות.

אינטל בזמנו פיתחה את ה-SGX, שזו מערכת שמאפשרת לנו ליצור איזור מאובטח שעליו ירוץ קוד בצורה מוצפנת כך שגם מנהל Hypervisor עם תוכנות זדוניות לא יוכל לסרוק את אותו זכרון ולמצוא מה רץ. ה-SGX עצמו כבר נפרץ (אינטל הוציאה תיקון), אבל בכל מקרה הפתרון עצמו היה בעייתי עוד מלכתחילה: האפליקציה המוצפנת היתה צריכה להיות מאוד קטנה (עד 64 מגהבייט זכרון), והביצועים (במיוחד ה-Floating Point) היו, איך נאמר בעדינות … לא משהו להתגאות בו. ב-VMWare לא רצו לנגוע בזה גם עם מקל ארוך.

ואז הגיעה חברת AMD ובשנת 2017 היא פירסמה על תוספות חדשות שיהיו זמינים במעבדים שלה לשרתים (EPYC) ובמעבדים לצרכים מקצועיים (Ryzen Pro): התוספות הן SEV ו-SME (והתוספת החדשה: SEV-ES – להצפין גם רגיסטרים במעבד שמשומשים ע"י אותו VM מוצפן). ה-SEV איפשר להצפין את מכונת ה-VM עם מפתח יחודי שמגיע מתוך מעבד ARM שנמצא במעבד EPYC (כן, מעבד בתוך מעבד) ו-SME שמצפין את הזכרון של ה-VM.

היתרונות של SEV ו-SME הם בכך ש:

  1. אין צורך לעשות שינויים מהותיים ב-VM (רק להחליף Kernel לאחד שתומך ב-SME/SEV)
  2. ההצפנה היא ברמת חומרה, כך שה"קנס" ברמת ביצועים הוא מאוד מינימלי
  3. המפתחות הם יחודיים ולכל VM יש מפתח משלו שמונפק ע"י המעבד. ניתן להנפיק עד 105 מפתחות (כל VM מקבל מפתח אחד, כך שאפשר להריץ עד 105 מכונות VM מוצפנות בשרת עם מעבד EPYC יחיד או 210 בשרת עם שני מעבדי EPYC).

החסרונות:

  1. אי אפשר להצפין מכונות Windows, לפחות עד שמיקרוסופט לא תוסיף את תמיכת ההצפנה ל-OS עצמו.
  2. VMware בשלב זה אינה תומכת בפונקציות אלו מ-AMD או אינטל (תיכף ארחיב על הפתרון של אינטל) – זה יתווסף בגירסה 6.8 או 7.0 ולכן אם אתם צריכים זאת עכשיו, תצטרכו לעבור ל-KVM או על אחת הפלטפורמות שמבוססות על KVM (בכל מקרה יש צורך לבצע את ההחלפת Kernel).

באינטל ראו את הפתרון של AMD והחליטו שגם הם יוציאו משהו דומה: תכירו את TME (כלומר Total Memory Encryption) ואת MKTME (כלומר: Multi Key Total Memory Encryption). אפשר לקרוא על הפתרון הזה בקצרה כאן, אך אני יאמר מראש: אל תבנו על הפתרון הזה, הוא לא זמין באף מעבד נוכחי.

מכיוון שגם אינטל וגם AMD הולכים באותו כיוון (רק של-AMD יש פתרון שאפשר להשתמש בו כיום), אפשר לאמר על הפתרון את הדברים הבאים:

  • כן, הפתרון רץ אך על מנת להשתמש בו, יש צורך בידע טוב בלינוקס. אם צריכים את הפתרון ל"מחר בבוקר" – תצטרכו לבצע שינויים הן ברמת ה-HyperVisor והן ברמת ה-VM.
  • הפתרון אינו מבטיח הגנות נגד דברים אחרים כמו Side Memory Attack, DDoS.
  • הפתרון הוא יחסית צעיר (ב-AMD פיתחו אותו בכלל עבור הגנת הקונסולות של סוני ומיקרוסופט ואז החליטו שזה רעיון מעולה להעביר אותו למעבדים לשרתים) ולפיכך מתגלים בו באגים (ו-AMD משחררת קושחות לתיקון).
  • כיום הפתרון של AMD נמצא בשימוש בשרתים החדשים (דור 10) של HPE שמבוססים על מעבדי EPYC (כלומר DL325 ו-DL385) בשילוב ה-Root of Trust של HPE והחברה (HPE) טוענת שזה הפתרון הכי מאובטח שיש להם להציע לשוק.
  • זה לא לפרודקשן אם ה-VM שלכם צריך לרוץ בחוץ או ה-Hypervisor שלכם מחובר לאינטרנט (יש לא מעט כאלו).

עוד השוואות בין הפתרונות ניתן לראות במצגת הבאה ובמצגת הזו (החור שמוזכר שם, אגב, בשלבי תיקון).

לסיכום: השיטה ש-AMD מציגה על מנת להגן על מכונות VM נגד האזנה למכונות VM היא שיטה טובה מאוד (ובגלל זה אינטל גם מעתיקים אותה), אך זהו פתרון חדש, וככזה הוא יכול להתאים למאמצים מוקדמים (Early Adopters) עם ידע בלינוקס. אני מאמין שבעוד שנה, הפתרון יתבגר יותר ובמקביל נראה הצעות מספקי ענן ציבורי לשכור Instances שיתמכו ב-SEV/SME, כך שה-Instances שלכם יהיו מוצפנים מספיק טוב בכדי לא לאפשר (באופן עקרוני) לגורמים זרים שיש להם גישה לברזל – לחטט בזכרון של ה-VM שלכם.

ה"היצמדות" ל-CUDA והעתיד

כפרילאנסר, אני מציע שרות שלא מעט חברות ועסקים זקוקים לו בהתחלה – והוא קשור ל-CUDA, הדרייבר של nVidia, והשבב הגרפי הפנימי שנמצאים במעבדים של אינטל (בתחנות עבודה). הצירוף של ה-GPU המובנה במעבד של אינטל וה-GPU של Nvidia לא תמיד יודעים "לעבוד" יחד, במיוחד בכל מה שקשור ל-OpenGL ו-Xorg וצריך לדעת איך "לפשר" ביניהם. מעבר לכך, ה-CUDA של Nvidia יכול לעבוד רק מגרסאות מסויימות בכרטיסי ה-GPU החדשים של NVidia כמו Tesla מסידרה T. כתוצאה מכך אני עוקב בזמני הפנוי אחרי גרסאות CUDA, דרייברים הן של אינטל והן של Nvidia.

מבחינת השוק כיום – בין אם מדובר בסטארטאפים, עצמאים וחברות שעובדים בתחומים הקשורים ל-AI, Deep learning וכו', כרטיסי ה-GPU המועדפים בצורה חד משמעית הם הכרטיסים של NVidia וכמובן הכל הולך לפי התקציב: למי שאין תקציב, רוכש כרטיסי RTX (כרטיסי ה-GTX כבר "מתו"), ולמי שיש תקציב – רוכש כרטיסי Tesla או Quadro. כשזה מגיע לשרתים, ההמלצה החד משמעית היא כרטיסי Tesla הואיל והאיוורור שיש בשרתים אינו מתאים לכרטיסי RTX (זה יעבוד, אבל הכרטיס יוריד עצמאית את מהירות העיבוד בצורה דרסטית בהתאם לטמפרטורות בכרטיס).

כתוצאה מכך, כל פלטפורמות הפיתוח (TensorFlow, Caffe וכו' וכו') תומכות בצורה מלאה ב-CUDA, כמו שהן תומכות בכרטיסי GPU אחרים (אם אין לך GPU של NVidia, אין שום בעיה לעבוד עם כרטיס GPU אחר, או עם ה-GPU המובנה או עם המעבד עצמו – הביצועים יהיו בהתאם). אם ביצועי GPU יחיד של NVidia אינם מספקים אותך (ורכשת כרטיס RTX 2080 ומעלה), תוכל להוסיף GPU נוסף (ויותר) ולחבר ביניהם עם מחבר NVLink שנמצא בחלק העליון של הכרטיס. פלטפורמת CUDA יודעת לזהות מיידית את הכרטיס ולחלק את העבודה ביניהם, תוך כדי שהיא נותנת "ציון" לכל GPU ובהתאם לכך היא מחלקת את העומסים.

כשזה מגיע לעננים ציבוריים, התמונה משתנה במעט. אם אתם משתמשים בעננים של אמזון או מיקרוסופט, אתם יכולים לשכור Instance הכולל GPU של Nvidia (מיקרוסופט מאפשרת כיום גם לשכור GPU של AMD, תיכף אתייחס לכך) ואילו גוגל מציעה ללקוחותיה לשכור Instance עם GPU של NVidia או עם פתרון משלהם שנקרא TPU (שנותן ביצועים שאינם נמוכים ממה ש-NVidia יכולה להציע גם עם הכרטיס הכי חזק שלה).

כאן מתחיל העניין שנקרא תחרות, ואת התחרות מייצג פתרון שנקרא OpenCL. פתרון OpenCL זקוק למימוש בדרייבר עצמו וכל יצרן (כולל NVidia) כותב זאת ומציע זאת ללקוחותיו. היתרון המוחץ של OpenCL על CUDA, הוא בכך שהוא מזכיר את OpenGL ו-DirectX – אתה יכול להשתמש באיזה GPU שתרצה, ובהתאם למימוש בדרייבר – התוצאות יהיו בהתאם. גם ה-TPU של גוגל וגם הפתרון GPU של AMD משתמשים ב-OpenCL במימושים שונים על מנת לאפשר למפתחים ולפלטפורמות את תמיכת ה-OpenCL שהן דורשות. (למעוניינים, להלן לינק המשווה בין OpenCL לבין CUDA. מי שמחפש את הגירסה המקוצרת: CUDA = פתרון סגור, OpenCL = פתרון פתוח לחלוטין שנתמך בכל GPU)

וכאן מגיע עניין חשוב שנקרא תחרות. נכון, NVidia שולטת כרגע בתחום ה-AI, DL, אולם מתחת לפני השטח דברים משתנים בקצב מאוד מהיר, להלן מספר מוצרים מתחרים:

  • אינטל הכריזה לאחרונה על שני פתרונות ל-AI (גאווה ישראלית: הם פותחו כאן בארץ). הפתרונות הללו לא רק תומכים ב-OpenCL אלא במגוון פלטפורמות וכמיטב המסורת של אינטל בקטע הזה, הכל בקוד פתוח. זהו הכרטיס הראשון ל-AI ו-DL שמשתמש ב-PCIe 4 X16. הקטע האירוני: בשביל להשתמש בכל רוחב הפס, תצטרך כיום .. מעבד ולוח של AMD..
  • עוד פתרון חומרה כחול לבן הוא של חברת Habana שמציעים את GOYA ככרטיס למחשב ושרת, ואת GAUDI כפתרון כחלק ממערכת מלאה (כרטיס יעודי). גם כאן, יש תמיכה מלאה ל-OpenCL ומגוון פלטפורמות AI ו-DL.
  • עוד פתרון מגיע מסין מחברה מאוד ידועה – Huawei, אם כי בניגוד לשאר, החברה הציגה מעבד בלבד (כלומר לא פתרון קצר) בשם Ascend 910 שהחברה טוענת שהוא מעבד ה-AI הכי מהיר בעולם.
  • ל-AMD יש כרגע את כרטיסי ה-GPU מסידרת Instinct ל-AI ו-DL. החברה מתעתדת בחודשים הקרובים להכריז על הדור הבא.
  • אינטל (כן, שוב) – מתעתדת בשנה הקרובה להוציא משפחת כרטיסי GPU חדשים שתתחרה הן ב-GPU הרגילים של NVidia ו-AMD והן GPU למטרות AI ו-DL – הם יהיו תחת משפחה בשם "Xe".

רוב המוצרים שתיארתי יתקשו להיכנס לשוק, למעט הפתרונות של אינטל. לאינטל יש כח שיווק אדיר ולכן חברות גדולות צריכות לצפות ל"הצפה שיווקית" מאינטל עם מחירים תחרותיים מאוד. מכיוון שאינטל אינה תומכת ב-CUDA, ותרצו להכניס את הפתרונות שלה, כדאי שתבדקו אם הפתרונות של אינטל יריצו את האפליקציות שלכם (כיום לפחות אינטל מכסה את הרוב המוחלט).

דבר שחשוב לדעת: שוק פתרונות החומרה ל-DL, AI מתחיל להשתנות ולפצל דברים ל-2: יש את פתרונות ה-Training (כלומר – הדברים שרצים אצלכם בחברה – אתם "מזינים" אלפי תמונות/וידאו וכו' ומאמנים את המערכת) ויש את החלק של Inference שצריך להתמודד עם העולם האמיתי, והחלק של ה-Inference אמור לכלול פתרון יעודי (כרטיס מיוחד או חלק מלוח אם) שישולב בפתרון החומרה שיותקן אצל הלקוח.

עוד נקודה חשובה: ישנם כל מיני אנשים שממליצים לבצע את ה-Inference על מעבדים. אם אתם רוצים לעשות זאת על מעבדים, קחו את המעבדי EPYC החדשים של AMD – גם תחסכו 40-70% במחיר (תלוי בכמות הליבות) ותוכלו לבחור מעבד עם עד 64 ליבות או 2 מעבדים עם 128 ליבות (שימו לב: אתם צריכים את הסידרה החדשה 7XX2, לא את הישנה 7XX1).

לסיכום: כמו תמיד, אינני ממליץ לשים את כל הביצים בסל אחד. כן, הפתרון של NVidia הוא פתרון מעולה אך הוא פתרון סגור שרץ רק על הכרטיסים של Nvidia. אם אתם מפתחים פלטפורמה או קוד בפלטפורמה או אפליקציה משלכם, תבדקו אם היא עובדת עם OpenCL. אחרי הכל – אינכם יודעים מה הלקוח שלכם ירצה להריץ וחבל למצוא את עצמכם בדקה ה-90 מציעים פתרון שלא יכול לרוץ בתשתית של הלקוח. השוק ישתנה ב-2020 ועוד יותר ב-2021 (לכל החברות "נפתחו העיניים" וכולם רוצים את הרווחים המאוד נאים ממכירות כרטיסים ופתרונות כאלו).

מעבדי EPYC דור שני – סקירה

אני רוצה לפתוח את הפוסט עם סיפור קצר "מאחורי הקלעים".

תכננתי זמן רב לכתוב את הפוסט הזה ולשחרר אותו היום (לאחר שהסתיים האמברגו אתמול) על המעבדים החדשים של AMD לשרתים, מעבדי EPYC דור שני (סידרה 7002) ולהשוות אותם למעבדים הנוכחיים של אינטל שמגיעים עם עד 56 ליבות במעבד. מהנדסי אינטל עשו עבודה מצויינת והמעבדים עם 40 או 56 ליבות יכולים לתת "פייט" מצוין למעבדי EPYC דור שני של AMD, אבל קרה מה שקורה לפעמים בחברות גדולות – בהנהלה באינטל "נפתח התאבון" והם החליטו שמעבדים בסידרה 92XX יהיו שונים פיזית ממעבדי Xeon Scalable האחרים. אם תיקחו מעבד כזה ותהפכו אותו, לא תמצאו פינים או ריבועי זהב קטנטנים. אתם תמצאו כדורים או מה שנקרא בשפה המקצועית BGA (כלומר Ball Grid Array), ובמילים אחרות – המעבדים הללו חייבים להיות מולחמים ללוח אם. בנוסף, אינטל החליטו שיצרן המעוניין לרכוש מעבדים כאלו ומעוניין לשלב אותם בשרתים – יצטרך גם לרכוש מאינטל עוד כמה שבבים והם מחוייבים להיות מוטמעים בשרתים ומה לעשות – אותם שבבים מתחרים בדיוק במה שהיצרנים מוכרים מבחינת ניהול – iDrac, iLO וכו'.

כך שכיום – גם אם יש לכם כסף, מערכות X86 הכוללים מעבדים עם יותר מ-28 ליבות –  לא תוכלו לרכוש כי אף יצרן לא מוכן לתנאים הללו. באינטל הבינו את השגיאה הפטאלית רק לפני מס' חודשים והיא תתוקן ב-2020 עם המשפחה החדשה Ice Lake AP.

בקיצור – AMD צריכים לשלוח פרחים ואולי עוגה עם שלט גדול של "תודה" לאינטל.

המעבדים החדשים של AMD – סידרה 7002 הם מעבדים שרבים מאוד בתעשיות השונות חיכו להם. מעבדי EPYC דור ראשון (סידרה 7001) היוו כניסה מחדש של AMD לתחום השרתים לאחר ש-AMD שחררה לפני יותר מעשור את מעבדי ה-Opteron שהיו מאכזבים בכל תחום למעט המחיר ואינטל לא היו צריכים להתאמץ יותר מדי בכדי לכבוש 99% מהשוק מאז 2006. ל-AMD לא היו שום פתרונות עם שהם פיתחו את ארכיטקטורת ZEN וגם כש-AMD הוציאו את ה-EPYC דור ראשון, לאותם מעבדים היה יתרון בהרצת מכונות וירטואליות, פתרונות VDI וקונטיינרים, אבל כשזה מגיע להרצת אפליקציות גדולות ופלטפורמות פיתוח על כל המעבדים בשרת (ללא וירטואליזציה) – אינטל ניצחה מבחינת ביצועים כמעט בכל קטגוריה.

בדור שני של ארכיטקטורת ZEN, ה-ZEN-2, הפיקו ב-AMD לקחים רבים ובאותה הזדמנות החליטו לשנות הכל. ה-EPYC סידרה 7002 זו ארכיטקטורה שונה לחלוטין מהדור הראשון, לא רק בתוספות ש-AMD הוסיפו, אלא גם בתכנון עצמו. בדור הראשון של EPYC היו בעצם 4 מעבדים שיצרו תצורת NUMA שהצריכו הגדרות וכיוונונים שונים על מנת לקבל ביצועים טובים וגם אז – היה Latency לא קטן עקב התצורה. בדור השני לעומת זאת, ישנו Chiplet מרכזי גדול (כפי שאתם יכולים לראות בתמונה לעיל) שאחראי לכל ה-I/O וכל שבבי הליבות "מדברים" דרכו בלבד, מה שחוסך בצורה ניכרת את ה-Latency. ככלל, תצורת המעבדים הללו (כמו גם מעבדי ה-Ryzen ש-AMD שחררו ומעבדי ה-Threadripper שישוחררו כנראה בחודש הבא) היא תצורה חדשה ושונה לחלוטין ממה שאינטל מתכננים ומייצרים מעבדים – וזה גם הכיוון שאינטל יעברו אליו במהלך השנה שנתיים הקרובות. חברה קטנה כמו AMD מקדימה את אינטל הענקית. כמה מרענן לראות זאת.

כפי שכתבתי, יצרניות רבות של שרתים, ספקי הענן הציבורי, יצרנים תעשייתיים של ציוד לשרתים וכו' חיכו ל-EPYC החדש מהסיבה הפשוטה שסוף סוף אפשר להתחיל מאפס עם טכנולוגיות יותר מתקדמות ממה שאינטל מציעה. עם 128 נתיבי PCIe אפשר לבנות דברים מדהימים ללא צורך ברכיבי מיתוג סופר-יקרים ליצרן (שמגלגל זאת כמובן ללקוח הסופי), אפשר להשתמש בזכרון יותר מהיר (3200 מגהרץ), אפשר לקבל תקשורת יותר מהירה כי כמעט כל תושבות ה-PCIe הם PCIe 4.0 עם רוחב פס של 16 ג'יגהבייט לשניה (כפול מ-PCIe 3.0), אפשר להכניס הרבה יותר דיסקים SSD NVME (לנובו בהחלט "משתוללים" בקטע הזה עם השרתים מבוססי EPYC שהם מציעים החל משבוע הבא. צפו בוידאו הזה), יש מעבדים עם עד 64 ליבות, יש זכרון מסמון בגודל 256 מגהבייט, ועוד ועוד. מי שרוצה את "רשימת המכולת" מוזמן לעיין בפוסט הארוך ש-STH שחררו כאן.

להלן טבלה שמראה את ההבדלים בין הדור השני של Xeon Scalable מבית אינטל ל-EPYC דור שני מבית AMD:

אחת השאלות שכמובן מיד עולה היא: איך הביצועים? וכאן AMD מפתיעה. ברוב מוחלט של המבחנים מעבדי ה-EPYC פשוט עוקפים את המעבדים בקצה הגבוה (28 ליבות) של אינטל עם 50-90% ביצועים יותר מהירים, גם כשלאינטל יש יתרון כמו AVX512 – מעבדי EPYC עוקפים זאת (ע"י שימוש ברוחב פס כפול לתעבורת פקודות) ובמילים אחרים – לא חשוב מה ה-Work Load שאתה צריך להריץ, אם אתה חושב לרכוש ברזלים חדשים או לקחת Instances אצל ספק ענן ציבורי – כדאי מאוד להסתכל על מכונות המכילות את מעבדי EPYC החדשים. אגב, מיקרוסופט וגוגל הכריזו כי ניתן כבר מהיום לשכור Instances מבוססי EPYC דור שני. באמזון אם הבנתי נכון, זה יוצע בחודש הבא.

ומה בנוגע למחיר?

ובכן, בקצה הגבוה של מעבדי אינטל מהסידרה 9200 (כן, אלו שאי אפשר לרכוש כרגע מהיצרנים הפופולריים) אינטל דורשת לבלב, ריאה או משכנתא קטנה. מעבד בקצה הכי גבוה – Xeon 9282 עם 56 ליבות, מתחיל במחיר של $25000 (המחיר כמובן הוא לא מחיר ללקוח סופי, אלא ליצרן שרתים, אז המספר יעלה). לעומת זאת, המעבד בקצה הכי גבוה של AMD, ה-EPYC 7742 עם 64 ליבות עולה פחות משליש – ב-AMD מסתפקים ב-$6950.

ככלל, המשוואה ש-AMD מציעה היא פשוטה: תחליט כמה ליבות פר מעבד אתה צריך במעבדים של המתחרים. יש לך מספר? יפה. תוסיף בערך 100-150$ ותקבל כמות ליבות כפולה ובאותה הזדמנות יש מצב שלא תצטרך שרת עם 2 מעבדים אם אתה רוכש מעבד מבוסס EPYC דור שני.

יתרון גדול נוסף ללקוח הסופי הוא מבחינת רישוי. AMD מציעה לך מעבדים עם עד 64 ליבות ואם אתה משתמש בוירטואליזציה של VMWare, אז אתה חוסך 50% פר שרת במחיר הרישוי.

מבחינת זמינות שרתים לרכישה, אלו השרתים הזמינים כיום ובקרוב. חשוב לשים לב אלו מעבדים אתם בוחרים, המעבדים החדשים מתחילים במספר 77 ומסתיימים ב-2. לדוגמא: 7742.

  • HPE – מציעים את ה-DL325, DL385 ו-Apollo 35. את השרתים הללו ניתן לרכוש כבר כיום עם מעבדי EPYC דור ראשון או שני (יש תאימות אחורה). HPE הכריזו כי במהלך 2019-2020 הם יוציאו עוד 9 דגמים של שרתים מבוססי EPYC דור שני. השרתים המוצעים כיום הם עם PCIe 3.0 ולא עם PCIe 4.0.
  • DELL מציעים את שרתי R7425, R7415, R6415. את כל השרתים הללו ניתן לרכוש עם מעבדים דור קודם או נוכחי. בחודש ספטמבר DELL יציגו שרתים חדשים ובמהלך השנה הבאה יוצגו עוד 6 שרתים מבוססי EPYC דור שני.
  • LENOVO מציעים את SR635 ו-SR655. לנובו הם היחידים שמציעים החל משבוע הבא שרתים עם לוח אם שתוכנן מאפס למעבדי דור EPYC דור שני. גם לנובו יציעו החל מתחילת הבאה עוד מספר דגמי שרתים מבוססי EPYC דור שני.
  • Supermicro – החברה מציעה כרגע 4 שרתים דור 12 (H12) שניתן לראות כאן (נכון לכתיבת שורות אלו יש להם כמה בעיות באתר) כאשר Supermicro דוחפת יותר לכיוון ה-Twin (כלומר 2 שרתים במארז 2U).
  • Gigabyte – החברה החליטה להוציא לא פחות מ-13 שרתים מבוססי EPYC דור שני (די מדהים, בהתחשב שבדור הקודם של EPYC היו לחברה .. רק 2 שרתים להציע). אתם יכולים לראות את הרשימה כולה כאן.
  • TYAN (יש להם נציג בארץ?) – מציגים 6 שרתים ו-2 לוחות אם (לבנייה ואינטגרציה). הרשימה – כאן.
  • ASUS – בעת כתיבת שורות אלו, החברה הכריזה על שרתים חדשים (E10) ולוחות אם מבוססי EPYC דור שני. האתר עצמו עדיין לא מכיל את רשימת השרתים, סביר להניח שזה יעודכן היום או מחר.

לסיכום: אם אתם הולכים לרכוש שרתים בקרוב, סביר להניח שתיתקלו בשם "EPYC" מכאן ועד הודעה חדשה מצד כל יצרן שרתים. מבחינת ביצועים – מדובר בשיפור מאוד שנותן ביצועים יותר גבוהים בהשוואה למה שאינטל נותנת ומבחינת המחיר, מדובר בהנחה משמעותית מאוד בהשוואה לכל ה-SKU של אינטל. לאינטל יש מענה למעבדים הללו, אבל המענה (Ice Lake לשרתים) יצא רק בשנה הבאה – בערך באותו זמן ש-AMD תוציא את EPYC דור שלישי (Milan).

עכשיו אחרי ש-AMD הוציאו את EPYC, החברה הולכת לשחרר כנראה בחודש הבא את Threadripper דור שלישי שיהיה שונה משמעותית מהדורות הקודמים והוא מיועד לתחנות עבודה ועל כך אכתוב בפוסט אחר.

למעוניינים, להלן כמה קטעי וידאו שיכולים לעניין אתכם מבחינת ביצועים:

הראשון – מבחן ביצועים VMMark של VMWare:

השני – קונטיינרים (מבוססי Docker):

האם ה-Nvidia Grid עדיין רלוונטי?

כל מי שמתכנן וכל מי שהתחיל לעבוד עם מכונות וירטואליות בתצורת VDI בוודאי שמע ומכיר את ה-Grid של nvidia. פתרון ה-Grid מבוסס על מספר חלקים כמו ה-GPU, שרת רשיונות וכמובן חלקים נוספים הקשורים לפתרון ה-VDI עצמו בשרת וב-Client.

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

הבעיה קשורה יותר לכסף. בעבר הרחוק היית רוכש את פתרון התוכנה, את כרטיסי ה-GPU, מגדיר את הדברים ומתחיל לתת לעובדים שלך לעבוד, אבל כיום הדברים כרוכים בתשלום חודשי, והדברים מגיעים לכך שבחישובים של תשלום ל-3 שנים לדוגמא, עדיף לרכוש את הפתרונות של AMD המתחרה. שם אין תשלום חודשי והביצועים אינם פוחתים בהשוואה למה ש-nvidia נותנת, כולל פתרונות הדורשים OpenGL או DirectX 11/12 לעבודה, ויש תמיכה מלאה בפרוטוקולי Client של VMWare, של Citrix ושל מיקרוסופט.

אחד הנושאים שעולים לאחרונה בכל הקשור ל-Virtual GPU/Grid ותמיכה – קשור ל-AI ו-Deep learning. יותר ויותר חברות גדולות מגלות פלטפורמות כמו Tensor Flow או Caffe ומעוניינים לרתום את תשתית ה-Grid שלהם לשימוש עם אותם פלטפורמות.

טכנית – זה בחלט אפשרי. אם לדוגמא עובדים עם CUDA – אז אין שום בעיה להריץ/לאמן/לקמפל קוד גם על מעבד גרפי סופר פשוט שקיים במחשב נייד, ובוודאי שעל Virtual GPU אם הוא קיים על מכונות וירטואליות. האם זה יעבוד? כן.

אבל מבחינת ביצועים – כל כרטיסי ה-GPU מסידרה K,M,P במשפחת ה-GRID או Tesla או Quadro לא יתנו ביצועים גבוהים, במיוחד אם משתמשים בכרטיסים אלו לצרכי VDI – או אז במקרים כאלו המכונה מקבלת רק חלק קטן מה-GPU והביצועים .. בהתאם. כרטיסי Tesla או Quadro מסידרה V או T הרבה יותר מתאימים ליישומים אלו, אולם אם מדובר בכמות עבודה רצינית שאינה חד פעמית, אני ממליץ לנטוש מערכת GRID ולרכוש שרתים שיכולים להכיל מספר כרטיסי GPU ואז למפות מספר כרטיסים למכונה וירטואלית או מיפוי 1:1 בין GPU למכונה וירטואלית. יש כמובן גם אפשרות לרכוש כרטיסי RTX אולם כרטיסים אלו אינם מתאימים כל כך לשרתים הואיל והאיוורור שלהם הוא מהצד (Blower) ובמקרים רבים השרתים אינם בנויים לאיוורור כרטיסי GPU מהצד אלא מאחור.

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

לסיכום: אם אצלכם בחברה חושבים להשתמש/לפתח בתחומי ה-AI או ה-Deep Learning, כדאי לחשוב על הנקודות שצוינו בפוסט זה. פתרונות ישנים לא תמיד מתאימים ולמרות הפתרונות של Nvidia – היא אינה השחקן היחיד בשוק ואין צורך לוותר על תאימות פלטפורמות כדי לעבוד לכרטיסי GPU אחרים או ל-OpenCL.

מעבדי הדסקטופ החדשים של AMD

ביום ראשון, ה-7/7/2019, חברת AMD תשחרר רשמית את מעבדי הדסקטופ החדשים שלה במשפחת ה-Ryzen 3000. זה יהיה דור שלישי למשפחת ה-Zen (הראשון היה Zen, השני היה +Zen והשלישי Zen 2).

הדור החדש של מעבדי הדסקטופ מבית AMD מציג משהו שונה ומרענן: לראשונה, המעבדים של AMD נותנים ביצועים שאינם נופלים מהמעבדים של המתחרה המובילה, אינטל, לא רק באפליקציות המשתמשות ב-Multi Threaded (דבר ש-AMD ניצחה את אינטל עוד בדור השני בהשוואה למעבדים שאינטל הוציאה באותה תקופה) אלא גם לראשונה ב-Single Threaded, וגם הפעם מבחינת תמחור, AMD מציגה מחירים זולים בהרבה בהשוואה למה שאינטל מבקשים (מה שכמובן גורר כרגע הודעות בחדשות הטכנולוגיות שאינטל הולכת לחתוך את המחירים ב-עד 15%. אינטל כמובן לא מוכרת למשתמש הקצה כך שההנחה בסופו של דבר תגיע אולי ל-3-4%).

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

  • תאימות אחורה: אינטל שוברת תאימות מבחינת תושבת מעבד – על ימין ועל שמאל. רוצה מעבד חדש? קנה בדרך גם לוח חדש. ב-AMD לעומת זאת עדיין עובדים עם תושבת ה-AM4 הידועה, ויש סיכוי גבוה שאם יש לך מערכת AMD עם תושבת AM4 ואתה מעוניין לשדרג למעבד עם 4-8 ליבות, תצטרך פשוט לשדרג BIOS, להחליף מעבד (ואת המאוורר – הוא כלול באריזה), להפעיל את המחשב ולהנות, גם אם המחשב שלך בן 3 שנים. ישנם מעבדים ל-AMD שממש לא מומלץ להריץ על לוחות ישנים (מעבדים עם 12 או 16 ליבות) עקב בעיות VRM, אבל רוב האנשים לא מחפשים לרכוש מעבדים כאלו.
  • מחשבה קדימה: AMD היא הראשונה לתמוך רשמית ב-PCIe 4.0 והלוחות אם החדשים שיצאו באותו תאריך כוללים את התמיכה הזו (ולפיכך מחירי לוחות האם יהיו יותר יקרים מבעבר). שוב, זה לא ממש רלוונטי לאלו שרוכשים מחשבים עבור הרצת משחקים, אבל אם צריך ביצועים יותר גבוהים מבחינת SSD NVME לדוגמא, היא שם. גם מבחינת חיבוריות חיצונית יש תמיכה לסטנדרט האחרון של USB (הכוונה ל-USB 3.1 Gen 2) ללא צורך בשבב נוסף על לוח האם.
  • חסכון בחשמל: ב-AMD עברו לתהליך יצור של 7 ננומטר, מה שמוריד את צריכת החשמל ואכן המעבדים החדשים צורכים פחות – במעבדים בקצה הנמוך, וכך מעבדים זהים מדור קודם של AMD שהצריכו 105 וואט מינימום – יורדים בדור החדש ל-65 וואט.

עם המעבדים החדשים נוצרות הזדמנויות חדשות ליצרני תכנים שמעוניינים בביצועים גבוהים מצד אחד, אך לא מעוניינים להוציא $1600 על מעבד 16 ליבות בקצה הכי גבוה (בהשוואה ל-AMD). מעבד כמו Ryzen 9 3950X יעלה לך .. 750$ (ואם יש לך לוח X470 קודם מהקצה הגבוה, לא תצטרך להחליף אותו, יספיק שדרוג BIOS, כל עוד אינך מבצע Overclocking). במבחנים ש-AMD פרסמה, כל תוכנות העריכה הפופולריות רצות יותר מהר על המעבדים של AMD בהשוואה למתחרים באותה כמות ליבות מבית אינטל.

לסיכום: משפחת ה-Ryzen 3000 עם ארכטיקטורת Zen 2 הם המעבדים הראשונים ש-AMD מוציאה אחרי 3 שנות עבודה על המעבדים הללו. החלק הבא יהיה קשור לשרתים, דור שני של משפחת מעבדי EPYC עם מעבדים הכוללים עד 64 ליבות במחיר זול בהרבה ממה שאינטל מבקשים ואחריו, לקראת סוף השנה, AMD תוציא את "המפלצות" – מעבדי Threadripper שמיועדים ליוצרי תכנים כבדים, תחנות עבודה וכו' ולפי השמועות – יצא גם מעבד Threadripper עם 64 ליבות (אם כי עם 4 ערוצי זכרון, בניגוד לאחיו הגדול EPYC שתומך ב-8 ערוצי זכרון).

הטעות הנפוצה לגבי מהירות המעבד

אחת השאלות שאני קורא בפורומים שונים קשורה למהירות מעבדים של שרתים. לא מעט אנשים מגיעים עם ידע כלשהו לגבי מעבדים בדסקטופ ומצפים שמה שכתוב על המעבד – יתרחש במציאות. שאלה נפוצה: איך אני יכול לגרום למעבדי X שיש בשרתים שלי לרוץ במהירות המקסימלית הרשמית.

התשובה הפשוטה: אתה לא ממש יכול לעשות זאת, לפחות לא מה שאתה חושב שיצא.

ברשותכם, אסביר.

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

ב-Xeon לעומת זאת, אינטל עדיין ממשיכה לפרסם את המהירות – ליבה אחת עמוסה 100% ומספרים נוספים לגבי 2 ליבות, 4 ליבות – שהם עמוסים, מה המהירות שלהם. להלן דוגמא מטבלת המהירות של מעבדי Xeon החדשים שיצאו החודש:

כפי שאתם יכולים לראות, מעבד שמציג מהירות מקסימלית של 4 ג'יגהרץ, המהירות הזו יכולה להתרחש רק כשליבה אחת עמוסה וכל שאר הליבות נמצאים בעומס בינוני ומטה. כשכל הליבות עמוסות – מגיעים למהירות יותר נמוכות, לפעמים גם ל-2.7 ג'יגהרץ במעבדים שמפורסמים שמגיעים ל-4 ג'יגהרץ.

במכונות דסקטופ/תחנות עבודה/שרתי Tower אפשר להשתמש בפתרונות צינון-מעגל-סגור (Closed Loop Cooler או CLC), ששם יש רדיאטור, 2 או 3 מאווררים חזקים, ותעבורת מים שעוברת בצינורות ומגיעה לחלק שנמצא ישירות על המעבד, בין החומר הטרמי על המעבד לחלק שסופג את החום ומצנן את המעבד. שום פתרון שמבוסס על קירור אוויר אינו יעיל כמו CLC או כל פתרון קירור נוזלי.

וכך, לא חשוב איזה שרת 1U או 2U יש לך, גם אם המאווררים פעילים ב-100% ולא חשוב כמה CFM הם יכולים לדחוף, גם האווררים עם 2 מדחפים – הקירור עצמו אינו יעיל מספיק לקרר מעבד כשכל הליבות עמוסות לחלוטין ולפיכך מהירות המעבד תרד. אגב – המספרים בטבלה למעלה שאינטל מפרסמים? יהיה אולי ניתן להגיע אליהם בשרת 3U ומעלה כשהמאווררים מוחלפים ב-CLC. מנסיון.

לכן, אם המעבדים שלך מתוייגים לעבוד עד מהירות מקסימלית של 4 ג'יגהרץ – תזכור שאתה לא תקבל 4 ג'יגהרץ, ולא חשוב מה תגדיר ב-BIOS (בין כה אי אפשר לעשות Overclocking – הכל חסום ב-BIOS ומעבדי Xeon נעולים ל-Overclocking). אם אתה מחפש ביצועים יותר גבוהים לאפליקציות מסוימות, עליך לבצע 2 דברים:

  • לוודא שהאפליקציה שלך רצה ותומכת ב-Multi Threading
  • להצמיד למכונה הוירטואלית שמריצה את האפליקציה – עוד ליבות, עדיף במתודת CPU Pinning
  • הגדרות Governance ב-CPU ל-Performance ועוד.

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

יותר ליבות בפחות כסף

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

וכך יצא מצב שרוב החברות בארץ קונות שרתים כשכמות הליבות הרצויה מבחינתם – מחולקת ל-2. רוצים 16 ליבות? שלמו על 2 מעבדים של 8 ליבות, לדוגמא. אינטל הרוויחה מזה יפה מאוד.

ואז AMD הוציאה את EPYC עם הצעה מאוד מפתה (שרבים לא מודעים לה): קנה שרתים מהיצרנים מוכרים עם המעבדים שלנו, ותחסוך 40-60% בהשוואה למעבד עם כמות זהה של ליבות – של אינטל. אבל כאן זה לא נגמר: AMD הוציאה במקביל משפחה נוספת של מעבדים לשרתים עם האות P – ועם מעבדים אלו אתה משלם מחצית בהשוואה למעבד זהה ללא האות P.

אז אם לדוגמא אתם רוצים לרכוש מעבד Xeon Scalable 8180 עם 28 ליבות (מחיר – $17600 בשוק), מעבד EPYC 7551P עם 32 ליבות – עולה 2232$. אמרתי רבע מחיר? זה יותר כמו תשיעית מהמחיר. המחירים כמובן שונים כשקונים את השרת עם כל החלקים כבר מורכבים מיצרן השרתים המועדף עליכם, אבל עדיין – יש הבדל ניכר במחיר גם שם.

ההבדל בין השתיים? מעבד עם האות P יכול לעבוד כמעבד יחיד בלבד, גם אם תכניס אותו ללוח אם עם 2 תושבות למעבדים. בניגוד לאינטל, עם מעבד EPYC אתה מקבל גישה לכל המשאבים גם עם מעבד יחיד.

ב-HPE לדוגמא בנו שרת, ה-DL 325 Gen 10 מבוסס מעבד יחיד, ויש להם כמה דברים לאמר בנידון:

תנחשו מי מאוד התלהב מהרעיון? המתחרים. אינטל.

אינטל תוציא בקרוב 3 מעבדים חדשים בסידרת ה-Cascade Lake שלהם, וכמו ש-AMD השתמשה באות P לבדל את המעבדים, אינטל תשתמש באות U. בשאר הדברים אינטל די העתיקה את AMD – רוצה לדוגמא שרת עם 20 ליבות סה"כ? רכוש את ה-Xeon Gold 6210U, תקבל 20 ליבות במחצית המחיר בהשוואה ל-2 מעבדים של 10 ליבות כל אחד. המעבדים הנוספים שיהיו הם: Gold 6212U (עם 24 ליבות) ו-Gold 6209U עם 20 ליבות במהירות נמוכה ב-400 מגהרץ בהשוואה ל-Gold 6210U.

חשוב לזכור: אם אתם רוצים להנות מהמחיר המופחת, אתם חייבים לציין בפני נציג המכירות של היבואן/מפיץ שמדובר במעבדים דגמי U מכיוון שמדובר בשרתים מדגמים עם מספרים שונים (אחרי הכל, צריך לוח שונה). כרגע רק ל-Supermicro יש לוחות (ושרת) כזה, שאר המתחרים יצאו עם דגמים כאלו בסביבות יוני-יולי.

לסיכום: כבר בקרוב יהיה ניתן לחסוך במחיר עלות שרתים אם תבחרו במעבדי סידרת U, אם אתם מתעקשים לעבוד עם המעבדים של אינטל. אני מאמין שאינטל תוציא עוד דגמי U שמתאימים יותר לאלו שמעוניינים בכמות של 8 או 16 ליבות (כמות כוללת).

על תכנון מפרט שרתים

לפני זמן מה קיבלתי פניה מלקוח שנתתי לו יעוץ לגבי מפרט לשרת שיריץ אפליקציה מסויימת כבדה. הם רכשו את השרת ממשווק מורשה של DELL, מערכת הפעלה והאפליקציה הותקנו והם היו מרוצים. לאחר זמן מה הם רצו שרת נוסף והם החליטו פשוט לשלוח את המפרט שנתתי להם לאותו משווק כדי לרכוש שרת זהה נוסף. השרת הגיע, הם ביצעו Clone לשרת הראשון, והיו בטוחים שהשרת השני ירוץ כמו השרת הראשון.

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

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

יש לא מעט אנשים בתחום הגדרות ומכירת שרתים שלא ממש מעודכנים בטכנולוגיות שנמצאים בתוך השרתים. ניקח לדוגמא את תחום הזכרון: השרתים הנמכרים כיום אצל רוב המשווקים – מבוססים על Xeon SP של אינטל או EPYC של AMD. ב-EPYC הדברים מאוד פשוטים: יש לכל מעבד 8 ערוצי זכרון לכל מעבד, ואם אתה רוצה את הביצועים המקסימליים שהמעבד יכול לתת, אתה פשוט קונה זכרון לכל הערוצים. כך לדוגמא אם אתה רוצה 256 ג'יגהבייט לשרת עם מעבד אחד, אתה פשוט קונה 8 מקלות SDRAM ECC מיצרן השרת, כשכל DIMM הוא בגודל 32 ג'יגהבייט.

באינטל המצב שונה. בעבר למעבדי Xeon היו 3 ערוצי זכרון וכל ערוץ זכרון הצריך 3 מקלות DIMM זהים, כך שעל מנת לקבל ניצול מקסימלי של ביצועי מעבד/זכרון, היית צריך להכניס 9 מקלות DIMM. רוצה לדוגמא להכניס 128 ג'יגהבייט זכרון למעבד? שדרג טיפה ל-144 ג'יגה זכרון ורכוש 9 מקלות של 16 ג'יגהבייט זכרון. כיום המצב שונה במעט, ולכל מעבד Xeon SP יש 2 בקרי זכרון, עם 6 ערוצים לכל מעבד. כל ערוץ מחובר ל-2 מקלות DIMM ויש דרכים שונות לקבל Balanced Memory. למי שמעוניין, המסמך הזה מ-LENOVO מסביר את הדברים בהרחבה (וההסבר מתאים לכל שרת מבוסס Xeon SP, לא חשוב מי היצרן).

גם בגיזרת הדיסקים דברים משתנים. לא מעט אנשי IT היו מריצים תוכנות מדידה שונות למשך יום יומיים כדי לקבל מצב ולהחליט אם לרכוש דיסקים SSD שהם Read Intensive או Mixed Intensive. אני חולק על השיטה הזו הואיל והיא לא יכולה לקחת בחשבון צרכים עתידיים, וההפתעה הכי גדולה שאני מבשר לאנשי IT – ההבדלים בין Read ל-Mixed מבחינת מחיר – צנחו. אם לדוגמא תשוו דיסק SSD של מיקרון או אינטל או סמסונג שהוא Read Intensive לדיסק SSD כמו PM883 של סמסונג (שנמכר ע"י כל יצרני השרתים, אגב, עם תמיכה מלאה ו-SLA) הוא 100-120$ כשאנחנו מדברים על גודל דיסק SSD זהה, וחיבור SATA. אז אם לדוגמא אתם רוכשים לשרת 5 דיסקים, האם הפרש של 500-600$ בעלות הכוללת של השרת, זה מה שישבור את הדיל?

תחום נוסף הוא חיבוריות לרשת. לא מעט חברות עוברות ל-10 ג'יגה ובמקרים רבים מתקבלת החלטה לחבר את השרת ב-teaming של זוג בשיטת חיבור Active/Passive, כך שאם חיבור אחד נופל, חיבור שני ימשיך לעבוד. צר לי, זה לא יעבוד אם מחברים את זה לאותו כרטיס או ללוח האם מסיבה פשוטה: בכרטיס או לוח האם יש מעבד אחד ואם יש בו תקלה, אף אחד מהחיבורים לא יעבוד. זה כן יכול לעבוד אם לדוגמא סיב נפגם, אבל על מנת לכסות את מקסימום האפשרויות לתקלות, תצטרכו 2 כרטיסי רשת נפרדים ולחבר אותם ב-Teaming.

כבעל עסק ליעוץ, אני מטבע הדברים ממליץ לשכור את שרותי העסק שלי ליעוץ, אבל מי שלא רוצה/לא יכול, אולי כדאי שיעשה את הדברים הבאים לפני שמחליטים לרכוש שרתים:

  • בישראל אין חנות Online לאף יצרן שרתים ואתם גם לא תקבלו את מלוא הקטלוג של חלקי החומרה שהיצרן מייצר/משווק, לכן אני ממליץ להיכנס לחנות Online בחו"ל, ו"לבנות" את השרת שלכם. המחיר כמובן אינו כמו המחיר שתשלמו בישראל, אבל תוכלו לראות בדיוק את האפשרויות שיש לכם במקום לסמוך על איש שיווק שבמקרים רבים לא יודע על מה הוא סח (מבלי לפגוע במישהו).
  • תכננו את הזכרון באופן אופטימלי, אך תשדלו לא לרכוש דברים שלא תוכלו להשתמש בהם מאוחר יותר בעת שדרוג, כמו מקלות זכרון של 4 ג'יגהבייט.
  • אם אתם מתכננים פרויקט שהשרתים יבצעו בו עבודת Scale Out, יהיה עדיף לרכוש מספר מצומצם יותר של שרתים "חזקים" מאשר כמות גדולה יותר של שרתים "חלשים". הסיבה לכך פשוטה: יותר תחזוקה, יותר עלות של חשמל, תופס יותר מקום. אז במקום 20 שרתים חלשים, 10 חזקים יעשו את העבודה ויחסכו את הדברים שציינתי לעיל.
  • מעבדים: כיום המצב הוא שבאותו מחיר שאתם רוכשים מעבד אינטל עם 4 ליבות, אתם יכולים לרכוש EPYC של AMD עם 8 ליבות. לא עדיף לקבל יותר באותו מחיר? (ולא, אל תתנו למסמכי השיווק של אינטל לבלבל אתכם, במקרים רבים הנתונים מעוותים/מוטים).
  • דיסקים: לכו על Mixed ותחסכו לעצמכם הפתעות עתידיות. ההבדל במחיר אינו כה משמעותי.
  • רשת: עדיף 2 כרטיסי רשת מאשר לחבר לאחד עם 2-4 חיבורים לשם שרידות.
  • VDI: למי שלא מודע, nVidia כעת גובה על ה-Grid שלהם תשלום חודשי. הגיע הזמן שתכירו את ה-Fire Pro של AMD שעובד מצוין על VMWare, Citrix, Microsoft – שם לא תשלמו חודשי.

 

על תחנות עבודה/שרתים ל-AI/DL

יותר ויותר חברות נכנסות לתחומים כמו AI ו-Deep Learning (או DL בקצרה). לא מעט חברות מעדיפות להשתמש בשרותים שספקי ענן ציבוריים מוכרים. שרותים אלו נותנים API לשימוש. השרותים עצמם שונים בין ספק לספק ומומלץ להתייעץ עם אלו שמבינים בתחומים אלו בענן לפני שמתחילים לעבוד עם שרות מסוים, מאחר שיציאה משרות כזה בעתיד אינה קלה.

ויש כמובן את אלו שמעדיפים לעבוד עם ברזלים מקומיים. אני בהחלט יכול להבין אותם: מדובר ברוב המקרים בהשקעה חד פעמית (למעט שדרוג בעתיד של כרטיסים או אחסון מקומי) ואין תשלום חודשי נוסף. פוסט זה מיועד בדיוק לאותם חברות/סטאראטפים/ארגונים.

לפני שניגש לעניין התחנות, נסתכל על ה-GPU והשאלה הראשונה שצריכה להישאל היא: האם בחברה משתמשים ב-CUDA או ב-OpenCL? אם מדובר ב-CUDA, אז כרטיסים של חברת nVidia יכולים להיכלל. אם מדובר לעומת זאת ב-OpenCL, אז כרטיסים של AMD מסידרת Instinct (דרך פלטפורמת ROCm), ה-GPU הפנימי של מעבדי אינטל (לחישובים קטנים, או ב-CPU עצמו, זה גם עובד על מעבדים של AMD) או לכרטיסים שאינטל תוציא בשנה הבאה.

השאלה הבאה צריכה להישאל היא לגבי "שרשור" כרטיסי GPU. ל-nVidia יש את ה-NVLink שמאפשר להצמיד זוג כרטיסים ולקבל תקשורת ביניהם במהירות 100 ג'יגהביט לשניה. ל-AMD עם כרטיסי MI50 ו-MI60 יש את AMD Infinity Fabric לחבר בין זוג כרטיסים ולקבל מהירות של 200 ג'יגהביט לשניה. לכן חשוב לדעת מראש כמה כרטיסי GPU יהיו בתחנה, והאם אתם רוצים להצמיד כל זוג.

השאלה הבאה: כמה כרטיסים יהיו במכונה?

אם אנחנו מדברים על כרטיס 1 או זוג, אז כל דסקטופ רגיל יספק את העבודה, כל עוד יש במכונה ספק כח של 700 וואט (אפשר פחות אך לא מומלץ, במיוחד שההבדל במחירים נמוך) עם נצילות של 80+ זהב. בקשר למעבד – תלוי בכם, יכול להיות אינטל או AMD, אין הרבה הבדל.

אם אנחנו מדברים על 3 כרטיסים ואנחנו מתכוונים גם להשתמש גם באחסון בתצורת חיבור M.2 – מומלץ להסתכל על פתרון מבוסס AMD Threadripper מהסיבה הפשוטה שמעבד זה מציע יותר נתיבי PCIe (כ-64 נתיבים) בהשוואה לכל מעבד דסקטופ של אינטל. מעבד זה הוא היחיד שמאפשר לחבר 3 כרטיסים. לגבי כמות ליבות – יש מספר דגמים, כמו 2950X עם 16 ליבות, 2970WX עם 24 ליבות ו-2990WX עם 32 ליבות. ההבדל בינם מבחינת מחיר – כמה מאות בודדות של דולרים.

אם אנחנו מדברים על 4 כרטיסים (עם או בלי הצמדה) אני ממליץ להסתכל על פתרון מבוסס AMD EPYC. מעבד זה נותן לנו לא פחות מ-128 נתיבי PCIe, כך שאפשר "להשתולל" מבחינת מפרט מבלי "לחטוף" במחיר, הואיל ומעבד EPYC נחשב מעבד זול מבחינת מחיר (אבל הוא מעולה מבחינת ביצעים). מכיוון ש-EPYC הוא מעבד לתחנות עבודה יעודיות ושרתים, נזכיר גם את מעבדי Xeon SP של אינטל, ובמקרה כזה נצטרך פתרון של 2 מעבדים (תלוי בכמות הליבות שאנחנו רוצים). אם אנחנו מעוניינים בכמות גדולה של ליבות (16 ומעלה) עדיף לבחור את הפתרון של AMD מבחינת מחיר זול יותר.

אחרי שדיברנו על ה-GPU, השאלה הבאה תהיה: איזו מערכת הפעלה רוצים להריץ על המכונה? גם ב-AI וגם ב-DL רוב הדברים הזמינים ונתמכים – רצים על לינוקס, פחות על Windows. יש הרבה דברים פופולריים כמו TensorFlow שירוצו על Windows, אך יש פחות תמיכה על כך מהקהילה.

השאלה הבאה: מחשב בניה עצמית או מותג? אפשר לרכוש את החלקים ולהרכיב, או שאפשר לרכוש מכונות מותג. כל אחד והעדפותיו. אם אתם מחפשים מכונות מבוססות EPYC, ל-Gigabyte יש את W291-Z00 ואת SuperMicro עם השם המאוד-קליט A+ Server 4023S-TRT. מכונות מבוססות Xeon או מעבדי אינטל – תמצאו אצל כל יצרן.

דברים שכדאי לבדוק לפני הקניה:

  • כרטיס רשת 10 ג'יגהביט – אם יש לכם כמות גדולה של תכנים שצריכה להיות מוזרמת אל התחנה, מומלץ להשתמש בכרטיס 10 ג'יגהביט בין האחסון המרוכז לתחנת העבודה. אם מדובר על מאות קבצי BLOB (תמונות וכו') בדקה, כדאי לשדרג ל-25/40/50 ג'יגהביט.
  • כמה סשן של פעילות צורך זכרון GPU? כרטיסי RTX מעל 2080TI יקרים מאוד, כדאי אולי לרכוש זוג כרטיסים "ביתיים" מאשר כרטיס אחד שעולה הרבה יותר.
  • אם כל התוכן שצריך לעבור "אימון" לא עולה על 2 טרהבייט ויש מכונה אחת – כדאי לרכוש 2 מקלות אחסון כמו סמסונג 970 PRO (או EVO 860) ולהגדיר אותם כ-RAID-0 ולאחסן את התוכן עליהם.

לסיכום: תחנת עבודה עם מפרטים כמו שציינתי יכולה לעלות החל מ-5000$ ומעלה, ולחברות עם תקציב מצומצם כדאי לבדוק מספר אופציות. לפעמים כדאי לבדוק מעבדים אחרים שנותנים ביצועים מעולים אך במחיר נמוך משמעותי מהמתחרים, לפעמים כדאי לרכוש כרטיסים יותר "ביתיים" בזוגות מאשר כרטיסים יעודיים במחירים כפולים ומעלה.