Ziant Δημοσ. 11 Ιανουαρίου 2014 Δημοσ. 11 Ιανουαρίου 2014 Η απάντηση είναι ότι έχει 8 πραγματικούς πυρήνες , άρα θα μπορούσαμε να πούμε ότι είναι οκταπύρηνος, αλλά στην πράξη ταυτόχρονα σε ένα σημείο dt, δουλεύουν μόνο οι τέσσερις από τους 8. Στην ουσία είναι τετραπύρηνος. Πρώτα να ορίσουμε τι είναι core/thread. Core είναι ο πυρήνας του επεξεργαστή, υπάρχει ο πραγματικός πυρήνας που βρίσκεται επάνω στον επεξεργαστή, και ο λογικός πυρήνας που τον βλέπει το λειτουργικό. Ο 8350 έχει 8 πραγματικούς πυρήνες και το λειτουργικό τους βλέπει ως 8 λογικούς πυρήνες. Ο intel 4770 έχει 4 πραγματικούς πυρήνες αλλά το λειτουργικό βλέπει 8 λογικούς πυρήνες λόγω hyper – threading. Thread (νήμα) είναι μια σειρά εντολών με αρχή και τέλος, ένα πρόγραμμα έχει μια ή παραπάνω process (διεργασία), μια process έχει ένα ή παραπάνω thread. Το λειτουργικό όπως είπα παραπάνω βλέπει μόνο λογικούς πυρήνες, άσχετα πόσοι πραγματικοί πυρήνες υπάρχουν επάνω στον επεξεργαστή, σε κάθε λογικό πυρήνα αναθέτει ένα thread, μέχρι να τελειώσει ο πυρήνας τις εντολές, δεν μπορεί το λειτουργικό/πρόγραμμα να του αναθέσει άλλο thread. Ο 8350 έχει 4 modules, η κάθε module ("Αυτόνομη Επεξεργαστική Μονάδα") έχει 2 πυρήνες, ο κάθε πυρήνας έχει την δική του L1 cache, αλλά και οι 2 πυρήνες έχουν κοινή L2 cache, Fpu, Fetch, Decode. Εάν το λειτουργικό/πρόγραμμα αναθέσει 2 thread στους πυρήνες του ίδιου module ταυτόχρονα, ο ένας πυρήνας θα εκτελέσει ένα thread, και ο άλλος θα είναι σε αναμονή μέχρι να τελειώσει ο πρώτος πυρήνας τις εντολές του thread. Δηλαδή αν ο πυρήνας χρειάζεται 1 ms για να εκτελέσει ένα thread (υποθετικά), σε 1 ms έχει εκτελεστεί μόνο 1 thread, γιατί ο άλλος πυρήνας είναι σε αναμονή, άρα κάθε 1 ms θα εκτελείτε 1 thread και όχι 2. Η λογική της amd ήταν να βάλει σε κάθε module 2 πυρήνες, ώστε να μπορεί ο κάθε πυρήνας να βλέπει (όχι να χρησιμοποιεί) τη L1 cache του άλλου, για να συνεργάζονται, αλλά στην πράξη ο ένας πυρήνας καθυστερεί τον άλλο, έκτος περιπτώσεων που μπορεί ο ένας πυρήνας να εκτελέσει ένα μικρό κομμάτι του thread παράλληλα με τον άλλο. Αλλά αυτό είναι σπάνιο γιατί δεν μπορούν να χρησιμοποιήσουν το ίδιο “εργαλείο” ταυτόχρονα, ωστόσο ο πυρήνας δεν έχει λογική, εκτελεί εντολές σε δυαδικό σύστημα, περνάει ρεύμα ή δεν περνάει, αυτό καταλαβαίνει, για να συνεργαστούν ταυτόχρονα πρέπει να γραφτεί, λειτουργικό/προγράμματα από την αρχή = ποτέ… Για να μην υπάρχει αυτή η καθυστέρηση, αν δώσουμε 4 thread να εκτελέσει ο επεξεργαστής, φορτώνει 1 thread σε κάθε module (εφόσον το επιτρέπει το πρόγραμμα/λειτουργικό), αλλά το πέμπτο thread εφόσον δεν έχουν τελειώσει τα άλλα 4, θα πάει σε module που ήδη εκτελεί thread και θα μπει σε αναμονή. Άρα δίνουμε ταυτόχρονα 8 thread, 4 εκτελούνται, 4 σε αναμονή, 4 πυρήνες δουλεύουν, 4 σε αναμονή. Για να το καταλάβουν όλοι θα δώσω ένα οικοδομικό παράδειγμα. Έχουμε 2 εργάτες αλλά έχουν τα ίδια εργαλεία, ο ένας μπορεί να δει τις σημειώσεις που έχει δώσει ο εργοδηγός του άλλου, αλλά ο καθένας κάνει την δική του δουλεία, παίρνουν και οι 2 τις ίδιες σημειώσεις (threads), στους 40 πόντους από το πάτωμα κάθε ένα μετρό 10 πόντους τρύπα. Ξεκινά ο πρώτος παίρνει το μετρό, ο δεύτερος δεν μπορεί να κάνει τίποτα, μετράει και σημαδεύει με το μολύβι, ο δεύτερος μπορεί να πάρει το μέτρο, μετά το τρυπάνι κτλ. Εδώ αν και περίμενε ο ένας τον άλλο δούλεψαν ταυτόχρονα. Εάν οι σημειώσεις έλεγαν ότι οι τοίχοι είναι σημαδεμένοι και ανοίξτε τρύπες επάνω στα σημάδια, τότε ο ένας θα καθόταν και ο άλλος θα δούλευε ή εναλλάξ, άρα είτε ένας εργάτης είτε δύο θα έκαναν την ίδια δουλειά. Αυτό συμβαίνει στον 8350, o ένας πυρήνας δουλεύει και διπλά κάθεται, και τα κοινά τους εργαλεία είναι L2 μνήμη, κομπιουτεράκι, αποκωδικοποιητής κτλ. Έτσι αποδεικνύεται ότι ο amd 8350 είναι στην πράξη τετραπύρηνος και όχι οκταπύρηνος. Ο intel 4670 έχει 4 modules, κάθε module έχει ένα πραγματικό πυρήνα, μπορεί το κάθε module/πυρήνας να εκτελέσει ένα thread, έτσι δεν μπαίνει κανένας πυρήνας σε αναμονή. Ο 4770 έχει και αυτός 4 module με ένα πυρήνα στον καθένα, αλλά λόγω hyper – threading, το λειτουργικό βλέπει 8 λογικούς πυρήνες, μπορεί να αναθέσει 1 thread σε κάθε πυρήνα, έτσι ενώ έχει 4 πραγματικούς πυρήνες να εκτελέσει 8 thread ταυτόχρονα και κάθε module/πυρήνας να εκτελεί 2 thread ταυτόχρονα. Λεξικό... Process = ΔιεργασίαThread = ΝήμαFetch = Ανάκληση Decode = AποκωδικοποίησηFpu = Μονάδα Κινητής ΥποδιαστολήςModule = "Αυτόνομη Επεξεργαστική Μονάδα"Cache = Κρυφή ΜνήμηHyper Threading = Υπερνημάτωση Λινκ...Κεντρική Μονάδα Επεξεργασίας (cpu)http://el.wikipedia.org/wiki/%CE%9A%CE%B5%CE%BD%CF%84%CF%81%CE%B9%CE%BA%CE%AE_%CE%9C%CE%BF%CE%BD%CE%AC%CE%B4%CE%B1_%CE%95%CF%80%CE%B5%CE%BE%CE%B5%CF%81%CE%B3%CE%B1%CF%83%CE%AF%CE%B1%CF%82Ανάκληση [instruction cycle (Fetch)]http://en.wikipedia.org/wiki/Instruction_cycleΚρυφή μνήμη (cache)http://el.wikipedia.org/wiki/%CE%9A%CF%81%CF%85%CF%86%CE%AE_%CE%BC%CE%BD%CE%AE%CE%BC%CE%B7 Μονάδα Κινητής Υποδιαστολής (fpu)http://el.wikipedia.org/wiki/%CE%9C%CE%BF%CE%BD%CE%AC%CE%B4%CE%B1_%CE%9A%CE%B9%CE%BD%CE%B7%CF%84%CE%AE%CF%82_%CE%A5%CF%80%CE%BF%CE%B4%CE%B9%CE%B1%CF%83%CF%84%CE%BF%CE%BB%CE%AE%CF%82Υπερνημάτωση (Hyper threading) http://el.wikipedia.org/wiki/%CE%A5%CF%80%CE%B5%CF%81%CE%BD%CE%B7%CE%BC%CE%AC%CF%84%CF%89%CF%83%CE%B7Διεργασία (Process)http://el.wikipedia.org/wiki/%CE%94%CE%B9%CE%B5%CF%81%CE%B3%CE%B1%CF%83%CE%AF%CE%B1_%28%CF%85%CF%80%CE%BF%CE%BB%CE%BF%CE%B3%CE%B9%CF%83%CF%84%CE%AD%CF%82%29Νήμα (Thread)http://el.wikipedia.org/wiki/%CE%9D%CE%AE%CE%BC%CE%B1_%28%CF%85%CF%80%CE%BF%CE%BB%CE%BF%CE%B3%CE%B9%CF%83%CF%84%CE%AD%CF%82%29 4
adtakhs Δημοσ. 11 Ιανουαρίου 2014 Δημοσ. 11 Ιανουαρίου 2014 Εχεις χάσει την δουλειά που έχει κάνει η AMD στο front για το ταυτόχρονα τάισμα.... Φυσικά και δεν ισχύει κάτι τέτοιο. Καλά τα εξηγείς αλλά εξηγείς την λειτουργία σε επίπεδο πυρήνα και όχι σε επίπεδο module. Αν ήταν έτσι , ο FX 8350 θα ήταν κατά 35% χειρότερος σε multithread από τον Phenom II X6 1090T ο οποίος έχει 6 ανεξάρτητους πυρήνες , ενώ αν έκλεινες τον ένα πυρήνα του κάθε module θα είχες τις ίδιες επιδόσεις , πράγμα εντελώς άτοπο. Υπάρχει ένα θεματάκι με το decode στους πρώτους 81XX το οποίο λύθηκε εν μέρη με τους vishera και εντελώς με τους steamroller στους νέους APU .
TheELF Δημοσ. 11 Ιανουαρίου 2014 Δημοσ. 11 Ιανουαρίου 2014 Ο 8350 έχει 4 modules, η κάθε module ("Αυτόνομη Επεξεργαστική Μονάδα") έχει 2 πυρήνες, ο κάθε πυρήνας έχει την δική του L1 cache, αλλά και οι 2 πυρήνες έχουν κοινή L2 cache, Fpu, Fetch, Decode. Εάν το λειτουργικό/πρόγραμμα αναθέσει 2 thread στους πυρήνες του ίδιου module ταυτόχρονα, ο ένας πυρήνας θα εκτελέσει ένα thread, και ο άλλος θα είναι σε αναμονή μέχρι να τελειώσει ο πρώτος πυρήνας τις εντολές του thread. Δηλαδή αν ο πυρήνας χρειάζεται 1 ms για να εκτελέσει ένα thread (υποθετικά), σε 1 ms έχει εκτελεστεί μόνο 1 thread, γιατί ο άλλος πυρήνας είναι σε αναμονή, άρα κάθε 1 ms θα εκτελείτε 1 thread και όχι 2. Αυτό που λες προϋποθέτει ότι όλες οι εργασίες στον Η/Υ χρειάζονται κάποια ή όλες από αυτές της λειτουργίες που είναι λάθος σκεπτικό,ναι σε κάποιες περιπτώσεις θα συμβαίνει αυτό που λες αλλά είναι καθενός η μαντεψιά το ποσοστό στο οποίο συμβαίνει.
Millennium Δημοσ. 11 Ιανουαρίου 2014 Δημοσ. 11 Ιανουαρίου 2014 Τα χούμε λύσει εδώ και καιρό αυτά. Τώρα απλά περιμένουμε τον Maxwell@20nm ώπου ναναι 1
Ziant Δημοσ. 11 Ιανουαρίου 2014 Μέλος Δημοσ. 11 Ιανουαρίου 2014 Φυσικά και δεν ισχύει κάτι τέτοιο. Καλά τα εξηγείς αλλά εξηγείς την λειτουργία σε επίπεδο πυρήνα και όχι σε επίπεδο module. Μπορούν 2 πυρήνες που βρίσκονται στο ίδιο module να χρησιμοποιήσουν την ίδια fpu ? Στην θεωρία τα λέει καλά, στην πράξη είναι το θέμα. Αυτό που λες προϋποθέτει ότι όλες οι εργασίες στον Η/Υ χρειάζονται κάποια ή όλες από αυτές της λειτουργίες που είναι λάθος σκεπτικό,ναι σε κάποιες περιπτώσεις θα συμβαίνει αυτό που λες αλλά είναι καθενός η μαντεψιά το ποσοστό στο οποίο συμβαίνει. Αν είναι σπάνιο γιατί φορτώνει 1 thread σε κάθε module και μόνο όταν χρειαστεί φορτώνει 2 ?
TheELF Δημοσ. 11 Ιανουαρίου 2014 Δημοσ. 11 Ιανουαρίου 2014 γιατί φορτώνει 1 thread σε κάθε module και μόνο όταν χρειαστεί φορτώνει 2 ? Αυτό που το λέει ότι γίνεται;Έχεις κάνα λινκ να διαβάσουμε;;
Ziant Δημοσ. 11 Ιανουαρίου 2014 Μέλος Δημοσ. 11 Ιανουαρίου 2014 Αυτό που το λέει ότι γίνεται;Έχεις κάνα λινκ να διαβάσουμε;; Δεν χρειάζεται λίνκ, τόσα παιδιά εδώ στο φόρουμ έχουν 8350, αυτοί θα σου πουν αν δεν πιστεύεις εμένα
TheELF Δημοσ. 11 Ιανουαρίου 2014 Δημοσ. 11 Ιανουαρίου 2014 Δεν χρειάζεται λίνκ, τόσα παιδιά εδώ στο φόρουμ έχουν 8350, αυτοί θα σου πουν αν δεν πιστεύεις εμένα Και όσοι το έχουν από που θα το καταλάβουν αν τους συμβαίνει ή όχι;;;; Θα ανοίξουν το task manager θα δουν ότι και οι 8 πυρήνες δουλεύουν (έχουν κάποιο ποσοστό)και τέλος,δεν μπορούν να καταλάβουν αν περιμένει ο ένας ή ο άλλος πυρήνας. 1
Zaknafein Δημοσ. 11 Ιανουαρίου 2014 Δημοσ. 11 Ιανουαρίου 2014 Αν ίσχυαν αυτά που λες, τότε στα Cinebench και λοιπά Multi-threaded benchmarks θα έπρεπε οι 8320/8350 να είναι πιο χαμηλά από τους 4πύρηνους i5, οι οποίοι έχουν μεγαλύτερο IPC. Αλλά δεν είναι, είναι αρκετά παραπάνω γιατί τρέχουν 8 threads και όχι 4. Άρα το σκεπτικό σου είναι σαφέστατα λάθος.
Ziant Δημοσ. 11 Ιανουαρίου 2014 Μέλος Δημοσ. 11 Ιανουαρίου 2014 Και όσοι το έχουν από που θα το καταλάβουν αν τους συμβαίνει ή όχι;;;; Θα ανοίξουν το task manager θα δουν ότι και οι 8 πυρήνες δουλεύουν (έχουν κάποιο ποσοστό)και τέλος,δεν μπορούν να καταλάβουν αν περιμένει ο ένας ή ο άλλος πυρήνας. Βαζεις ένα game που δουλεύουν οι 4 πυρήνες, δουλεύει ένας πυρήνας σε κάθε module. Από το bios μπορείς να κλείσεις 1 πυρήνα σε κάθε module, τον κάνεις 4πύρηνο, και τεστάρει ο καθένας μόνος του, αν τρέχει καλύτερα με 4 ή 8 πυρήνες. Ολα αυτά είναι γνωστά... Αν ίσχυαν αυτά που λες, τότε στα Cinebench και λοιπά Multi-threaded benchmarks θα έπρεπε οι 8320/8350 να είναι πιο χαμηλά από τους 4πύρηνους i5, οι οποίοι έχουν μεγαλύτερο IPC. Αλλά δεν είναι, είναι αρκετά παραπάνω γιατί τρέχουν 8 threads και όχι 4. Άρα το σκεπτικό σου είναι σαφέστατα λάθος. Τα benchs δεν έχουν τυχαία νήματα, όπως αυτα που τρέχουν τώρα στο pc σου, τα benchs γνωρίζουν πως δουλεύει το module του 8350. Οταν ξέρεις πως δουλεύει ο 8350, μπορείς να βγάλεις ένα benchmark, και να μην τρέξουν ποτέ οι 8 πυρήνες ταυτοχρονα. Αρα ?
NT1G Δημοσ. 11 Ιανουαρίου 2014 Δημοσ. 11 Ιανουαρίου 2014 Τρέχεις ένα multithread benchmark px cinebench μία φορά με 4 threads, 1 ανά module και μία φορά με 8 και παίρνεις μεγαλύτερο σκορ. SO ?
TheELF Δημοσ. 11 Ιανουαρίου 2014 Δημοσ. 11 Ιανουαρίου 2014 Βαζεις ένα game που δουλεύουν οι 4 πυρήνες, δουλεύει ένας πυρήνας σε κάθε module. Από το bios μπορείς να κλείσεις 1 πυρήνα σε κάθε module, τον κάνεις 4πύρηνο, και τεστάρει ο καθένας μόνος του, αν τρέχει καλύτερα με 4 ή 8 πυρήνες. Ολα αυτά είναι γνωστά... Μα 4 νήματα θα τρέχουν το ίδιο ή έχεις 4 ή 8 πυρήνες,το νήμα δεν σπάει σε μικρότερα κομμάτια,τι δεν καταλαβαίνω;;
Zaknafein Δημοσ. 11 Ιανουαρίου 2014 Δημοσ. 11 Ιανουαρίου 2014 Τα benchs δεν έχουν τυχαία νήματα, όπως αυτα που τρέχουν τώρα στο pc σου, τα benchs γνωρίζουν πως δουλεύει το module του 8350. Οταν ξέρεις πως δουλεύει ο 8350, μπορείς να βγάλεις ένα benchmark, και να μην τρέξουν ποτέ οι 8 πυρήνες ταυτοχρονα. Αρα ? Πως βγάζει υψηλότερο σκορ απ'τον i5 αφού δεν τρέχουν ποτέ οι 8 πυρήνες ταυτόχρονα, ενώ αν το τρέξεις σε single thread ο i5 είναι καλύτερος; Τι θα πει το bench ξέρει πως δουλεύει το module του 8350; Δεν έχει γραφτεί για AMD. Άρα απλά τα 'χεις μπλέξει κάπου... μια χαρά οκταπύρηνος είναι ο 8350 και οι πυρήνες του τρέχουν 8 νήματα ταυτόχρονα, με μοναδική εξαίρεση AVX256 όπου εκεί μόνο πάει 1 thread/module, αλλά είναι instructions που δεν αφορούν τους περισσότερους.
Ziant Δημοσ. 11 Ιανουαρίου 2014 Μέλος Δημοσ. 11 Ιανουαρίου 2014 Μα 4 νήματα θα τρέχουν το ίδιο ή έχεις 4 ή 8 πυρήνες,το νήμα δεν σπάει σε μικρότερα κομμάτια,τι δεν καταλαβαίνω;; Είχε 2 σκέλη η απάντηση, 1.Θα τρέχει 1 νήμα σε κάθε module (με 8 πυρήνες ενεργούς), δεν είναι τυχαίο. 2.Δοκιμάζεις ΓΕΝΙΚΑ το pc σου (οχι εσύ), με 4 και με 8 πυρήνες, για να δεις αν έχεις διαφορά. Πως βγάζει υψηλότερο σκορ απ'τον i5 αφού δεν τρέχουν ποτέ οι 8 πυρήνες ταυτόχρονα, ενώ αν το τρέξεις σε single thread ο i5 είναι καλύτερος; Τι θα πει το bench ξέρει πως δουλεύει το module του 8350; Δεν έχει γραφτεί για AMD. Άρα απλά τα 'χεις μπλέξει κάπου... μια χαρά οκταπύρηνος είναι ο 8350 και οι πυρήνες του τρέχουν 8 νήματα ταυτόχρονα, με μοναδική εξαίρεση AVX256 όπου εκεί μόνο πάει 1 thread/module, αλλά είναι instructions που δεν αφορούν τους περισσότερους. Γιατι του βάζουν να τρέξει συγκεκριμένα νήματα που μπορεί να τρέξει ταυτόχρονα. Αν του βάλεις νήματα που έχουν τις ίδιες ακριβώς εντολές, δεν μπορεί να τα τρέξει ταυτόχρονα. Απλό είναι. Για σένα μπορεί να είναι μια χαρά, για τους υπόλοιπους μιλάμε.
TheELF Δημοσ. 11 Ιανουαρίου 2014 Δημοσ. 11 Ιανουαρίου 2014 Είχε 2 σκέλη η απάντηση, 1.Θα τρέχει 1 νήμα σε κάθε module (με 8 πυρήνες ενεργούς), δεν είναι τυχαίο. 2.Δοκιμάζεις ΓΕΝΙΚΑ το pc σου (οχι εσύ), με 4 και με 8 πυρήνες, για να δεις αν έχεις διαφορά. 1.Ε,φυσικά δεν είναι τυχαίο, εσύ αν είχες 8 χέρια ελεύθερα και ήταν να μεταφέρεις 4 καρπούζια θα τα κρατούσες όλα στην ίδια πλευρά(δυο σε κάθε μασχάλη)απλά για να γεμίσει πρώτα η μία πλευρά πριν αρχίσεις να βάλεις στην δεύτερη (ποιος είσαι ο monk;; ) ;;;Δεν έχει νόημα,θα έβαζες δυο από την μία και δύο από την άλλη,έτσι και ο επεξεργαστής αφού έχει μόνο 4 νήματα να τρέξει θα τα τρέξει με τον ποιο αποδοτικό τρόπο που μπορεί, δηλαδή ένα νήμα ανά Module. 2.ανακάλυψες την ρόδα,κάτσε να μαντέψω, με 8 πυρήνες θα πηγαίνει καλύτερα, ε;;; Συμφωνώ μεν ότι ο amd είναι 4 διπύρηνοι επεξεργαστές, αλλά μην τα ισοπεδώνουμε και όλα.
Προτεινόμενες αναρτήσεις