CUDA — פלטפורמת-תכנות של NVIDIA; קוד שנכתב לה לא רץ על שבבי AMD

יסודות דיגיטליים

הגדרה

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

מ-Brook האקדמית ל-CUDA המסחרית

איאן באק (Ian Buck), כדוקטורנט בסטנפורד באמצע שנות ה-2000, פיתח שפת-מחקר בשם Brook שניסתה להראות שאפשר לתכנת מעבדי-גרפיקה למשימות שאינן גרפיקה בכלל. ב-2004 גייסה NVIDIA את באק, שהוביל יחד עם המהנדס ג'ון ניקולס (John Nickolls) את הפיכת הרעיון האקדמי לפלטפורמה מסחרית מלאה. הגרסה הראשונה של CUDA (ראשי-תיבות של Compute Unified Device Architecture) הושקה רשמית ב-2007, לפי מוזיאון-ההיסטוריה-של-המחשבים, כטכנולוגיה שמאפשרת למעבד-גרפיקה לבצע גם חלק מהתפקידים שהיו שמורים עד אז אך ורק למעבד-המרכזי (CPU).

מה בעצם השתנה: מגרפיקה לחישוב-כללי

לפני CUDA, מי שרצה לנצל מעבד-גרפיקה למשימת-חישוב לא-גרפית נדרש "לתרגם" את הבעיה למונחים גרפיים מלאכותיים באמצעות טריקים מסורבלים שדרשו מומחיות ייעודית. CUDA איפשרה למתכנתים לכתוב קוד-מקבילי בשפות מוכרות — C++‎, פורטרן, ומאוחר יותר גם פייתון — ולהריץ אותו ישירות על אלפי ליבות-העיבוד הזעירות שבתוך מעבד-הגרפיקה, בלי צורך בידע כלשהו בתכנות-גרפיקה מסורתי.

2012: הרגע שבו CUDA "פגשה" את הבינה-המלאכותית

ב-2012 אימנו אלכס קריז'בסקי, איליה סוצקבר וג'פרי הינטון את רשת AlexNet — שהביסה בפער ניכר את שאר המשתתפות בתחרות זיהוי-התמונות ImageNet — על שני מעבדי-גרפיקה מדגם NVIDIA GTX 580, באמצעות קוד שנכתב ב-CUDA. ההצלחה הזו הוכיחה לתעשייה כולה שמעבדי-גרפיקה זולים יחסית יכולים לאמן רשתות-נוירונים עמוקות מהר בהרבה ובעלות נמוכה בהרבה ממעבדים רגילים, ונחשבת לאחד הזרזים המרכזיים של גל למידת-העומק שבא אחריה.

תלות-ספק: המחיר של להיות התקן

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

ממדעי-מחשוב לתשתית של תעשייה שלמה

מאז 2012 המשיכה NVIDIA להעמיק את ההשקעה ב-CUDA ובחומרה שסביבה, עד שהפכה, לפי הצהרות החברה עצמה, לתשתית-התוכנה שרוב תעשיית הבינה-המלאכותית העולמית בנויה עליה — כולל כמעט כל מסגרות-הלמידה-העמוקה הפופולריות כמו TensorFlow ו-PyTorch, שמשתמשות ב-CUDA "מתחת למכסה-המנוע" כדי להריץ בפועל את חישוביהן על מעבדי-גרפיקה.

שאלות נפוצות ❓

מה זה CUDA בקצרה?

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

מי המציא את CUDA?

הרעיון צמח ממחקר של איאן באק בסטנפורד; NVIDIA גייסה אותו ב-2004 והוא הוביל, יחד עם ג'ון ניקולס, את הפיכתו למוצר מסחרי מלא שהושק ב-2007.

למה CUDA כל-כך חשובה לבינה-מלאכותית?

ב-2012 אומנה עליה רשת AlexNet, שהוכיחה שמעבדי-גרפיקה זולים יכולים לאמן רשתות-נוירונים עמוקות הרבה יותר מהר וזול ממעבדים רגילים — אירוע שנחשב לזרז מרכזי לגל למידת-העומק.

האם CUDA עובדת על כל מעבד-גרפיקה?

לא. CUDA היא טכנולוגיה קניינית של NVIDIA, וקוד שנכתב עבורה לרוב אינו רץ על מעבדי-גרפיקה של יצרנים מתחרים כמו AMD.