GoriLLakoS

nVidia CUDA, Bottleneck και διάφορες απορίες

Recommended Posts

Καλησπέρα σε όλους,

Ξέρω πως θα έπρεπε να ψάξω στο google αλλά θέλω να ξεκινήσω πρώτα απο εδώ και μετά να πάω εκέι γιατί ίσως κάποιος έχει εμπειρία επάνω σε αυτό το κομμάτι.

Θέλω να στήσω ένα σύστημα που θα τρέχει μόνο μια συγκεκριμένη εφαρμογή σε CUDA.

* Το σύστημα ιδανικά θέλω να έχει 6x GTX680.

* Θα ήθελα ιδανικά να μπέι ρε rack αλλά έιναι δύσκολο αυτό και για τα PSU και για τις κάρτες οπότε το ξεχνάω και πάω σε λύση απλού κουτιού. Κάποιο που θα χωράει 2 PSU και XL-ATX μητρική θα προτιμηθεί.

* Έλεγα να βάλω επάνω 2x 1500W PSU Coolermaster

Και εδώ ξεκινάνε οι απορίες.

1. Bottleneck. Όταν οι κάρτες τρέχουν αυτό το prog μπορεί να τρέχουν και μια εβδομάδα στο 100% τους. Πάιζει ρόλο το CPU ή ο μοναδικός του ρόλος έιναι για να ανάβει το σύστημα? Με λίγα λόγια θα κόβει την δύναμη των VGA για όχι? Μιλάω αποκλειστικά για CUDA, για τίποτα άλλο.

2. Η μνήμη RAM πάιζει κανα θέμα πάλι για CUDA καταστάσεις? ή να κοτσάρω επάνω 16GB να έιναι οκ το μηχάνημα?

3. Τα 2x 1500W πιστέυω θα φτάσουν...με ένα μικρό ερωτηματικό!

4. Δυσκολέυομαι με την μητρική. Αρχικά είχα δει την Asrock Z77 WS (PLX PEX 8747 Chip) αλλά μετά έψαχνα για GTX680 Single Slot για να χωρέσουν 6.

5. Είδα την EVGA Classified SR-2 (Super Record 2) αλλά με χαλάνε πολλά πράγματα επάνω της. Από το ότι πάιρνει 1366 επεξεργαστές μέχρι ότι έιναι HTPX Form Factor και μπάινει σε 2-3 κουτιά μόνο. Και γι'αυτό ρωτάω και για bottleneck πιο πάνω! Άλλες προτάσεις σε μητρικές?

6. Εάν δεν πάιζουν 6x GTX680 σε mobo λόγω Cooler και δεν μπορουν να μου φτιάξουν με ειδική παραγγελία Single Slot Cooler (δεν πάιζει να βάλω υδρόψυξη εκει μέσα για κανέναν λόγο) έλεγα να βάλω 3x GTX 690. Εδώ νομίζω πως σχεδόν σίγουρα τα 3000W φτάνουν!

Λοιπόν σας ακούω! :)

Προτάσεις, ιδέες, εναλλακτικές! Είμαι ανοιχτός σε όλα αφού είπα τώρα τι σκέφτομαι!

Link to comment
Share on other sites

ASUS - - ASUS P9X79 WS 6 pci express αλλά είναι Χ79

τι πρόγραμμα είναι αυτό και θέλει CUDA.

4 x PCIe 3.0/2.0 x16 (dual x16 or x16/x8/x8 or quad x8, black+blue) *1

2 x PCIe 3.0/2.0 x16 (x4 mode, white) *1

Άμα οι κάρτες παίζουν bottleneck σίγουρα έιναι καλύτερη λύση από την Ζ77 WS της Asrock.

Και εδώ θέλω Single Slot Coolers!

Link to comment
Share on other sites

Βασίλη πάμε ένα ένα να τα δούμε. Η εμπειρία μου τα τελευταία 3 χρόνια που αναπτύσσω εφαρμογές σε CUDA σε linux είναι:

GPU και CPU πάνε μαζί. Οκ τρέχεις CUDA αλλά μερικά πράματα τρέχουν και στον επεξεργαστή. Την ώρα που γίνονται καθαρά υπολογισμοί πάνω στην κάρτα όχι δε σε νοιάζει ο επεξεργαστής στην απλή περίπτωση. Τώρα αν παίζει ρόλο ο επεξεργαστής γενικά σε μια εφαμοργή που τρέχει CUDA η απάντηση είναι πως ναι. Οπότε πρέπει να δεις τις απαιτήσεις της εφαρμογής και πόσο χρόνο ξοδεύει στον επεξεργαστή και τι δουλειές κάνει πάνω του.

Η μνήμη RAM έχει μεγάλη ανάλυση. Καταρχάς ναι θες γρήγορη μνήμη για τον επεξεργαστή. Επίσης θες και μνήμη γιατί η εφαρμογή διαβάζει από RAΜ στέλνει στη global memory της κάρτας και μετά στέλνει αποτελέσματα ξανά στη RAM για εγγραφή. Βέβαια αν χρησιμοποιείτε τεχνική Zerocopy δλδ διαβάζω τη RAM κατευθείαν από τη GPU μπορεί να έχεις λίγο καθυστέρηση.

Τα παραπάνω στα λέω και σε λίγο θεωρητικό επίπεδο αν και η ιστορία έχει δείξει πως η ταχύτητα της RAM δε θα σε επηρεάσει και πολύ.

6 GPUS? Αλήθεια χρειάζεσαι τόσες? Θα έχεις τρελό bottleneck πάνω από το PCIe καθώς με 6 θα πρέπει να το καταφέρεις να δουλεύει με 16x. Είναι το βασικότερο πρόβλημα και μπορεί να σου καθυστερήσει πάρα πολύ μια εφαρμογή αν τρέχεις με 8x. Μάλιστα ήταν το αντικείμενο που μελετούσα για κανένα εξάμηνο και το μειωμένο bandwidth μπορεί να σου καταστρέψει την ήδη "κατεστρεμμένη" απόδοση λόγω του ότι:

PCIe2.0 16x: transfer 5.500MB/s

copies on GPU 's memory GTX480: 120.000MB/s

Οπότε να ξέρεις πως το PCIe έχει τρελό bottleneck άρα κράτα το όσο πιο ψηλά μπορείς.

Link to comment
Share on other sites

http://www.hwbox.gr/news-vga/16202-galaxy-gtx-680-single-slot-gtx-680-a.html

Αλλα δεν πιστεύω να βγαίνει σύντομα..

Άμα μπείς στην κατηγορία των VGA News και πατήσεις αναζήτηση στο GALAXY θα δείς πως η GALXY μια ζωή βγάζει πολλές υβριδικές κάρτες και δενκυκλοφορυν ποτέ! Πάντα έχει τα πιο περίεργα. Μάλλον marketing reasons.

Οπότε το ξεχνάμε.

Βασίλη πάμε ένα ένα να τα δούμε. Η εμπειρία μου τα τελευταία 3 χρόνια που αναπτύσσω εφαρμογές σε CUDA σε linux είναι:

GPU και CPU πάνε μαζί. Οκ τρέχεις CUDA αλλά μερικά πράματα τρέχουν και στον επεξεργαστή. Την ώρα που γίνονται καθαρά υπολογισμοί πάνω στην κάρτα όχι δε σε νοιάζει ο επεξεργαστής στην απλή περίπτωση. Τώρα αν παίζει ρόλο ο επεξεργαστής γενικά σε μια εφαμοργή που τρέχει CUDA η απάντηση είναι πως ναι. Οπότε πρέπει να δεις τις απαιτήσεις της εφαρμογής και πόσο χρόνο ξοδεύει στον επεξεργαστή και τι δουλειές κάνει πάνω του.

Η μνήμη RAM έχει μεγάλη ανάλυση. Καταρχάς ναι θες γρήγορη μνήμη για τον επεξεργαστή. Επίσης θες και μνήμη γιατί η εφαρμογή διαβάζει από RAΜ στέλνει στη global memory της κάρτας και μετά στέλνει αποτελέσματα ξανά στη RAM για εγγραφή. Βέβαια αν χρησιμοποιείτε τεχνική Zerocopy δλδ διαβάζω τη RAM κατευθείαν από τη GPU μπορεί να έχεις λίγο καθυστέρηση.

