איך קוואלקום ביצעה שיפורים עצומים ב-AI ב-Snapdragon 865

קוואלקום עשתה קפיצות ענק בביצועי AI עם ה-Snapdragon 865 SoC החדש. אנו מנתחים את השינויים שעשתה קוואלקום כדי להאיץ את למידת המכונה.

זה נראה כאילו אנחנו לא יכולים לעבור יום בלי לראות "בינה מלאכותית" בחדשות, והשבוע האחרון לא היה יוצא דופן לא מעט בזכות פסגת הטכנולוגיה Snapdragon. מדי שנה, קוואלקום חושפת את שפע השיפורים שהיא מביאה ל-Hexagon DSP שלה ול-Qualcomm AI Engine, מונח שהם משתמשים עבור כל פלטפורמת המחשוב ההטרוגני שלהם - CPU, GPU ו-DSP - כאשר מדברים על AI עומסי עבודה. לפני כמה שנים, ההתעקשות של קוואלקום להרחיק את השיחה מנקודות דיבור מסורתיות, כמו שיפורי ביצועי מעבד משנה לשנה, נראתה קצת מוזרה. עם זאת, בשנת 2019 ועם ה-Snapdragon 865, אנו רואים שמחשוב הטרוגני אכן עומד בראש דחיפת המחשוב הנייד שלהם, כ-AI ועומסי עבודה מואצים בחומרה מתגנבים למגוון רחב של מקרי שימוש ויישומים, ממדיה חברתית ועד יומיום שירותים.

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

במאמר זה, נערוך סיור נגיש אך יסודי במנוע ה-AI של Qualcomm תוך סירוק בהיסטוריה שלו, מרכיביו והשדרוגים של Snapdragon 865, והכי חשוב, למה אוֹ אֵיך כל אחד מהם תרם לחוויית הסמארטפון של היום, מפילטרים מצחיקים ועד עוזרים דיגיטליים.

Hexagon DSP ו-Qualcomm AI Engine: כאשר המיתוג עושה את ההבדל

למרות שלא יכולתי להשתתף השבוע בפסגת Snapdragon Tech Summit, בכל זאת השתתפתי בכל אחד אחר מאז 2015. אם אתה זוכר, זֶה הייתה שנת הבלגן הלוהט שהיה ה-Snapdragon 810, ולכן עיתונאים בלופט צ'לסי בעיר ניו יורק היו להוטים לגלות כיצד ה-Snapdragon 820 יגאל את החברה. וזו הייתה ערכת שבבים נהדרת, בסדר: היא הבטיחה שיפורי ביצועים בריאים (ללא שום מצערת) על ידי חזרה לליבות המותאמות אישית שנוסו אז שקוואלקום הייתה ידועה בהן. אבל אני גם זוכרת הודעה עדינה מאוד שבדיעבד הייתה צריכה לקבל יותר תשומת לב: דור שני של Hexagon 680 DSP והוראה יחידה שלו, מספר נתונים (SIMD) Hexagon Vector eXtensions, או HVX. אולי אם מהנדסים לא היו קוראים לתכונה, היא הייתה זוכה לתשומת הלב הראויה.

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

רק עם הופעתה של למידה עמוקה ביישומים ניידים לצרכנים, ה-DSP, הווקטור שלו יחידות עיבוד (ועכשיו, מאיץ טנזור) יתחתנו עם AI ורשתות עצביות, ב מיוחד. אבל במבט לאחור, זה הגיוני לחלוטין: ארכיטקטורת מעבד האותות הדיגיטלי (DSP), שתוכננה במקור לטיפול בדיגיטל כניסות אותות מהעולם האמיתי או האנלוגי, מתאימה לרבים מאותם עומסי עבודה כמו אלגוריתמים רבים של למידת מכונה ונוירונים רשתות. לדוגמה, DSPs מותאמים עבור גרעיני סינון, פעולות קונבולולוציה וקורלציה, חישובי 8 סיביות, המון אלגברה לינארית (מוצרי וקטור ומטריצה) ופעולות כפל-צבירה (MAC), הכל היעיל ביותר כאשר מקביל. זמן הריצה של רשת עצבית תלוי מאוד גם בהכפלת וקטורים גדולים, מטריצות ו/או טנסורים, כך זה רק טבעי שיתרונות הביצועים של ה-DSP יתורגמו בצורה יפה לארכיטקטורות של רשתות עצביות כמו נו. נחזור על הנושא הזה בקצרה!

