DX11 DX12 Vulkan והמצב כרגע - כרטיסי מסך - HWzone פורומים
עבור לתוכן
  • צור חשבון

DX11 DX12 Vulkan והמצב כרגע


coch

Recommended Posts

אהלן

 

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

משמעותי בין כל השינויים האלה בשוק ה . הימים ש DX12 היה טרי מאוד, ו WIN 10 היה טרי מאוד - עברו,

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

 

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

 

נתחיל בזה שבדקתי את השינויים שהטמיעו ב Deus Ex : MD שנחשב משחק גרפי וכבד מאוד. 

בבנצ'מרק הפנימי של המשחק ( מקורי בסטים, פאץ' אחרון ) היה הבדל של 2.2 פריימים ממוצעים לטובה DX11 עם הכרטיס שלי ( 1070GTX ).

 

BF1 מבחינתי זה אותו סיפור. תוך כדי המשחק ( ממוצע של 60 שחקנים +- בשרת ) הפריימים בין שתי האופציות - כמעט וזהים, וניצול ה GPU\CPU לא

משתנה משמעותית. מדובר במנוע מעולה.

 

דוגמא נוספת שבדקו בגורו היא המשחק החדש האחרון שיצא שעדיין לא בדקתי - http://www.guru3d.com/articles_pages/star_wars_battlefront_ii_2017_pc_graphics_analysis_benchmark_review,7.html

 

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

 

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

ל BF1 שמכבים את הנעילת פריימים.. בעצם אין כל כך הבדל בין ל DX11\12. הפריימים המקסימליים באחד מהמצבים 

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

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

את ה 150 פריימים - פונים ל כשדרוג\יתרון משמעותי מהשאר ? זוהי שגיאה. ניצול ה CPU\GPU משתנה ממשחק

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

או שניים כדי להחליט דברים לא מדויקים.

 

תמיד אמרתי שלא יהיה הבדל בין DX11 ל DX12 ואנחנו תיכף ב 2018 והמצב נשאר זהה.

אני לא מאמין ש ב 2019 זה ישתנה.

 

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

לשוק בינוני. אני סקרן אם זה קרוב מאוד ( ) או שזה יקרה בעוד דור קדימה.

 

שורה תחתונה - אין הבדל בין DX12 DX11 ו Vulkan וזה לא צריך להיות שיקול, חוץ מהצד שמפתח את המשחק.

הפערים המשמעותיים יותר שרואים במשחקים ( נניח 15-20 פריימים לטובת 480 על 1060 ) זה סה"כ 

אופטימיזציה למשחקי או במקרים הפוכים ל .. 

 

 

קישור לתוכן
שתף באתרים אחרים

אם המפתח של הכותר אינו מנצל אלגוריתמית אל היכולות ש DX12 או נותנים לו ב- low level api אז לא יהיה הבדל

והמסקנה תצא שגויה.

 

שפות הקידוד ש- DX12 ו- מאפשרות למפתח יעילות יותר מ- DX11 בסדר גודל כדי בין פי 1.5 ועד פי 3 סדר גודל.

העניין הוא שלבצע אופטימיזציית קוד תחת low level api הינו תהליך מאד יקר וסזיפי, ונדרש להתבצע פר של מאיץ ומאיץ בנפרד.

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

 

ולכן השאלה שהעלתה היא הפער בין היכולת התאורטית, לבין מה דה פקטו קורה בשטח.

קרי יש פוטנציאל, אך לא ממש מנצלים אותו בפרקטיקה.

לעניין זה נציג את הכותר שב- 2016 נוצר שפור של פי 1.5 ביצועים במעבר בין DX11 ל- תחת ארכיטקטורת

GCN , שיפור אותו הטמיעו יפה מאד בית התוכנה שפיתחה את id-tech engine 6.

 

קישור לתוכן
שתף באתרים אחרים

ציטוט של nec_000

שפות הקידוד ש- DX12 ו- Vulkan מאפשרות למפתח יעילות יותר מ- DX11 בסדר גודל כדי בין פי 1.5 ועד פי 3 סדר גודל.

 

ולכן השאלה שהעלתה היא הפער בין היכולת התאורטית, לבין מה דה פקטו קורה בשטח.

קרי יש פוטנציאל, אך לא ממש מנצלים אותו בפרקטיקה.

 

 

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

הדוגמא מגיע לגבול ה 200-220 מקסימום פריימים עם כרטיס מסך דומה ל 1070Ti תחת כאשר הממוצע המקסימלי

של DX עומד איפשהו בערך על 180-190. אכן הבדל יפה ומשמעותי אך מי כמוך מכיר ויודע.. שהוא לא רלוונטי. אנו נועלים את הפריימים גם ככה ( מי שמכיר ומנוסה ). המינימום פריימים הם החשובים ואין הבדל בין המקרים במינימום. 

הפוטנציאל קיים תאורטית, לא עוזר לאף אחד אני מניח. מה שחשוב זה באמת מה קורה בפועל.

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

AMD עם פריימים כאלה בשמיים. יש לי מסך 60 או אפילו 144.. לא יהיה הבדל בין שני ה API's.. להראות את

