לא הכל ורוד

חזרתי עכשיו מהרצאה בחייפוקס, שבה דיברה דורית ניישלוס על שינוייים ש-IBM מכניסים ל-gcc (הקומפיילר של GNU). מסתבר ש-gcc עבר שינויים מרחיקי לכת ביכולות שלו לבצע אופטימיזציות על הקוד בתקופה האחרונה. השינויים יהיו נגישים החל מהגרסה הקרובה של gcc (גרסה 4.0).

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

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

שחר

מאת

שחר שמש

מייסד–שותף וחבר ועד בתנועה לזכויות דיגיטליות מייסד שותף בעמותת „המקור”. פעיל קוד פתוח. מפתח שפת התכנות Practical

4 תגובות בנושא “לא הכל ורוד”

  1. לפני מספר שנים gcc החליטו כי יותר חשוב להם כי הקומפיילר שלהם ירוץ על כמה שיותר פלטפורמות, מאשר שהביצועים שלו יפיקו את המירב מהמעבד. ואכן, gcc רץ על מספר פלטפורמות גדול ביותר וכולל מספר פלטפורמות ישנות וזניחות (מבחינת שכיחות). בה בעת, קומפיילרים שרצים רק על פלטפורמה בודדת המשיכו לשפר את הביצועים שלהם. המצב הגיע לידי כך שהביצועים של הקופילר של מיקרוסופט ושל אינטל על פלטפורמת x86 היו טובים בצורה משמעותית מאלה של gcc. (במשך תקופה ארוכה לא הוסיפו ל gcc אופטימיזציות למעבדים חדשים מ 386) בעקבות השוואות לאחרים ב-gcc החליטו לשנות כיוון ולהתחיל להשקיע בביצועים. גרסה 3 נתנה שיפור רציני, אם כי במבחנים בילתי תלויים עדיין הפלט של המהדר של אינטל רץ בכ-20-30% יותר מהר, הפרש מאוד לא זניח (גם בבדיקות שבצעתי בעצמי הגעתי לאותן תוצאות). אני מחכה בכליון עיניים לגרסה 4, אולי הפער יצטמצם

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

      שחר

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

Bear