בשנים שלאחר מכן, קוואלקום המשיכה להדגיש שהם לא מציעים רַק ערכות שבבים, אבל פלטפורמות ניידות, ושהם מתמקדים לא רַק על שיפור רכיבים מסוימים, אך אספקת מחשוב "הטרוגני". ב-2017, הם שחררו את Snapdragon Neural Processing Engine SDK (להאצת זמן ריצה) ברשת המפתחים של קוואלקום, ובתחילת 2018 הכריזה על מנוע הבינה המלאכותית של קוואלקום כדי לאחד את מספר רכיבי החומרה שלהם בעלי יכולת AI (CPU, GPU, DSP) תחת אחד שֵׁם. עם המינוח השימושי הזה, הם הצליחו לפרסם בצורה מסודרת את שיפורי ביצועי ה-AI שלהם הן ב-Snapdragon 855 והן Snapdragon 865, מסוגל לאיית בנוחות את מספר טריליוני הפעולות בשנייה (TOPS) ואחוז משנה לשנה שיפורים. רתימת השיפורים הדוריים ב-CPU, GPU ו-DSP - כולם מתמקדים בבינה מלאכותית משלהם שדרוגים - החברה מסוגלת לפרסם מדדים מרשימים מול מתחרים, עליהם נעבור בְּקָרוּב. עם מאמצי השיווק האחרונים של החברה והמסרים המאוחדים והעקביים על מחשוב הטרוגני, מיתוג הבינה המלאכותית שלהם תופס סוף סוף אחיזה בקרב עיתונאים וחובבי טכנולוגיה.

Demystifying Networks Neural: ערימה ארצית של אלגברה לינארית

כדי להפריש הרבה ז'רגון שנתקל בהמשך המאמר, אנחנו צריכים פריימר קצר על מהי רשת עצבית ו מה שאתה צריך כדי שזה יהיה מהיר יותר. אני רוצה לעבור בקצרה רבה על כמה מהיסודות המתמטיים של רשתות עצביות, ולהימנע מכמה שיותר ז'רגון וסימון. מטרת החלק הזה היא פשוט לזהות מה עושה רשת עצבית, ביסודו: פעולות החשבון הוא מבצע, ולא את הבסיס התיאורטי שמצדיק את הפעולות האמורות (זה הרבה יותר מסובך!). אל תהסס להמשיך לסעיף הבא אם ברצונך לקפוץ ישר לשדרוגים של Qualcomm AI Engine.

"מתמטיקה וקטורית היא הבסיס ללמידה עמוקה." - טראוויס לנייר, מנהל בכיר לניהול מוצר בקוואלקום בפסגת הטכנולוגיה Snapdragon 2017

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

רשת עצבית מורכבת מרצף שכבות, כל אחד מורכב מכמה "נוירונים" (מתוארים כמעגלים בתרשים) המחוברים על ידי משקולות (מתואר בתור קווים בתרשים). באופן כללי, ישנם שלושה סוגים של שכבות: ה שכבת קלט, אשר לוקח את הקלט הגולמי; שכבות נסתרות, אשר מחשבות פעולות מתמטיות מהשכבה הקודמת, וה שכבת פלט, המספק את התחזיות הסופיות. במקרה זה, יש לנו רק שכבה אחת נסתרת, עם שלוש יחידות נסתרות. ה קֶלֶט מורכב מוקטור, מערך או רשימה של מספרים של ממד או אורך מסוימים. בדוגמה, יהיה לנו קלט דו מימדי, נניח [1.0, -1.0]. הנה ה תְפוּקָה של הרשת מורכבת ממספר סקלרי או בודד (לא רשימה). כל יחידה מוסתרת משויכת לסט של משקולות וכן א מונח הטיה, מוצג לצד ומתחת לכל צומת. כדי לחשב את סכום משוקלל פלט של יחידה, כל משקל מוכפל עם כל קלט תואם, ולאחר מכן מתווספים המוצרים. לאחר מכן, פשוט נוסיף את מונח ההטיה לסכום התוצרים הזה, וכתוצאה מכך הפלט של הנוירון. לדוגמה, עם הקלט שלנו של [1.0,-1.0], ליחידה הנסתרת הראשונה תהיה פלט של 1.0*0.3 + (-1.0) * 0.2 + 1.0 = 1.1. פשוט, נכון?

