KChris Posted October 20, 2010 Share Posted October 20, 2010 Υπάρχουν φορές που θέλουμε ο υπολογιστής μας να κάνει μεγάλους υπολογισμούς. Μπορεί όμως ένας επεξεργαστής να τους κάνει αρκετά γρήγορα? Αν όχι τι γίνεται? Άμα τον κλοκάρουμε θα γίνουν πιο γρήγορα, αλλά μήπως είναι και αυτό πολύ αργό? Εδώ και χρόνια η nvidia αναπτύσσει το cuda για το σκοπό αυτό προκειμένου να πετύχει γρήγορους και μεγάλους υπολογισμούς. Ας δούμε πόσο αποδοτικό είναι. Χρησιμοποιήθηκαν: cpu: intel e8400 ram: Cellshock 1800 special edition motherboard: ASUS P5E64 WS evolution x48 graphic card: ASUS 8800GTS 320MB (G80) και Galaxy gt210 512MB Ας δούμε τα χαρακτηριστικά των καρτών πρώτα 8800GTS: 210gt: Ας ξεκινήσουμε με τη 8800GTS. Για αρχή γράψαμε ένα κώδικα που παίρνει 2 πίνακες για είσοδο τους πολλαπλασιάζει και βγάζει ένα πίνακα εξόδου. Οι χρόνοι είναι σε sec. Δοκιμάσαμε διάφορα μεγέθη για να συγκρίνουμε τα αποτελέσματα. Αρχίσαμε με 256Χ256 μέχρι 2048Χ2048. Παρακάτω φαίνονται τα αποτελέσματα. Όπως φαίνεται για μικρούς πίνακες η διαφορά δεν είναι τεράστια. Όσο μεγαλώνουν όμως οι πίνακες η κάρτα αρχίζει να δείχνει τη δύναμη σε σχέση με ένα 'απλό' επεξεργαστή και η διαφορά να είναι εντυπωσιακή. Τα αποτελέσματα έδειξαν πως η κάρτα υπερτερεί έναντι ενός επεξεργαστή. Αν και η διαφορά είναι μεγάλη μήπως μπορεί να ανοίξει και άλλο? Ας γράψουμε πάλι κώδικα για την κάρτα. Αυτή τη φορά θα χρησιμοποιήσουμε τη shared memory της κάρτας. Η κάρτα δείχνει ήδη από τους μικρούς πίνακες, σε αντίθεση με πριν, τα δόντια της. Η διαφορά για μεγάλους πίνακες πλέον είναι χαοτική. Η 8800 αναμφίβολα είναι μια δυνατή κάρτα. Για να δούμε τι μπορεί να κάνει η ταπεινή 210 χρησιμοποιώντας τη shared memory. Και πάλι η κάρτα είναι πιο γρήγορη από την επεξεργαστή και για μεγάλους πίνακες η διαφορά είναι εντυπωσιακή για μια 'φθηνή' κάρτα. Τέλος ας δώσουμε μια τελευταία ευκαιρία στον επεξεργαστή. Κλοκάραμε το σύστημα με τις παρακάτω ρυθμίσεις e8400 @ 4500MHz (500x9) μνήμες @ 2000MHz 7-7-6-20 Αν και τον ανεβάσαμε αρκετά πιο πάνω από τις stock ρυθμίσεις η διαφορά και πάλι κρατιέται σε μεγάλα επίπεδα. Τελικά φαίνεται πως η δυνατότητα που μας δίνει η κάρτα να χρησιμοποιούμε πολλά νήματα επιταχύνει τους υπολογισμούς τόσο πολύ που φαίνεται αδύνατο από ένα κοινό επεξεργαστή να φθάσει τέτοιες επιδόσεις. Να σημειωσουμε απλά ότι ο πολλαπλασιασμός πινάκων είναι ένα πλήρως παραλληλοποιήσιμο πρόβλημα και η διαφορά στο χρόνο εκτοξεύεται. Παρόλο αυτά δεν παύει να είναι πολύ αποδοτικό και σε άλλα προβλήματα να πιάνουμε μεγάλο speedup με ένα σωστό κώδικα. Link to comment Share on other sites More sharing options...
Spirosssss Posted October 20, 2010 Share Posted October 20, 2010 Eυχαριστουμε!! Κανενα πιο επικοδομητικο σχολιο δεν εχω να κανω μιας και δεν το κατεχω το θεμα. Μια ζωη ΑΤΙ γαρ.. Link to comment Share on other sites More sharing options...