זהו הפקודה likwid-bench שניתן להריץ בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור המקוון של Windows או אמולטור מקוון של MAC OS
תָכְנִית:
שֵׁם
likwid-bench - חבילת benchmark ברמה נמוכה ומסגרת microbenchmarking
תַקצִיר
likwid-bench [-האפ] [-l ] [-i ] [-g ] [-t
] [-w ]
תיאור
likwid-bench היא חבילת בנצ'מרק למדידה ברמה נמוכה (הרכבה).
רוחבי פס ותפוקת הוראות עבור קוד הוראות ספציפי במערכות x86. ה
קודי ההשוואה הכלולים כעת כוללים דפוסי גישה נפוצים לנתונים כמו טעינה ואחסון
אלא גם חישובים כמו שלישיה וקטורית וסכום. likwid-bench כולל אדריכלות
אמות מידה ספציפיות עבור x86, x86_64 ו-x86 עבור מעבדי משותף של Intel Xeon Phi. ה
ניתן לחשב ערכי ביצועים לפי likwid-bench או נמדד באמצעות ביצועים
מונים על ידי שימוש. likwid-perfctr בתור עטיפה ל likwid-bench. זה דורש לבנות
likwid-bench. עם מכשור שניתן להפעיל ב-config.mk.
אפשרויות
-h מדפיס הודעת עזרה לפלט סטנדרטי, ואז יוצא.
-a רשום את קודי ההשוואה הזמינים עבור המערכת הנוכחית.
-p רשימה זמינים של תחומים שרשורים.
-l
רשום את המאפיינים של קוד בנצ'מרק.
-i
מספר האיטרציות לביצוע בתוך קוד ההשוואה.
-t
שם קוד ההשוואה להפעלה (חובה).
-g
ציין את מספר קבוצות העבודה בהן יש לבצע את קוד ההשוואה (חובה).
-w
ציין את תחום הזיקה, ספירת השרשורים וגודל מערך הנתונים עבור הנוכחי
ריצת בנצ'מרקינג (חובה).
קבוצה לעבודה תחביר
: [: [: : ]] [- : ]
עם גודל ב-KB, MB או GB. המקום שבו תחום השרשור הוא המקום שבו ממוקמים השרשורים. הגודל הוא ה
גודל מערך הנתונים הכולל עבור המדד. num_threads מציין בכמה שרשורים נעשה שימוש.
חוטים ממוקמים תמיד באמצעות מדיניות קומפקטית ב likwid-bench. המשמעות היא שלפר
ברירת המחדל נעשה שימוש בכל פתילי SMT. אופציונלי דומה לתחביר מבוסס הביטוי ב
likwid-pin ניתן לספק גודל נתח וצעד. אופציונלי עבור כל אמצעי זרם
מערך ניתן לשלוט במיקום. כברירת מחדל כל המערכים ממוקמים באותו אופן
תחום השרשורים שבהם פועלים השרשורים. כדי למקם את הנתונים בדומיין אחר עבור
כל זרם של מקרה אמת מידה (ניתן להשיג את המספר הכולל של הזרמים על ידי ה-l
אפשרות) ניתן לציין את הדומיין שבו יש למקם את הנתונים. זרמים מרובים הם פסיקים
מופרד. או שהמיקום מסופק או שכל הזרמים צריכים להיות ממוקמים במפורש.
אנא עיין בדפי ויקי על http://code.google.com/p/likwid/wiki/LikwidBench ל
פרטים נוספים ודוגמאות על שימוש.
דוגמא
1. הפעל את רף ההעתקה עם 1000 איטרציות על שקע 0 עם גודל ערכת נתונים כולל של
100KB.
likwid-bench -t העתק -i 1000 -g 1 -w S0:100kB
מכיוון שלא מספר_פתיל נתון בביטוי עומס העבודה, כל ליבה של שקע 0 מקבלת אחד
פְּתִיל. עומס העבודה מתחלק בין כל השרשורים.
2. הפעל את קוד ה-benchmark המשולש עם 100 איטרציות עם 2 חוטים על שקע 0 ו-
גודל נתונים של 1 GB.
likwid-bench -t שְׁלִישִׁיָה -i 100 -g 1 -w S0:1GB:2:1:2
בהנחה שלשקע 0 יש 4 חוטי SMT, חוט אחד מוקצה לכל ליבה פיזית של
שקע 0.
3. הפעל את רף העדכון עם 1000 איטרציות על שקע 0 עם עומס עבודה של 100kB ו
על שקע 1 עם אותו עומס עבודה.
likwid-bench -t עדכון -i 1000 -g 2 -w S0:100kB -w S1:100kB
התוצאות של שתי קבוצות העבודה משולבות עבור הפלט. מכאן עומס העבודה בכל אחד
ביטוי קבוצת עבודה צריך להיות באותו גודל.
4. הפעל את רף ההעתקה אך מדוד את תעבורת הזיכרון באמצעות likwid-perfctr. האפשרות
INSTRUMENT_BENCH ב-config.mk צריך להיות נכון בזמן הקומפילציה כדי להשתמש בתכונה זו.
likwid-perfctr -C E:S0:4 -g ממ -m likwid-bench -t עדכון -i 1000 -g 1 -w S0:100kB
likwid-perfctr יגדיר ויתחיל את מוני הביצועים בשקע 0 עם 4
חוטים לפני ביצוע likwid-bench. מוני הביצועים נקראים נכון
לפני ואחרי הפעלת קוד ההשוואה כדי למזער את ההפרעות של
מדידה.
5. הפעל את מדד ההעתקה והצב את הנתונים על שקע אחר
likwid-bench -t העתק -i 50 -g 1 -w S0:1GB:10:1:2-0:S1,1:S1
זרם מזהה 0 ו-1 ממוקמים בדומיינים של חוט S1, שהוא שקע 1. ניתן לאמת זאת
כשחוטי האתחול יוצאים במקום שבו הם פועלים.
השתמש ב-likwid-bench באינטרנט באמצעות שירותי onworks.net