השלב הבא בתרשים מייצג את an פונקציית הפעלה, והוא מה שיאפשר לנו לייצר את וקטור הפלט של כל שכבה נסתרת. במקרה שלנו, נשתמש בפופולרי מאוד ופשוט במיוחד יחידה ליניארית מתוקנת אוֹ ReLU, שייקח מספר קלט ויוציא או (i) אפס, אם המספר הזה הוא שלילי או אפס (ii) מספר הקלט עצמו, אם המספר חיובי. לדוגמה, ReLU(-0.1) = 0, אבל ReLU(0.1) = 0.1. בעקבות הדוגמה של הקלט שלנו כפי שהוא מתפשט דרך אותה יחידה נסתרת ראשונה, הפלט של 1.1 שחישבנו יועבר לפונקציית ההפעלה, ויביא ReLU(1.1)=1.1. שכבת הפלט, בדוגמה זו, תפעל בדיוק כמו יחידה נסתרת: היא תכפיל את הפלטים של היחידות הנסתרות כנגד משקליה, ולאחר מכן תוסיף את מונח ההטיה שלה של 0.2. פונקציית ההפעלה האחרונה, ה פונקציית צעד, יהפוך תשומות חיוביות ל-1 וערכים שליליים ל-0. בידיעה כיצד פועלת כל אחת מהפעולות ברשת, נוכל לרשום את החישוב המלא של ההסקה שלנו באופן הבא:

זה כל מה שיש לחישוב הרשת העצבית שלנו. כפי שאתה יכול לראות, ה פעולות מורכבות כמעט לחלוטין ממוצרים וסכומים של מספרים. פונקציית ההפעלה שלנו ReLU(x) ניתן ליישם בקלות רבה גם כן, למשל על ידי התקשרות פשוטה מקסימום (x, 0), כך שהוא מחזיר x בכל פעם שהקלט גדול מ-0, אבל אחרת הוא מחזיר 0. ציין זאת שלב (x) ניתן לחשב באופן דומה. קיימות הרבה יותר פונקציות הפעלה מסובכות, כגון פונקציה סיגמואידית או ה משיק היפרבולי, הכוללים חישובים פנימיים שונים ומתאימים יותר למטרות שונות. דבר נוסף שאתה כבר יכול להתחיל לשים לב אליו הוא שגם אנחנו יכול להריץ את שלושת היחידות הנסתרות, ואת יישומי ה-ReLU שלהן, במקביל, מכיוון שאין צורך בערכים שלהם בו-זמנית עד שנחשב את הסכום המשוקלל שלהם בצומת הפלט.

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

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

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

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

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

מנוע AI משודרג ב-Snapdragon 865 - סיכום של שיפורים

עם הבנה שימושית זו של מרכיבי רשת עצבית ופעולותיהם המתמטיות, אנו יכולים להתחיל להבין בדיוק מדוע האצת חומרה חשובה כל כך. בסעיף האחרון, אנו יכולים לראות שהמקבילה חיונית להאצת הרשת בהינתן מאפשר לנו, למשל, לחשב כמה תוצרי נקודות מקבילים המתאימים לכל נוירון הַפעָלָה. כל אחד ממוצרי הנקודות הללו מורכב בעצמו מפעולות הוספה כפולה במספרים, בדרך כלל עם דיוק של 8 סיביות במקרה של יישומים ניידים, שחייבות לקרות מהר ככל האפשר. מנוע ה-AI מציע רכיבים שונים להורדת משימות אלו בהתאם לשיקולי הביצועים ויעילות ההספק של המפתח.

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