Τα παραπάνω στα λέω και σε λίγο θεωρητικό επίπεδο αν και η ιστορία έχει δείξει πως η ταχύτητα της RAM δε θα σε επηρεάσει και πολύ.

6 GPUS? Αλήθεια χρειάζεσαι τόσες? Θα έχεις τρελό bottleneck πάνω από το PCIe καθώς με 6 θα πρέπει να το καταφέρεις να δουλεύει με 16x. Είναι το βασικότερο πρόβλημα και μπορεί να σου καθυστερήσει πάρα πολύ μια εφαρμογή αν τρέχεις με 8x. Μάλιστα ήταν το αντικείμενο που μελετούσα για κανένα εξάμηνο και το μειωμένο bandwidth μπορεί να σου καταστρέψει την ήδη "κατεστρεμμένη" απόδοση λόγω του ότι:

PCIe2.0 16x: transfer 5.500MB/s

copies on GPU 's memory GTX480: 120.000MB/s

Οπότε να ξέρεις πως το PCIe έχει τρελό bottleneck άρα κράτα το όσο πιο ψηλά μπορείς.

Ωραία η απάντηση σου :T: Μου έδωσε μερικές κατευθύνσεις αλλά και μερικές απορίες ακόμα.

Η εφαρμογή θα τρέχει αποκλειστικά σε CUDA γι αυτό και ρώτησα για Bottleneck.

To ότι θα δουλεύει και το CPU το κατανοώ, αλλά δεν ξέρω εάν θα τις κόβει ή όχι!

Ας πούμε με FM2 δοκιμάζαμε για το Country Cup AMD 5800K στα 6GHz με 3 κάρτες 7970.

Στα 12ΧΧ MHz οι κάρτες δεν ανεβάζανε score άλλο γιατι εκανε bottleneck ο CPU.

Αντίθετα σε Intel CPU δίνανε και άλλο όσο ανέβαζες ρολόγια. Η απορία μου λοιπόν

ειναι τέτοιας φύσης. Νομίζω με καταλαβαίνεις!

Θα κάνει scale το CUDA σε 6 κάρτες ή είτε βάλω 2 είτε 4 έιτε 6 θα σταματάει το output

στις 2 επειδή το CPU θα είναι stock?

Μήπως πρέπει να βάλω 2 CPU μήπως 4?

Θα κοιτάξω λίγο και το πρόγραμμα και θα σου ξαναπώ! Το ίδιο και για την μνήμη!

Όσον αφορά το αν χρειάζομαι 6 κάρτες, ναι τις χρειάζομαι. Εάν μπορουσα να βάλω και 12 θα έβαζα και 12.

Και εδώ έρχομαι με την επόμενη απορία που μου δημιούργησες!

Σε benchmarks και σε games το PCI-E 2.0 από το 3.0 δείχνει πως δεν έχει διαφορά ή εάν έχουν οι διαφορές έιναι πολύ μικρές για την ώρα.

Εσυ έχεις χειροπιαστά αποτελέσματα απο εφαρμογή CUDA που το PCI-E 2.0 με το 3.0 είχαν τόσο μεγάλη διαφορά στην πράξη?

Link to comment
Share on other sites

Όχι, δεν εννοώ κάτι άλλο. Αυτό ;)

Όταν κοιτάξεις για μητρικές, να έχει σίγουρο το αν χρειάζονται ΕCC.

Τώρα για τα bottlenecks είναι και ΠΑΡΑ πολύ code dependent, αν γράφεις κάτι που έχει πολλές μεταφορές σε μνήμη συστήματος, σίγουρα θα χρειαστείς ένα γρήγορο quad channel. Αν από την άλλη θέλεις να harshάρεις πολλά μικρά κλειδιά (που φτάνει η vram) τότε και ένα χαλαρότερο σύστημα με τις ίδιες κάρτες, θα κάνει δουλειά. Πάντως γενική συμβουλή, μην κάνεις underkill και βάλεις ψόφιο cpu, αργά η γρήγορα θα το βρουν μπροστά τους. Ειδικά με τις αλλαγές στα SDK...

