Στο πλαίσιο ερευνητικού έργου
Για δοκιμή
Στο επόμενο στάδιο, σχεδιάζεται επίσης η μετακίνηση διαδικαστικών βελτιστοποιήσεων RTL σε ξεχωριστά νήματα, λαμβάνοντας υπόψη τα χαρακτηριστικά της πλατφόρμας υλικού. Μετά από αυτό, σχεδιάζουμε να εφαρμόσουμε παραλληλοποίηση ενδοδιαδικαστικών βελτιστοποιήσεων (IPA) που εφαρμόζονται στον κώδικα εντός της συνάρτησης, ανεξάρτητα από τις ιδιαιτερότητες της κλήσης. Ο περιοριστικός σύνδεσμος προς το παρόν είναι ο συλλέκτης απορριμμάτων, ο οποίος έχει προσθέσει ένα παγκόσμιο κλείδωμα που απενεργοποιεί τις λειτουργίες συλλογής σκουπιδιών ενώ εκτελείται σε λειτουργία πολλαπλών νημάτων (στο μέλλον ο συλλέκτης απορριμμάτων θα προσαρμοστεί για την εκτέλεση πολλαπλών νημάτων του GCC).
Για την αξιολόγηση των αλλαγών στην απόδοση, έχει ετοιμαστεί μια δοκιμαστική σουίτα που συγκεντρώνει το αρχείο gimple-match.c, το οποίο περιλαμβάνει περισσότερες από 100 χιλιάδες γραμμές κώδικα και 1700 λειτουργίες. Οι δοκιμές σε ένα σύστημα με επεξεργαστή Intel Core i5-8250U με 4 φυσικούς πυρήνες και 8 εικονικούς (Hyperthreading) έδειξαν μείωση του χρόνου εκτέλεσης των βελτιστοποιήσεων Intra Procedural GIMPLE από 7 σε 4 δευτερόλεπτα όταν εκτελούνται 2 νήματα και σε 3 δευτερόλεπτα όταν εκτελούνται 4 νήματα, δηλ. Αύξηση στην ταχύτητα του υπό εξέταση σταδίου συναρμολόγησης επιτεύχθηκε κατά 1.72 και 2.52 φορές, αντίστοιχα. Οι δοκιμές έδειξαν επίσης ότι η χρήση εικονικών πυρήνων με Hyperthreading δεν οδηγεί σε αυξημένη απόδοση.
Ο συνολικός χρόνος κατασκευής μειώθηκε κατά περίπου 10%, αλλά σύμφωνα με τις προβλέψεις, η παραλληλοποίηση των βελτιστοποιήσεων RTL θα επιτρέψει την επίτευξη πιο απτών αποτελεσμάτων, καθώς αυτό το στάδιο απαιτεί πολύ περισσότερο χρόνο κατά τη μεταγλώττιση. Περίπου μετά την παραλληλοποίηση RTL, ο συνολικός χρόνος συναρμολόγησης θα μειωθεί κατά 1.61 φορές. Μετά από αυτό, θα είναι δυνατό να μειωθεί ο χρόνος κατασκευής κατά άλλο 5-10% παραλληλίζοντας τις βελτιστοποιήσεις IPA.
Πηγή: opennet.ru