ראשית, בואו נסתכל על ה-GPU, שעליו אנו מדברים בדרך כלל בהקשר של משחקי תלת מימד. שוק הצרכנים של משחקי וידאו עורר התפתחות בחומרה לעיבוד גרפי במשך עשרות שנים, אבל מדוע GPUs כל כך חשובים לרשתות עצביות? בתור התחלה, הם לועסים רשימות מסיביות של קואורדינטות תלת-ממדיות של קודקודי מצולעים בבת אחת כדי לעקוב אחר מצב עולם במשחק. ה-GPU חייב גם לבצע פעולות כפל מטריצה ​​ענקיות כדי להמיר (או למפות) את התלת-ממד הללו קואורדינטות על גבי 2D מישור, קואורדינטות על המסך, וגם לטפל במידע הצבע של פיקסלים ב מַקְבִּיל. לסיום הכל, הם מציעים רוחב פס זיכרון גבוה כדי להתמודד עם מאגרי הזיכרון האדירים עבור מפות הסיביות של הטקסטורה המונחת על הגיאומטריה של המשחק. יתרונותיו בהקבלה, ברוחב פס הזיכרון ויכולות האלגברה הלינארית הנובעות מכך תואמים את דרישות הביצועים של רשתות עצביות.

לקו ה-Adreno GPU אפוא יש תפקיד גדול במנוע ה-AI של קוואלקום, ועל הבמה, קוואלקום הצהירה כי הרכיב המעודכן הזה ב-Snapdragon 865 מאפשר פי שניים מיכולות נקודה צפה ו פי שניים ממספר TOPS בהשוואה לדור הקודם, וזה מפתיע בהתחשב בכך שהם פרסמו רק עליית ביצועים של 25% לעיבוד גרפי. ובכל זאת, עבור מהדורה זו, החברה מתהדרת ב- עלייה של 50% במספר היחידות הלוגיות האריתמטיות (ALU), אם כי כרגיל, הם לא חשפו את תדרי ה-GPU שלהם. קוואלקום רשמה גם דיוק מעורב הוראות, וזה בדיוק מה שזה נשמע: דיוק מספרי שונה על פני פעולות בשיטה חישובית אחת.

ה- Hexagon 698 DSP הוא המקום שבו אנו רואים נתח עצום מהשיפורים בביצועים שמציע ה-Snapdragon 865. השנה, החברה לא הודיעה על שיפורים בהרחבות הווקטוריות של ה-DSP שלהם (שהביצועים שלהם הוכפלו פי ארבעה ב-855 של השנה שעברה), וגם לא ביחידות הסקלריות שלהם. עם זאת, הם מציינים שעבור מאיץ הטנזור של הבלוק הזה, הם השיגו פי ארבע מהטופים בהשוואה לגרסה שהוצגה בשנה שעברה ב-Hexagon 695 DSP, תוך שהיא מסוגלת גם להציע יעילות כוח טובה יותר ב-35%.. זה עניין גדול בהתחשב בשכיחות של ארכיטקטורות רשתות עצביות קונבולוציוניות במקרים של שימוש בינה מלאכותית מודרנית, החל מזיהוי אובייקט תמונה ועד לזיהוי דיבור אוטומטי. כפי שהוסבר לעיל, פעולת הקונבולוציה ברשתות אלו מייצרת מערך דו-ממדי של יציאות מטריצה ​​עבור כל מסנן, כלומר כאשר מוערמים יחד, הפלט של שכבת קונבולציה הוא מערך 3D או מוֹתֵחַ.

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

בנושא רוחב הפס, ה-Snapdragon 865 תומך זיכרון LPDDR5, מה שיועיל גם לביצועי בינה מלאכותית שכן היא תגביר את המהירות שבה משאבים ונתוני קלט מועברים. מעבר לחומרה, החדש של קוואלקום ערכת כלים ליעילות מודל AI הופך דחיסת מודל קלה והחיסכון ביעילות החשמל זמין למפתחים. לרשתות עצביות יש לרוב מספר רב של פרמטרים "מיותרים"; לדוגמה, הם עשויים להפוך שכבות נסתרות לרחבות יותר ממה שהן צריכות להיות. אחת מתכונות AI Toolkit שנדונו על הבמה היא כך דחיסת דגם, כאשר שתיים מהשיטות המצוטטות הן פירוק ערך יחידני מרחבי (SVD) ודחיסה בייסיאנית, שתיהן של אשר חותמים ביעילות את הרשת העצבית על ידי היפטרות מצמתים מיותרים והתאמת מבנה המודל כ נדרש. טכניקת דחיסת המודל האחרת המוצגת על הבמה מתייחסת לכיוונטיזציה, והיא כרוכה בשינוי הדיוק המספרי של פרמטרי משקל וחישובי צמת הפעלה.

