עבור לתוכן

האם זה נכון להשוות מעבדים בצורה כזאת

Featured Replies

פורסם

היי. התבקשתי לבדוק Performance של תוכנה מסויימת.

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

עכשיו אני צריך לתת תוצאה במעבד הישן יותר. 

לפי אתר CPU benchmark, ה-Effective Speed שאני מקבל בין המעבדים זה שהמעבד בו בוצעו הבדיקות מהיר ב269 אחוז.

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

לגבי RAM, התאמתי את כמות הזיכרון ב-Virtual Machine.

תודה.

נערך על-ידי Zeev86

פורסם

אם המעבד מהווה 100% מהגורמים לביצועי התוכנה אז כן.

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

הקומפיילר מסוגל לעשות בהם שימוש רק כשהמעבד תומך.

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

נערך על-ידי Art Tatum

פורסם

על איזה מעבדים מדובר?


נכון זה להריץ את אותה תוכנה על שני המעבדים עם חומרה זהה מסביב ולא להשתמש ב-VM כשעושים מדידות ביצועים. גם אם למעבד השפעה של 100% על מהירות הריצה עדיין תוכנות שונות עושות שימוש במשאבים שונים של המעבד והמספר הזה (269%) הוא רק איזה ממוצע כללי של הרבה תוכנות והוא לא דווקא נכון לתוכנה הספציפית ולמשאבים שהיא צריכה. אם הארכיטקטורה של שני המעבדים מאוד דומה ,למשל השוואה בין מעבדי אינטל בדורות האחרונים, אז המספר הכללי הזה יכול להיות מספיק טוב אבל בגדול אי אפשר לייצג את ההבדל בין מעבדים שונים במספר אחד כללי שאמור לייצג את כוח המעבד.

נערך על-ידי etal

פורסם

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

 

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

פורסם
  • מחבר

תודה רבה על התשובות.

ארכיון

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

דיונים חדשים