מאמרים בנושא ‏תכנה חופשית‏.

עדכוני dlprimitives

ב־יום ראשון, 21 בנובמבר 2021, מאת ארתיום; פורסם תחת: תכנה חופשית, בינה מלאכותית; ‏0 תגובות

מספר עדכונים:

  • התקדמות יפה עם pytorch - בוצעה ולידציה של מרבית הרשתות של סיווג הנמצאות ה־torchvision:

    • alexnet
    • resnet18
    • resnet50
    • vgg16
    • densenet161
    • googlenet
    • squeezenet1_0
    • inception_v3
    • shufflenet_v2_x1_0
    • mobilenet_v2
    • mobilenet_v3_large
    • mobilenet_v3_small
    • resnext50_32x4d
    • wide_resnet50_2
    • mnasnet1_0
    • efficientnet_b0
    • efficientnet_b4
    • regnet_y_400mf

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

  • ניסיתי לעשות אינטגרציה עם OneDNN של אינטל (מאין cudnn ל־GPU שלהם) רק כדי לגלות שהביצועים שלהם בפורמט NCHW גרועים. כיוון שרוב התשתיות עובדות עם הפורמט הזה pytorch, caffe, mxnet ועוד אז OneDNN לא ממש רלוונטי בינתיים. אחזור לשם כשיקרה אחד מהשניים:

    • אינטל יתקנו את הביצועים עבור הפורמט הנפוץ
    • אני אפתח תמיכה ב־NHWC לטובת TensorFlow בו זה פורמט ברירת מחדל

המשך יבוא

התחלתי להתקדם לאימון בקוד פתוח: pytorch עם תמיכה ב־OpenCL

ב־יום ראשון, 10 באוקטובר 2021, מאת ארתיום; פורסם תחת: תכנה חופשית, פיתוח, בינה מלאכותית; ‏2 תגובות

תקציר: הצלחתי לבצע inference של AlexNet ב־pytorch ב־OpenCL. הביצועים זהים לפעלה ישירה של dlprimitives.

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

http://blog.dlprimitives.org/post/5

מדוע אנחנו זקוקים ל־deep-learning מבוסס OpenCL?

ב־יום ראשון, 12 בספטמבר 2021, מאת ארתיום; פורסם תחת: תכנה חופשית, בינה מלאכותית; ‏0 תגובות

במאמר חדש http://blog.dlprimitives.org/post/2 אני סוקר את הסיבות והצורך בהקמת תשתית למידה חישובית מבוססת OpenCL. אני מתייחס כאן לסיבות שהן לאו דווקא סיבות "אידואולוגיות" כמו שימוש בקוד פתוח אלא גם מתייחס לנושאים טכניים ומהותיים:

  • מחקר ואלגוריתמים
  • וניהול פרויקטים לטווח רחוק
  • שיפור מוצר ע"י תחרותיות

השוואה בין תפוחים ירוקים ואדומים

ב־יום שישי, 10 בספטמבר 2021, מאת ארתיום; פורסם תחת: תכנה חופשית, פיתוח, בינה מלאכותית; ‏0 תגובות

כשמודבר ב־Deep Learning זה מאוד קשה להשוות בין GPU של החברות המובילות AMD ו־NVidia. בניגוד למשחקי מחשב שנותנים לך מדדים ברורים על עלות מול תועלת, תחום DL נשלט באופן בלעדי ע"י NVidia. גם אם קיימים פתרונות של AMD הם לא תמיד עובדים. למשל כרטיסי RDNA/RDNA2 עדיין לא נתמכים ע"י AMD לטובת Deep Learning - והם בעצם הכרטיסים הזמינים היחידים היום בשוק.

ובכן כחלק מפרויקט DLPrimitives עשיתי השוואה כזו:

http://blog.dlprimitives.org/post/1

וכן גם השקתי בלוג חדש לטובת עדכונים על הפרויקט.

רשתות נוירונים בקוד פתוח... להפשיל שרוולים

ב־יום ראשון, 25 ביולי 2021, מאת ארתיום; פורסם תחת: תכנה חופשית, פיתוח, תכנה ומחשבים, בינה מלאכותית; ‏2 תגובות

כתבתי בעבר על המצב העגום של תחום ה־deep learning בקוד פתוח - שלמעשה לא קיים. אחרי ש־Google בפועל הרגו את ה־plaidml עם keras והפיתוח של Caffe הופסק אז נוצר המצב בו אין כל דרך לאמן רשתות בעזרת פלטפורמה פתוחה - OpenCL.

יש סיבות טובות לעבוד עם OpenCL מעבר לשמירה על הקוד הפתוח. למשל לפתח תוכנה שתעבוד על כל כרטיס גרפי סביר ובכל מערכת הפעלה - בלי להסתבך.

אז הרמתי את הכפפה: https://github.com/artyom-beilis/dlprimitives

זהו פרויקט חדש בשם DLPrimitives שאמור לתת מענה לסוגיה. הוא אמור לספק ספריה בסגנון cudnn/miopen שמממשת את הפעולות הבסיסיות של Deep-Learning וגם לספק כלים ל־inference. בנוסף, הרעיון הוא להתחבר כ־backend לאחד ה־deep learning frameworks העדכניים כמו pytorch, tensorflow או mxnet.

התהליך הוא איטי וקשה. אומנם המתמטיקה היא לא מסובכת וכתיבה ל־GPU היא בסה"כ לא עניין מסובך. אבל אם רוצים להגיע לביצועים טובים הסיפור הוא מעט שונה. עם זה, התוצאות כבר כאן.

לחסרי סבלנות - הצלחתי להגיע ל־150%-200% של ביצועי caffe-opencl ו־plaidml על פלטפורמת amd ו־nvidia ולהגיע לכ־50% עד 70% של ביצועי המימושים הספציפיים שלהם על בסיס cudnn/miopen.

כל התוצאות:

https://github.com/artyom-beilis/dlprimitives/blob/master/docs/summary.md

סיכום לעצלנים - ממוצע על 5 רשתות נפוצות alexnet, resnet18, resnet50, vgg, mobilenet:

GPU Batch Train, Cuda/HIP Test, Cuda/HIP Train, Plaidml/Caffe Test, Plaidml/Caffe
gtx960 16 51% 60.73% 171% 167.33%
gtx960 8 59% 72.03% 187% 155.25%
gtx1080 16 42% 41.34% 207% 137.52%
rtx2060s 16 49% 57.53% 211% 149.48%
rx560 16 53% 56.82% 153% 115.63%
rx560 8 55% 54.19% 172% 122.64%
intel-hd530 8 109% 66.12%

אומנם זו התחלה אבל כבר התחלה טובה!

העמוד הבא

העמוד הבא

דפים

נושאים