הדיוק המספרי של משקלי רשת עצבית מתייחס לשאלה האם הערכים המספריים המשמשים לחישוב מאוחסנים, מועברים ומעובדים כערכים של 64, 32, 16 (חצי דיוק) או 8 סיביות. שימוש בדיוק מספרי נמוך יותר (לדוגמה, INT8 לעומת FP32) מפחית את השימוש הכולל בזיכרון ואת מהירויות העברת הנתונים, ומאפשר רוחב פס גבוה יותר והסקת מסקנות מהירות יותר. הרבה מיישומי הלמידה העמוקה של ימינו עברו למודלים דיוק של 8 סיביות להסקת מסקנות, מה שאולי נשמע מפתיע: האם דיוק מספרי גבוה יותר לא יאפשר תחזיות "מדויקות" יותר בסיווג או רגרסיה משימות? לא בהכרח; דיוק מספרי גבוה יותר, במיוחד במהלך היסק, עלול להתבזבז מכיוון שרשתות עצביות מאומנות להתמודד עם תשומות רועשות או הפרעות קטנות בכל האימון בכל מקרה, והשגיאה בייצוג הסיביות הנמוכות של ערך נתון (FP) היא "אקראית" באופן אחיד מספיק. במובן מסוים, הדיוק הנמוך של החישובים מטופל על ידי הרשת כמקור נוסף לרעש, והתחזיות נותרות שמישות. מלבד הסברים היוריסטיים, סביר להניח שתצבור עונש דיוק בעת כימות מחורבן של מודל מבלי לקחת בחשבון כמה שיקולים חשובים, וזו הסיבה שהרבה מחקרים נכנסים לעניין נושא

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

אבל שוב, זה לא מזעזע: מודלים לכימות יכולים להציע יתרונות רוחב פס ואחסון אדירים. המרת דגם ל-INT8 לא רק מביאה לך הפחתה של פי 4 ברוחב הפס, אלא גם את היתרון של חישובים שלמים מהירים יותר (בהתאם לחומרה). אין זה מובן, אם כן, שגישות מואצות בחומרה הן לכימות והן לחישוב המספרי יניבו שיפורי ביצועים מסיביים. בבלוג שלו, למשל, פיט וורדן של גוגל כתב ששיתוף פעולה בין צוותי קוואלקום ו-Tensorflow מאפשר למודלים של 8 סיביות לרוץ עד פי שבעה מהר יותרב-HVX DSP מאשר במעבד. קשה להפריז בפוטנציאל של קוונטיזציה קלה לשימוש, במיוחד לאור האופן שבו קוואלקום התמקדה בביצועי INT8.

המעבד Kryo מבוסס ARM של Snapdragon 865 הוא עדיין מרכיב חשוב במנוע הבינה המלאכותית. למרות שהאצת החומרה הנדונה בפסקאות לעיל עדיפה, לפעמים אנחנו לא יכול להימנע מיישומים שאינם מנצלים כראוי את היתרונות של בלוקים אלה, וכתוצאה מכך מעבד לסגת. בעבר, ARM הציגה ערכות הוראות ספציפיות שמטרתן להאיץ חישובים מבוססי מטריצות ווקטורים. במעבדי ARMv7 ראינו את ההקדמה של ARM NEON, הרחבה של ארכיטקטורת SIMD המאפשרת הוראות דמויות DSP. ועם המיקרו-ארכיטקטורה ARMv8.4-A, ראינו את ההקדמה של הוראה ספציפית למוצרי נקודות.