הפוטנציאל של המקסימום פריימים ( שזה לא ר ל ו ו נ ט י ) זה לא יותר מקלף שיווקי.. זה למה זה רק משחק אחד

מתוך 200 שיצאו השנה. אבל שיהיה.. הפוטנציאל תמיד קונה אנשים.

 

שבוע טוב

 

קישור לתוכן
שתף באתרים אחרים

ננסה להסביר את השימושיות ממקום אחר,

 

נניח יש לנו כותר משחק, שמסוגל תחת הגדרות גראפיות מסוימות לספק רק 30FPS תחת מאיץ גרפי נתון.

ואנו רוצים יותר מ- 30FPS (באם הדבר אפשרי כמובן).

 

אז מעבירים את הקידוד הלא יעיל DX11 (שהוא קידוד עילי בשפה תכנותית) ומשתמשים במקומו בקידוד low level api כמו vulkan

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

הנתון, ואז ה- FPS עולה לאזור 45-60 נגיד.

 

זה המצב בו יש לנו אינסנטיב להשתמש במנוע הגרפי היעיל, משום שהוא נותן לנו שפור בתוך התחום הרלוונטי של FPS (30-60).

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

בדומה לדבריך מעלה.

 

דוגמא מעשית:

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

כך שגם מאיץ 1080ti (שזה הטופ שיש כיום בשוק) אינו מסוגל לעבור 40FPS בהגדרות גראפיות אלו.

פה למעבר אל תהיה השפעה טובה, אם נוכל לעלות אל מעל 60FPS למשל. אנו ניקח את השיפור בשתי ידיים בשמחה.

 

 

למעשה למי שפחות בקיא בקידוד, ישמח ללמוד שהדרייבר DX11 עובד בשתי תצורות עקרוניות ונפרט לטובת הקורא:

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

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

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

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

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

 

כאשר עוברים למוד מאופטמז בדרייבר DX11, יצרנית הדרייבר (נוידיאה או AMD) פועלת בכמה רבדים:

ראשית היא מנתרת את הפקודות הגראפיות שהכותר מריץ אינהרנטית. קרי לומדת אותו. שלב הבא היא עושה שני דברים:

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

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

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

מיצרנית הכותר. דבר המצריך שיתוף פעולה הדוק בין כותבי הדרייבר למפתחת הכותר (העברת source code).

שילוב של שני אלו מניב העלאת ביצועים כדי 10-30% סדר גודל טיפוסי וזה לא מעט.

 

מצד שני במעבר לקידוד low level, עוקפים לחלוטין את כל הקומפילציה וכל ההתאמות הללו בדרייבר, וכותבים כבר במנוע הגרפי של

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

המעבד שיבצע קומפילציה בזמן אמת.

חוסכים גם קמפול למעבד של המחשב, וגם מתכנתים מראש את הפקודות למאיץ הגראפי, מתוך התחשבות ביתרונות היחסיים של

הארכיטקטורה שלו, למעשה פונים אליו באופן מיטבי. כאן הקידוד ב- low level api חייב להיעשות פרטנית שונה לכל סדרה וסדרה של

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

אלא שבהטמעת low level API השיפור כבר מגיע ל- 50%, ויכול להגיע עד כדי 300% במקרים בהם הכותר ו/או DX11 לא כל כך

עובדים באופן מיטבי מלכתחילה.

 

מעניין ?

**יכול להרחיב עוד, עם פירוט איך עושים אופטימיזציה פריטטית בדרייבר, עם דוגמא.

קישור לתוכן
שתף באתרים אחרים

ציטוט של nec_000

 

אז מעבירים את הקידוד הלא יעיל DX11 (שהוא קידוד עילי בשפה תכנותית) ומשתמשים במקומו בקידוד low level api כמו vulkan

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

הנתון, ואז ה- FPS עולה לאזור 45-60 נגיד.

 

 

לא יצא לראות אף משחק שנתון לרחמי 30 פריימים, ואופצית החלפה ל  תראה לנו קצב קבוע של 45-60.

שזה יקרה בפועל, אני יוכל לטעון ללא כל צל של ספק שיש פה משהו מעניין.

 

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

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

שאגב - אני לא מתווכח שהיא קיימת פוטנציאלית - אני לא מתכנת ככה שאני מסתכל על התמונה הרחבה, כמה משחקים יש

וכמה משחקים עד עכשיו ראינו ומה בפועל קורה בתחתית - איפה שיש משמעות מורגשת לנושא ה FPS.

 

כמו הרבה דברים תאורטיים, לא תמיד הם כלכליים. אולי הם יהיו, אבל כרגע אני רואה DX בשוק כמו שנה שעברה

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

 

 

 

קישור לתוכן
שתף באתרים אחרים

זה קיים למשל במאיצים גרפיים חלשים.

קח אחד כזה שמחלץ 30FPS ב- , וכשעוברים לוולקן זה עולה ל- 45. לדוגמא HD7770 מקיים זאת.

 

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

בנתיים id-tech6 אחד החלוצים והבודדים.

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...