Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Οι x86 επεξεργαστές δεν είναι πλέον απλά x86 - οι instruction decoding units των παράγουν micro-ops, που μοιάζουν πολύ με RISC εντολές (οι πολύπλοκες x86 εντολές παράγουν μια σειρά από micro-ops). Έπειτα έχεις πολλές εντολές SSE/2/3/whatever, AVX και δε συμμαζεύεται (οι οποίες είναι SIMD εντολές και δεν έχουν καμία σχέση με την x86 ISA).

 

Το να έχουν οι Haswell ένα 10% πάνω σε single-threaded απόδοση είναι κατόρθωμα και με μικρή σημασία - όμως έρχονται με transactional memory (μεγάλο συν για multithreaded εφαρμογές), AVX2 και άλλα επιπλέον, που αν ο compiler τα εκμεταλευτεί, αυξάνουν τις επιδόσεις παραπάνω από 40%, που είναι απόλυτα σεβαστό.

  • Like 1
Δημοσ.

Αδερφέ έχεις δίκιο στη πρώτη παράγραφο αλλά εδώ το AVX και δεν το χουν υιοθετήσει ακόμα...και μιλάμε για το 2.

 

Πάνω από 40%?? Ακόμα και με SIMD δεν έχω δει πουθενά εγώ κάτι τέτοιο ακόμα και στα ευνοικά σενάρια.Θα δούμε.

Δημοσ.

Τα ευνοϊκά σενάρια σήμερα δεν έχουν πρόσβαση σε SIMD gather εντολές που έχει το AVX2. Ο λόγος που δε βλέπουμε τραγικές διαφορές στην ταχύτητα ακόμα και σήμερα είναι ότι οι περισσότεροι κοινοί compilers (MSVC, gcc, clang κλπ) έχουν απαράδεκτο vectorization. Άμα χρησιμοποιήσεις κάποιον compiler που κάνει καλό vectorization (πχ PGI, Cray κλπ) τότε θα δεις διαφορά.

Δημοσ.

Ευνοικό σενάριο εννοούσα την υποστήριξη AVX2 απο την εφαρμογή με τον κατάλληλο compiler.Όταν βγουν οι Haswell θα δούμε 1-2 συγκρίσεις σε 1-2 τεστ με AVX2 με αρκετό κέρδος σε επιδόσεις και αυτό ήταν,τουλάχιστον αρχικά..Το θέμα είναι τι κάνει κατά μέσο όρο στα περισσότερα όχι σε ειδικές συνθήκες που αποτελούν το 0.1%.

  • Like 1

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...