כל הישגי הביצועים הללו קשורים לרבים מעומסי העבודה שתיארנו בסעיף הקודם, אך כדאי גם לזכור שהשדרוגים האלה של Snapdragon 865 הם רק האחרונה שיפורים ביכולות ה-AI של קוואלקום. בשנת 2017, תיעדנו את שילוש יכולות ה-AI שלהם עם Hexagon 685 DSP ועדכוני ערכות שבבים אחרים. בשנה שעברה, הם הציגו את מאיץ הטנזור שלהם, ותמיכה משולבת בפונקציות לא-לינאריות (כמו ה-ReLU שהוזכר לעיל!) ברמת החומרה. הם גם הכפילו את מספר מאיצי הווקטור ושיפרו את ביצועי יחידת העיבוד הסקלרית ב-20%. שילוב כל זה עם שיפורים בצד המעבד, כמו פעולות מוצר נקודות מהירות יותר באדיבות ARM, וה-ALUs הנוספים ב-GPU, קוואלקום בסופו של דבר מוּכפָּל פִּי שָׁלוֹשׁ גם יכולות AI גולמיות.

רווחים מעשיים ומקרי שימוש מורחבים

כל השדרוגים הללו הובילו ליכולות הבינה המלאכותית פי חמישה ב-Snapdragon 865 בהשוואה לפני שנתיים בלבד, אבל אולי הכי חשוב, השיפורים הגיעו גם עם ביצועים טובים יותר למיליוואט, מדד קריטי למובייל מכשירים. בפסגת Snapdragon 2019, קוואלקום נתנה לנו כמה מדדים שהשוו את מנוע ה-AI שלהם מול שני מתחרים ברשתות סיווג שונות. נראה שהנתונים הללו נאספים באמצעות AIMark, אפליקציית השוואת פלטפורמות חוצת פלטפורמות, המאפשרת השוואה מול מעבדי ה-A-A של אפל ומעבדי HiSilicon של Huawei. קוואלקום טוענת שהתוצאות הללו עושות שימוש בכל מנוע ה-AI, ונצטרך לחכות לעוד בדיקה יסודית כדי להפריד כראוי את ההשפעה של כל רכיב ולקבוע כיצד היו בדיקות אלו מנוהל. לדוגמה, האם התוצאות מחברה B מצביעות על נפילת CPU? למיטב ידיעתי, AIMark לא מרוויח כרגע את ה-NPU של Kirin 990 ביחידות ה-Mate 30 Pro שלנו, למשל. אבל הוא כן תומך במנוע העיבוד העצבי של Snapdragon, כך שהוא בהחלט ינצל את מנוע ה-AI של Qualcomm; בהתחשב בבדיקה פנימית, לא ברור במפורש אם ה-benchmark מנצל נכון את הספריות או ה-SDK הנכונות עבור מתחריו.

יש לומר גם שקוואלקום משווה ביעילות את יכולות עיבוד ה-AI של Snapdragon 865 מול ערכות שבבים שהוכרזו או שפורסמו בעבר. סביר מאוד שהמתחרים שלה יביאו שיפורי ביצועים בעלי השפעה דומה במחזור הבא, ואם זה במקרה, אז קוואלקום תחזיק בכתר רק כחצי שנה מהרגע שמכשירי Snapdragon 865 יגיעו למדפים. עם זאת, אלה עדיין מעידים על סוג המהמורות שאנו יכולים לצפות מה-Snapdragon 865. קוואלקום הייתה בדרך כלל מדויקת מאוד בתקשורת שיפורים בביצועים ותוצאות ביצועים של מהדורות קרובות.

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

במונחים של צריכת חשמל, קוואלקום הציעה מסקנות לוואט כדי להציג את כמות עיבוד הבינה המלאכותית האפשרית בכמות כוח נתונה. במקרה הטוב ביותר (MobileNet SSD), Snapdragon AI Engine יכול להציע מספר כפול של מסקנות תחת אותו תקציב כוח.

כוח חשוב במיוחד עבור מכשירים ניידים. חשבו, למשל, על מסנן Snapchat מבוסס רשת עצבית. באופן מציאותי, צינור הראייה הממוחשבת מחלץ מידע פנים ומחיל מסכה או קלט הטרנספורמציה צריכה לפעול רק בקצב של 30 או 60 השלמות בשנייה כדי להשיג נוזל ניסיון. הגדלת ביצועי בינה מלאכותית גולמית תאפשר לך לקחת קלט ברזולוציה גבוהה יותר ולהוציא מסננים שנראים טוב יותר, אבל זה עשוי פשוט עדיף להסתפק ברזולוציית HD להעלאות מהירות יותר ולהפחתת צריכת החשמל ומצערת תרמית. ביישומים רבים, "מהיר יותר" אינו בהכרח "טוב יותר", ואז אפשר לקצור את היתרונות של שיפור יעילות החשמל.