Επίσης, χρήσιμο pointer: ventilation! Δεν την παλεύουν τα home grade για 24/7 load, χώσε delta χωρίς τύψεις. Έχω εμπειρία με παρόμοιο build με 590s (και 580s) και όταν κλείσεις το case (αυτά ήταν σε απλά full tower) αρχίζει και ζορίζεται η φάση με τις θερμοκρασίες, αν δεν χώσεις μερικά βαρβάτα fans.

Edited by caution
Link to comment
Share on other sites

Αν ρωτάς AMD vs intel είναι αλήθεια πως οι intel μας έχουν βολέψει καλύτερα εδώ. Βέβαια καλό να δεις τι πακέτα εντολών (SSE MMX και λοιπά) χρησιμοποιεί η εφαρμογή που θες επειδή εκεί θες να δεις αν θα πάει ο επεξεργαστής σου. Τώρα την ώρα που κάνεις υπολογισμούς πάνω στην GPU ο επεξεργαστής δεν την καθυστερεί σε αυτό που κάνει.

Όταν λες scale εννοείς αμα μπορείς να τρέχεις και τις 6 μαζί λόγω επεξεργαστή? Άμα εννοείς αυτό είναι θέμα εφαρμογής κατά πόσο μπορεί να το τρέξει ο κώδικας σου, δλδ η εφαρμογή μπορεί να τρέχει σε 6 κάρτες μαζί ή χρησιμοποιεί μόνο τη μία; Και στις τελευταίες εκδόσεις των καρτών νομίζω πως και με μονοπήρυνο επεξεργαστή μπορείς να τρέχεις σε 3 κάρτες και αυτές επικοινωνούν μεταξύ του αρκεί να το επιτρέπει η εφαρμογή.

Για PCIe2.0 και 3.0 δεν έχω δυστυχώς χειροπιαστά αποτελέσματα. Εδώ στο πανεπιστήμιο που κάναμε την έρευνα έχουμε ξεμείνει με GTX480 και PCIe2.0 οπότε για πειράματα μπορώ να σου πω μέχρι εκεί. Αλλά αν θες τη γνώμη μου και από τα 5.500ΜΒ/s στα 8.000MB/s να πας είναι μεγάλη διαφορά και πετυχαίνεις καλύτερη απόδοση. Μάλιστα με πειράματα που έκανα me o/c στο PCIe απο 100 στα 130 περίπου και χτύπησα κάπου 7.000ΜΒ/s(πραγματικά MB/s μετρήμενα στο linux μου) είχα speedup στην εφαρμογή. Οπότε σκέψου να στο δίνει το PCIe3.0 έτοιμο ένα μεγάλο νούμερο.

Αυτά για την ώρα. Αν θες τπτ άλλο πες μου.

Link to comment
Share on other sites

Δεν γνωρίζω για το θέμα αλλά οι επαγγελματικές κάρτες δεν έχουν κάποιο πλεονέκτημα απο τις κάρτες για παιχνίδια? δεν έχουν καλύτερους drivers κ άλλα...?

3. Τα 2x 1500W πιστέυω θα φτάσουν...με ένα μικρό ερωτηματικό!

Είναι χαοτικά πολλά και υπερβολικά τα 3000w...1200watt για τις κάρτες και άλλα 300 για το σύστημα? άντε με 1600watt είσαι υπερ υπερ καλυμμένος..

Link to comment
Share on other sites

Λοιπόν, η μητρική τελικά θα έιναι αυτή εδώ Z77 Extreme9.

Κάρτες μάλλον ότι καλύτερο μπορει να χωρέσει έιναι οι 590s' οι οποίες μάλλον δεν υπάρχουν πουθενά καινουριες!

Οπότε πάμε για 580. Τέσσερις στον αριθμό.

Ψάχνω Rackable Case και PSU ένα 1500άρι νομίζω αρκέι!

Το σύστημα θα τρέχει αποκλειστικά και μόνο Multiforcer.

Link to comment
Share on other sites

Εντάξει, ναι, άσε το Ελλάντα απ΄έξω.

Θα δοκιμάσουμε και 580 και 680 γι αυτό που θέλουμε να δουμε απόδοση!

Ίσως και 590 & 690.

Κουτί και PSU βρήκαμε

http://www.supermicro.com/products/system/4U/7047/SYS-7047GR-TPRF.cfm ή http://www.supermicro.com/products/system/4U/7047/SYS-7047GR-TRF.cfm

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now