כדאי לרכוש GPU יד שניה?

אין ספק כי בזמן האחרון הגענו למצב טוב, בו חברות כמו AMD ונבידיה, יחד עם יצרני כרטיסי GPU – מורידים מחירי כרטיסי GPU בחדות. כך לדוגמא, כרטיס כמו RTX 3090ti שהיה נמכר אך לפני זמן מה ב-2500$, נמכר כיום ב-1600$ (בחו"ל) – ומדובר בכרטיס חדש, כך שכיום, בניגוד למצב שהיה לפני מספר חודשים – אין ממש תועלת ברכישת כרטיס מיד שניה שאף אחד לא יודע את מצבו.

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

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

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

מה זה אומר? זה אומר שבשלב ראשון יש צורך לפרק את הכרטיס, לנקות אותו בצורה יסודית, ולהחליף לו חומר טרמי (לדוגמא: Kryonaut של Thermal Grizzly הוא חומר טרמי מעולה שניתן לרכוש מאמזון). בנוסף, נצטרך להחליף פדים טרמיים (Thermal Pads) לזכרונות בכרטיס (חשוב לשים לב מה העובי שצריך להיות, אחרת יהיו בעיות חימום רציניות).

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

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

למי זה מתאים? לא לכל אחד. למי שאין את הנסיון הטכני, רכישה כזו לחלוטין אינה מומלצת (וכן, לתת לחבר ה"ספץ במחשבים" לא מבטיח שהוא יודע מה הוא עושה). לגיימר שרוצה כרטיס נוסף כדי לעבוד SLI? גם לא, הואיל ו-SLI רשמית "מת". למי זה כן מתאים? למי שיש את הידע הטכני לשפץ, את הסבלנות (לקבל חלקים וכו' מחו"ל), ושאין לו כסף לרכוש כרטיס GPU חדש.

לסיכום: כרטיסי GPU יד שניה יכולים להיות רכישה לא רעה, אולם חייבים לזכור שיש צורך בהשקעה ב"שיפוץ" ה-GPU, רכישת חומרים (פדים,חומר טרמי נוזלי, מאווררים), ניקוי, הרכבה יסודית וכו' – שלא תמיד שווים את המאמץ.

האם NVIDIA פתחה את הקוד לדרייבר ה-GPU שלה?

החדשות שהופיעו באתרים שונים (לדוגמא: Phoronix) לפיו חברת NVIDIA החליטה לפתוח את קוד המקור של הדרייברים לכרטיסי ה-GPU שלהם – גרמו ללא מעט אנשים לחייך ואולי לאמר "ניצחנו", חברת NVIDIA נכנעה ופתחה את הקוד לדרייברים שלה!

אז זהו. שלא.

הדבר הראשון שכדאי להבין – זו הסיבה מדוע NVIDIA התעקשה להשאיר את הדרייברים כקוד סגור, והסיבה לכך קשורה להיסטוריה: NVIDIA קנתה חברות שונות והשתמשת בקניין הרוחני. בנוסף, NVIDIA חתמה על הסכמי רישוי שונים כולל השכרת פטנטים מחברות כמו S3, IBM וכו' הקשורים למימוש פונקציות שונות בדרייברים, והסכמים אלו אסרו על NVIDIA לפתוח את הקוד לחלקים אלו, כך של-NVIDIA לא נותרה ברירה ודרייברים ל-GPU ביתיים ומקצועיים – נשארו סגורים. לעומת זאת, בכל הקשור לציוד משובץ (Embedded) – ב-NVIDIA (עם דרייברים ל-Tegra, ה-GPU למערכות משובצות שלהם) התחילו הכל מאפס, כך שהם יכלו מהרגע הראשון לפתוח את הקוד לדרייברים, ואכן הדרייברים הללו נמצאים בחלקים השונים בלינוקס, כמו ב-Kernel, ב-Mesa ובמקומות אחרים.

אז מה בעצם השוני הגדול הפעם?

מה שקורה, הוא ש-NVIDIA פיתחה מיקרו מעבד חדש מבוסס RISC-V שנמצא בתוך ה-GPU (זה נקרא GSP) ואותו מעבד מבצע את מה שהדרייברים הקודמים עשו עם ה-CPU במחשב, במהלך איתחול ה-GPU כשה-OS עולה, רק שעכשיו הכל נעשה עם ה-GSP, באופן עקרוני:

  1. הדרייבר ב-Kernel מאתחל את ה-GPU ואת ה-GSP (ללא האיתחול, הדברים היחידים שאפשר לעשות עם ה-GPU זה בחירת מצב טקסטואלי ממה שנתמך דרך VESA, ומצב Frame Buffer mode, אם בא לך לשנן מחדש את קטלוג הקללות שאתה יודע..).
  2. הדרייבר מעלה קושחה סגורה ומוצפנת וה-GSP "לוקח פיקוד"
  3. בסיום, הכרטיס מודיע ל-Kernel לגבי מהות הציוד, כניסות, יציאות, פונקציות אפשריות, יכולות וכו'
  4. לאחר שהמודול הופעל בהצלחה, חלקים אחרים (User space) מתחילים לפעול מול המודול בזכרון

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

האם זה אומר שממחר בבוקר הדרייבר הפתוח הוא המענה החדש של NVIDIA? לא ממש. הדרייבר החדש הוא רק בראשית דרכו, יש לו עוד דרך חתחתים לעבור (והפעם כל יצרני הפצות לינוקס משתתפים בבניה ושילוב הדרייבר והכנת חבילות התקנה), כך שלבינתיים ממשיכים לעבוד עם הדרייברים הבינאריים הרגילים. בנוסף, ה-GSP בגירסה החדשה קיים רק בכרטיסים מבוססי Turing. שאר הכרטיסים הישנים יותר – ממשיכים לקבל תמיכה רק דרך הדרייברים הבינאריים הרגילים.

אז האם NVIDIA "ראתה את האור" בכך שהיא פותחת דרייבר חדש בקוד פתוח? רחוק מכך. אם תרצה לקודד וידאו, אם תרצה להעלות מהירות שעון של ה-GPU ואם תרצה להריץ קוד המצריך CUDA או OpenGL או דברים אחרים – תצטרך לעבוד מול החלקים האחרים (User Space) ש-NVIDIA משחררת כקוד סגור בלבד, ובשלב זה לא נראה ש-NVIDIA הולכת לפתוח את הקוד הזה.

ועוד משהו קטן לגבי המתחרה הגדולה של NVIDIA – חברת AMD. האם גרסאות הדרייברים בקוד פתוח שלהם נותנים בעצם יותר מעצם העובדה שהם פתוחים? לא תמיד. ב-AMD פשוט מחביאים את הפונקציות העיקריות והחשובות – בתוך קושחה בינארית מוצפנת. כמו ב-NVIDIA, רק שב-AMD החלקים הקשורים ל-User space – פתוחים. אגב, גם במקרה של אינטל, הדברים זהים למה ש-AMD מבצעים (אם כי גם שם יש חלקים סגורים, היי Intel Media SDK), ויש גם קוד חופף ל-AMD ואינטל בחלקים כמו Mesa וכו'.

לסיכום: NVIDIA מעולם לא חיפשה לעשות "דווקא" ולא היתה "אנטי קוד פתוח". אין שום כיף בכך שצריך לתחזק דרייבר משותף לכל מערכות ההפעלה, להכין קבצים בינאריים ולוודא שוב ושוב ששום דבר לא תוקע את ה-OS עקב באגים בדרייבר (ב-NVIDIA זוכרים את הלקח הכואב הזה בצורה חזקה מ-Windows Vista). אני מאמין שהם יפתחו לאט לאט גם את החלקים האחרים, אבל בכל מקרה, צריך לתת מחמאות ולעודד חברות שמחליטות לפתוח את הקוד לחלקים שונים (ולא מסתכלות על קוד פתוח כ"בית קברות" לפרויקטים שלא יתוחזקו לעולם).

קצת על הכרטיסים הגרפיים החדשים של nVidia

חברת nVidia הציגה אתמול את הכרטיסים הגרפיים למשתמש הביתי/סמי-מקצועי, סידרת ה-RTX, דגמי 2070,2080,2080Ti, וזאת אחרי שנתיים "יובש" שבו החברה לא הציגה התפתחות משמעותית לקהל זה (למעט Titan V שיותר מיועד לאלו שמתחילים בתחום ה-AI/DL). לקהל אחר החברה הוציאה מס' כרטיסי Tesla ורק לפני כמה ימים הציגה החברה למשתמשים המקצועיים את סידרת ה-Quadro RTX, במחירים סופר יוקרתיים. (אחרי הכל, אתה קונה כרטיס שביצועיו נמוכים מאחיו המשפחתיים, רק שעם זכרון ECC ואחריות יותר ארוכה, אז מדוע שלא תשלם פי 4?)

במשך שעתיים הציג מנכ"ל החברה את ה-RTX, הוא דיבר על Deep Learning, על AI, על Ray Tracing וכמה הכרטיסים החדשים סופר-מהפכניים וסופר מהירים ב-Ray Tracing. אין ספק, המנכ"ל צודק, הכרטיס, ארכיטקטורת Turing באמת מהפכנית.

אבל בסופו של יום nVidia לא הציגה משהו אחד די פשוט: איך הכרטיסים החדשים והכה-נוצצים בביצועים עם תוכנות עכשויות. אם אני עורך וידאו ואני רוצה לרנדר (הן אובייקטים והן להוצאת קובץ לשידור) – בכמה טוב הכרטיס החדש? איך הביצועים שלו על DirectX, OpenGL, Vulkan? סביר להניח שהביצועים יותר טובים בשימוש CUDA (כי פשוט יש יותר ליבות, יש זכרון יותר מהיר וכו'), אבל בכמה הוא יותר טוב?

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

תחום ה-Deep Learning, כמוהו אחיו ה-Artificial Intelligence – הם תחומים מאוד חשובים. גם בתחום ה-Ray Tracing לא התרחשו הרבה התפתחויות לשוק הביתי/סמי מקצועי זה זמן רב, ואם היית רוצה להשתמש ב-Ray Tracing, הדבר הראשון שהיית צריך להצטייד בו זה המון סבלנות. רינדורים כאלו הם איטיים. אין ספק שכרטיסי ה-RTX בהחלט מאיצים דברים וההדגמות נראו מעולות.

אבל יש כמה בעיות בעניין:

  • אין שום סטנדרט ל-Ray Tracing. כל תוכנה עובדת בדרכה ואולי מאפשרת יבוא מתוכנה מתחרה, אבל בניגוד לפורמטים של קבצי וידאו ו-Codecs, אף קבוצה עדיין לא הקימה סטנדרטים שחברות יתחייבו לממש אותן.
  • אין תוכנות מקצועיות שיכולות לנצל את ה-RTX מבחינת Ray Tracing. אני מאמין שבעקבות ההכרזה, חברות תוכנה רבות יוסיפו תמיכה ל-RTX, אבל זה תהליך שלוקח זמן, לפעמים שנה ולפעמים (ברוב המקרים) יותר.
  • מיקרוסופט הוסיפה תמיכת Ray Tracing ל-DirectX, אבל ב-Vulkan ו-OpenGL, ספריות וארכיקטורות שרצות על מק, iOS, אנדרואיד, לינוקס וכו' – אין שום תמיכה.

במילים אחרות: זה נחמד ש-nVidia מוציאה את כרטיסי ה-RTX וגם SDK למפתחים, אבל עד שיופיעו תוכנות שינצלו את ה-RTX, יהיה כדאי להמתין לבדיקות ולראות אם קניית כרטיסי ה-RTX 2070,2080,2080Ti תהיה שווה. בל נשכח שיש מלאי ענק בחוץ של כרטיסי GTX 1070, 1080 ו-1080Ti בשוק שמחיריהם ירדו, ואולי שיפור של כמה אחוזים לא יצדיק את רכישת "המילה" האחרונה בתחום ה-GPU.