במהלך היום השני של פסגת Snapdragon, ראש ההנדסה האב ב-Snapchat Yurii Monastyrshyn עלה לבמה כדי להראות כיצד המסננים האחרונים שלהם מבוססי למידה עמוקה מואצים מאוד על ידי Hexagon Direct NN באמצעות Hexagon 695 DSP על Snapdragon 865.

נוסף על כך, כאשר מפתחים מקבלים גישה ליישומי רשת נוירונים קלים יותר ויישומים נוספים מתחילים להשתמש בטכניקות בינה מלאכותית, מקרי שימוש במקביל יקבלו יותר זרקור מכיוון שהסמארטפון יצטרך להתמודד עם מספר רב של צינורות AI מקבילים בו-זמנית (או עבור יישום יחיד המעבד אותות קלט ממקורות שונים או ככל שיישומים רבים פועלים בנפרד על המכשיר). בעוד שאנו רואים רווחי צריכת חשמל מכובדים על פני DSP, GPU ו-CPU המחשוב, Qualcomm Sensing Hub מטפל במקרים של שימוש תמידי כדי להאזין למילות טריגר בצריכת חשמל נמוכה מאוד. זה מאפשר ניטור הזנות של אודיו, וידאו וחיישנים במתח של פחות מ-1mA של זרם, מה שמאפשר למכשיר לזהות רמזים קוליים מסוימים (כמו תינוק בוכה), על גבי מילות המפתח המוכרות של העוזר הדיגיטלי. בנימה זו, ה-Snapdragon 865 מאפשר לזהות לא רק את מילת המפתח אלא גם את מי שמדבר אותה, לזהות משתמש מורשה ולפעול בהתאם.

עוד AI במכשירי Edge

שיפורים אלה יכולים בסופו של דבר לתרגם ליתרונות מוחשיים עבור חווית המשתמש שלך. שירותים הכוללים תרגום, זיהוי ותווית אובייקטים, תחזיות שימוש או המלצות לפריטים, הבנת שפה טבעית, ניתוח דיבור וכן הלאה ירוויחו את היתרון של לפעול מהר יותר ולצרוך פחות כּוֹחַ. תקציב מחשוב גבוה יותר מאפשר גם יצירת מקרי שימוש וחוויות חדשות, והעברת תהליכים שהתרחשו בעבר בענן אל המכשיר שלך. בעוד ש-AI כמונח שימש בדרכים מפוקפקות, מטעות ואפילו שגויות בעבר (אפילו על ידי יצרני OEM), רבים מהשירותים שלך שאתה נהנה מהם כיום מסתמכים בסופו של דבר על אלגוריתמים של למידת מכונה בצורה כלשהי או אַחֵר.

אבל מעבר לקוואלקום, יצרניות שבבים אחרות חזרו במהירות והשתפרו גם בחזית זו. לדוגמה, ה-990 5G הביא עיצוב ליבה של 2+1 NPU שהביא לביצועים של עד פי 2.5 מה-Kirin 980, ופעמיים מזה של Apple A12. כאשר המעבד הוכרז, הוכח שהוא מציע עד פי שניים את הפריימים (הסקות) בשנייה של Snapdragon 855 ב-INT8 MobileNet, שקשה להתאים לתוצאות שמספקת קוואלקום. לעומת זאת, ה-Apple A13 Bionic הציע כפל מטריצה ​​מהיר פי שישה לעומת קודמו ושיפר את עיצוב המנוע העצבי שמונה ליבות שלו. נצטרך לחכות עד שנוכל לבדוק כראוי את ה-Snapdragon 865 במכשירים מסחריים מול מתחריו הנוכחיים והעתידיים, אבל זה ברור שהתחרות בתחום הזה אף פעם לא נשארת דוממת שכן שלוש החברות הזרימו המון משאבים לשיפור הבינה המלאכותית שלהן ביצועים.