Πώς να οικοδομήσουμε τον τέλειο υπολογιστή Deep Learning και να εξοικονομήσετε χιλιάδες δολάρια

Ενημερώθηκε 7/15/2019

Η οικοδόμηση του δικού σας υπολογιστή βαθιάς εκμάθησης διαρκεί μόνο λίγες ώρες. Το βίντεο συναρμολόγησης είναι παρακάτω.
Γνωρίζετε ήδη ότι η οικοδόμηση του δικού σας υπολογιστή Deep Learning είναι 10 φορές φθηνότερη από τη χρήση του AWS. Αλλά η επιλογή των σωστών τμημάτων δεν είναι ασήμαντη, οπότε ας δούμε λεπτομερώς τα πράγματα που πρέπει να λάβετε υπόψη, τα πλεονεκτήματα και τα μειονεκτήματα της κατασκευής, των οδηγιών συναρμολόγησης και του τρόπου εξοικονόμησης χιλιάδων σε σύγκριση με την αγορά.
Αυτό είναι μέρος 2 από 3 στη σειρά Υπολογιστών Deep Learning. Το πρώτο μέρος είναι «Γιατί η δόμηση είναι 10 φορές φθηνότερη από την ενοικίαση από την AWS» και το Μέρος 3 είναι «Απόδοση και σημεία αναφοράς». Δείτε νέες φωτογραφίες και ενημερώσεις: Ακολουθήστε με στο Medium, Instagram και Twitter! Αφήστε τις σκέψεις και τις ερωτήσεις στα σχόλια παρακάτω.

Επιλέγοντας τα 4 πιο σημαντικά μέρη: CPU, GPU, αποθήκευση και μνήμη.

Υπάρχουν μόνο 8 κατασκευαστικά στοιχεία: GPU, CPU, Storage, Memory, CPU Cooler, Motherboard, Power, Case. Τα πρώτα 4 είναι τα πιο σημαντικά. Κατά την εκπαίδευση, τα δεδομένα ρέουν από την αποθήκευση στη μνήμη στη GPU, ενώ η CPU βοηθά στην πορεία (χειρίζεται τις παρτίδες κ.λπ.). Έτσι, θέλετε να βεβαιωθείτε:

  • Η CPU μπορεί να υποστηρίξει όλες τις μονάδες GPU
  • Η GPU σας είναι αρκετά γρήγορη και μπορεί να χωρέσει το μοντέλο και την παρτίδα δεδομένων στη μνήμη
  • Η μνήμη είναι DDR4 και αρκετά μεγάλη για να επιπλέει τα περισσότερα σύνολα δεδομένων ασυμπίεστα
  • Η αποθήκευση είναι M.2 PCIe και αρκετά μεγάλη

Κάνετε τον υπολογιστή σας επεκτάσιμο σε 4 μονάδες GPU με τη σωστή CPU

Είναι δύσκολο να γνωρίζετε πόσες μονάδες GPU χρειάζεστε επειδή ορισμένα μοντέλα χρειάζονται 10 δευτερόλεπτα για να εκπαιδεύσουν (CNNs Vision, LSTMs για την επεξεργασία φυσικής γλώσσας κλπ). Έτσι, μια από τις καλύτερες ιδέες είναι να ξεκινήσετε με 1 ή 2 μονάδες GPU και να προσθέσετε περισσότερες GPUs ενώ πηγαίνετε μαζί.

Κάθε GPU απαιτεί τουλάχιστον 8x PCIe λωρίδες (είναι 16x επίσημα, αλλά υπάρχουν δεδομένα για τα οποία το 8x είναι αρκετά καλό αν δεν εκτελείτε πειράματα cross-GPU). Θα χρειαστείτε 4x PCIe λωρίδες για το M.2 SSD (το οποίο συνδέεται δεξιά και είναι 5 φορές γρηγορότερο από το SATA3) και άλλες 4x PCIe λωρίδες για Gigabit ethernet. Αυτό είναι ένα σύνολο 40 λωρίδων PCIe και θα περιορίσει τις επιλογές CPU σας αρκετά. Η CPU θα υπαγορεύσει τη μητρική πλακέτα που χρειάζεστε. (Για παράδειγμα: AMD Threadripper CPU = μητρική πλακέτα chipset X399, CPU Intel 7900X = μητρική πλακέτα chipset X299 κλπ).

Θα χρειαστείτε μια CPU με 8+ πυρήνες / 16+ κλωστές και 40+ γραμμές PCIe, καθώς αυτό επιτρέπει 4 πειράματα ανά GPU (16 πειράματα αν έχετε 4 GPU). Τυπικά τα μοντέλα καταλαμβάνουν τουλάχιστον ένα ζευγάρι gigabytes μνήμης GPU, επομένως είναι σπάνιο να μπορείτε να τρέξετε περισσότερα από 4 πειράματα ανά GPU. Τέλος, βεβαιωθείτε ότι οι λωρίδες PCIe είναι πραγματικά δρομολογημένες στις υποδοχές επέκτασης.

Οι CPU της AMD προσφέρουν καλύτερη αξία από την Intel

Από τον Απρίλιο του 2019, η AMD προσφέρει περισσότερες επιδόσεις με λιγότερα χρήματα. Το 1920X της AMD με 12 πυρήνες / 24 σπειρώματα / 60 λωρίδες PCIe είναι $ 400, ενώ το 7900X της Intel με 10 πυρήνες / 20 κλωστές / 44 PCIe λωρίδες είναι $ 925. Οι δείκτες αναφοράς παρουσιάζουν συγκρίσιμες επιδόσεις, οπότε η AMD μοιάζει να μην έχει νόημα. (Γνωστοποίηση: είμαι πολύ απόθεμα AMD.)

Η GPU σας χρειάζεται να έχει αρκετή μνήμη και να είναι αρκετά γρήγορη

Η μνήμη GPU λειτουργεί διαφορετικά από την μνήμη RAM του υπολογιστή, οπότε αν δεν έχετε αρκετή μνήμη για να προσαρμόσετε το μοντέλο σας, δεν θα είστε σε θέση να εκπαιδεύσετε (σε αντίθεση με το τρένο αργά). Από κάποιες στιγμές έχω ένα μοντέλο που απαιτεί 10GB + για να τρέξει, οπότε αν υπάρχει αμφιβολία, επιλέξτε ένα με περισσότερη μνήμη.

Οι GPU της Nvidia είναι πιο εύχρηστες από άλλες πλατφόρμες επειδή έχουν την πιο κοινοτική υποστήριξη για εργαλεία (Tensorflow, PyTorch, κ.λπ.). Αγοράστε κάρτες που έχουν ανεμιστήρες στυλ "ανεμιστήρα" αντί για τους μεγάλους διπλούς ανεμιστήρες, επειδή αν έχετε πολλές μονάδες GPU, πρέπει να εξαερώσετε αέρα έξω από το κιβώτιο. (π.χ. 1080 Ti Founder Edition ή 2080 Ti Asus Turbo)

Οι επιλογές σας είναι βασικά:

  • Super High-end: Titan RTX (24GB / 4608 πυρήνες / 576 πυρήνες Tensor / 2.500 $) Μπορείτε να τοποθετήσετε μόνο μία από αυτές στην κάτω υποδοχή, επειδή οι Titans δεν χρησιμοποιούν ανεμιστήρες φυσητήρα.
  • Υψηλής ποιότητας: 2080 Ti (11GB / 4352 πυρήνες / 544 πυρήνες τανυστή / 1300 δολαρίων), 1080 Ti (11GB / 3584 πυρήνες / $ 700), 2080 (8GB / 2944 πυρήνες /
  • Μέση βαθμίδα (καλύτερη τιμή): 2070 (8GB / 2304 πυρήνες / 288 πυκνωτές / 510 δολαρίων)
  • Χαμηλή τιμή: 2060 (πυρήνες 6GB / 1920/240 πυκνωτές / 390 δολαρίων)
  • Το απόθεμα GPU είναι πολύ περιορισμένο, οπότε μπορεί να χρειαστεί να κυνηγήσετε για απογραφή

Το Titan RTX είναι μια κάρτα τέρας και ~ 55% ταχύτερη από 1080 Ti σε 32 bit εκπαίδευση και 135% ταχύτερη σε λειτουργία μισής ακρίβειας εξαιτίας των πρόσθετων Tensor Cores και επιπλέον μνήμης που επιτρέπει πολύ μεγαλύτερα μεγέθη παρτίδων. Το 2080 Ti είναι ~ 40% ταχύτερο από το 1080 Ti σε εκπαίδευση 32 bit και ~ 65% ταχύτερα όταν χρησιμοποιείται σε λειτουργία μισής ακρίβειας. Από εκεί, η απόδοση ταχύτητας είναι γραμμική στον αριθμό των πυρήνων CUDA, επομένως αναμένετε ότι το 1080 Ti θα είναι ~ 40% ταχύτερο από το 1080 και το 1080 θα είναι 33% ταχύτερο από το 1070.

Η αποθήκευση και η μνήμη πρέπει να είναι όσο το δυνατόν γρηγορότερα

Επειδή θα μεταφέρετε πολλά δεδομένα γύρω από την αποθήκευση στη μνήμη και έπειτα στις μονάδες GPU, θέλετε ο αγωγός να είναι όσο πιο γρήγορα γίνεται. Χρησιμοποιήστε το M.2 SSD NVMe, το οποίο συνδέεται δεξιά στη μητρική πλακέτα και τη μνήμη DDR4.

Σημαντικές αλλαγές στις κατασκευές μου και στις κοινές παγίδες

Η αρχική κατασκευή ενός GPU κοστίζει $ 3k και μπορεί να επεκταθεί σε 4 μονάδες GPU αργότερα

Εδώ είναι η λίστα ανταλλακτικών μου με ενημερωμένη τιμολόγηση και απογραφή.

GPU: Διάλεξα το 1080 Ti αρχικά επειδή ένα κέρδος ταχύτητας 40% σε σχέση με το 1080 είναι σημαντικό όταν μιλάτε για 10ώρες ώρες αμαξοστοιχίας και η επιπλέον μνήμη 3GB είναι σημαντική όταν εργάζεστε με μεγάλα μοντέλα ή αυξάνετε την ταχύτητα εκπαίδευσης με μεγαλύτερη παρτίδα μεγέθη. 1080 Είναι δύσκολο να βρείτε τώρα, επομένως ελέγξτε eBay. Προστέθηκα αργότερα ένα 2080 Ti και ένα Titan RTX στην κάτω υποδοχή. Από το 2019, το 2070 είναι η καλύτερη τιμή για μια κάρτα μίζας.

CPU: Το 1920X της AMD έχει 12 πυρήνες και 38MB cache και είναι $ 150 πιο ακριβό έναντι των 8 πυρήνων 1900X και της μνήμης cache 20 MB. Διατιμώντας 2 πυρήνες / 4 κλωστές ανά GPU και το γεγονός ότι ίσως να θέλω να διπλασιαστεί το μηχάνημα ως διακομιστής σταδιοδρομίας αργότερα, το 1920X μου δίνει λίγο περισσότερο χώρο αναπνοής.

Αποθήκευση: Χρησιμοποίησα ένα 1TB M.2 SSD, δεν μου αρέσει να έχω πράγματα σε διαφορετικούς δίσκους και 500GB φαίνεται μικρό, δεδομένου ότι τα σύνολα δεδομένων είναι συχνά δεκάδες gigabytes. Θα μπορούσα να προσθέσω έναν υπερβολικά μεγάλο περιστρεφόμενο σκληρό δίσκο για "ψυχρή" αποθήκευση αργότερα.

Μνήμη: Χρησιμοποιείται μνήμη τετραπλού καναλιού επειδή το 1920X τρέχει πιο γρήγορα με quad από τη μνήμη διπλού καναλιού. 4 x 16GB επιλέγεται επειδή η μέγιστη υποστηριζόμενη μνήμη είναι 128GB, γι 'αυτό είναι μια εύκολη διαδρομή αναβάθμισης χωρίς να χρειαστεί αργότερα να αφαιρεθούν τα τσιπ. Το 3000Mhz είναι η ταχύτερη μνήμη που είναι συμβατή με τη μητρική πλακέτα (είναι overclocked από τη βάση 2667Mhz).

Τροφοδοσία: 1600W P2 είναι αρκετό για να καλύψει GPU 4x250W + 180W CPU + 150W για οτιδήποτε άλλο και λίγο χώρο για overclocking. Δεν θέλετε να μεγιστοποιήσετε την τροφοδοσία σας, επειδή οι ανεμιστήρες κλωτσούν σαν τρελοί όταν τρέχουν σε υψηλή χρήση.

Θήκη: Lian-Li PC-O11AIR γιατί χρειάζομαι μια θήκη με 8 θύρες επέκτασης (τα περισσότερα κουτιά των μέσων πύργων έχουν 7, πράγμα που σημαίνει ότι δεν μπορείτε να χωρέσετε 4 GPU διπλής όψης). Μεταξύ αυτής της περίπτωσης και της Corsair Air, η περίπτωση αυτή φαίνεται καλύτερο και έρχεται με φίλτρα σκόνης.

Αποφύγετε αυτές τις 7 Κοινές Παγίδες

Πραγματοποιήστε την εκτέλεση αυτής της λίστας για να βεβαιωθείτε ότι το build σας ελέγχει έξω.

  1. Οι μονάδες GPU υπερθέρνουν τον υπολογιστή μου: Βεβαιωθείτε ότι έχετε τις γεννήτριες GPU της Founder Edition (η έκδοση 2080 Ti ονομάζεται Turbo από την Asus) επειδή εξαερίζουν το πίσω μέρος της θήκης. Οι κάρτες τύπου "gaming" 'OC' θα έχουν 2 μεγάλους ανεμιστήρες που φυσούν στον υπολογιστή, οι οποίοι θα υπερθερμανθούν. Χρειάζεστε επίσης έναν ανεμιστήρα που παρέχει ψυχρό αέρα απευθείας στην πρόσληψη των GPUs. Μπορείτε να τοποθετήσετε ένα Titan RTX στην κάτω υποδοχή, αν η θήκη σας έχει μια οπή στο κάτω μέρος όπως το O11AIR.
  2. Δεν υπάρχουν αρκετές λωρίδες PCIe: Χρειάζεστε τουλάχιστον 8x PCIe λωρίδες / GPU (16x είναι καλύτερη). Εάν διαθέτετε 4 μονάδες GPU, με μονάδα M.2 και Gigabyte ethernet, είναι τουλάχιστον 40 λωρίδες PCIe.
  3. Το μοντέλο μου δεν ταιριάζει στη μνήμη GPU μου: τα μεγάλα Convolutional Networks και τα LSTMs χρησιμοποιούν μεγάλη μνήμη GPU, 8GB έναντι 11GB είναι μεγάλη διαφορά.
  4. Η μητρική πλακέτα δεν ταιριάζει με 4 μονάδες GPU: Η μητρική σας πλατφόρμα πρέπει να έχει υποδοχές για έως και 4 μονάδες GPU και πρέπει να έχουν χώρο μεταξύ τους για να χρησιμοποιήσουν όλες τις 4. Η καλύτερη μέθοδος είναι να ελέγξετε είναι μια οπτική επιθεώρηση στο Google Images ή να αναζητήσετε άτομα που έχουν κάνει το.
  5. Η θήκη δεν ταιριάζει με 4 μονάδες GPU: οι περισσότερες μεσαίες θύρες έχουν μόνο 7 υποδοχές επέκτασης, έτσι δεν θα μπορείτε να τοποθετήσετε μια 4η διπλή GPU στην κάτω υποδοχή. Βρήκα μόνο Lian Li και Corsair ως επιλογές.
  6. Το τροφοδοτικό δεν έχει αρκετή ισχύ / είναι πολύ δυνατό: Πρέπει να υπολογίζετε για GPU (~ 250W το καθένα), CPU (~ 180W), Άλλα (~ 150W, Μητρικές, ανεμιστήρες κλπ). Το overclocking αποκομίζει πολλή ισχύ. Ορισμένα τροφοδοτικά είναι δυνατά, διαβάστε τις αναφορές online για πληροφορίες για την ησυχία. Τυπικά, τα 80+ με βαθμολογία Platinum είναι πιο ήσυχα.
  7. Ο ψύκτης CPU μπλοκάρει την πρώτη υποδοχή GPU: Οι μεγάλοι ψύκτες αέρα, όπως το Noctua, μερικές φορές θα μπλοκάρουν την πρώτη υποδοχή GPU. Αναζητήστε άλλα άτομα που έχουν χρησιμοποιήσει το combo.

Ένας εκτεταμένος προϋπολογισμού υπολογιστής Deep Learning σε $ 2k

Γνωρίζοντας όλα αυτά, μπορείτε να δείτε πώς το ακόλουθο είναι ένας αναπτυσσόμενος προϋπολογισμού υπολογιστής Deep Learning που κοστίζει $ 2k και είναι επίσης επεκτάσιμος σε 4 μονάδες GPU.

Προϋπολογισμός υπολογιστών πριν από τους φόρους, είναι ακόμα επεκτάσιμη σε 4 μονάδες GPU.

Εξοικονομήστε χιλιάδες δολάρια σε σύγκριση με την αγορά

Εάν σκέφτεστε να αγοράσετε ένα σύστημα αντί να δημιουργήσετε ένα, μπορείτε να πάρετε ένα σύστημα 4 x 2080 Ti από την Exxact για $ 9.900. Δημιουργώντας το δικό σας σύστημα 4 GPU όπως αυτό είναι συνολικά 7.500 δολάρια: $ 3.000 + $ 500 (αναβάθμιση σε 2080 Ti) + 3 x $ 1.200 (3 επιπλέον 2080 Ti). Έτσι είναι $ 2.400 (~ 25%) φθηνότερο να χτιστεί.

Υπάρχουν μερικά οφέλη για την αγορά ενός προ-κατασκευασμένο, όπως μια τριετής εγγύηση, υποστήριξη και προ-εγκατεστημένο λογισμικό. Εάν αγοράζετε για ακαδημαϊκούς ή μια εταιρεία και θέλετε να απλοποιήσετε τη ζωή σας, αξίζει να εξετάσετε.

Οι υπολογιστές βαθιάς εκμάθησης της Exxact με έτοιμους υπολογιστές με εγγύηση 3 ετών

Παραγγελία και τοποθέτηση εξαρτημάτων μαζί

Σχεδιάστε την κατασκευή σας στο PCPartPicker.com

Το PCPartPicker είναι πολύ χρήσιμο επειδή σας επιτρέπει να επιλέξετε τμήματα και σας λέει αν υπάρχουν ασυμβατότητες, αλλά και σας δίνει την καλύτερη τιμή σε διάφορους αξιόπιστους πωλητές.

Bandh, Adorama, Newegg και Amazon είναι όλοι αξιόπιστοι μεταπωλητές. Σε περίπτωση αμφιβολίας, ελέγξτε τις αξιολογήσεις των μεταπωλητών.

Η τοποθέτηση εξαρτημάτων απαιτεί λίγες ώρες

Η συναρμολόγηση χωρίζεται στα ακόλουθα 4 βήματα: 1) Προετοιμασία υποθέματος 2) Προετοιμασία μητρικής πλακέτας 3) Εγκατάσταση μητρικής πλακέτας 4) Εγκατάσταση μνήμης, GPU και περιτύλιγμα.

Εδώ είναι ένα σύντομο βίντεο από εμένα που συναρμολογώ τον υπολογιστή μου:

Επίσης, παρακολούθησα αυτό το βίντεο που δημιουργήθηκε για το X399 / Threadripper, πιθανότατα θα βρείτε ένα παρόμοιο βίντεο για τη λίστα των εξαρτημάτων σας.

Εγκαταστήστε λογισμικό με σενάρια και σεμινάρια online

Εάν ακολουθείτε τα σεμινάρια, είναι σχετικά εύκολο να πάρετε τη στοίβα επάνω. Εάν δεν χρησιμοποιείτε tutorials ή λάθος, τότε θα είναι πολύ απογοητευτικό!

Εγκατέστησα το Ubuntu 16.04 και χρησιμοποίησα αυτό το φροντιστήριο για την εγκατάσταση CUDA / CuDNN / Tensorflow. Νομίζω ότι υπάρχει ένα προετοιμασμένο για Tensorflow τώρα, έτσι δεν χρειάζεται να το καταρτίσει από το μηδέν.

Επέκταση σε περισσότερες μονάδες GPU

Προστέθηκα ένα Titan RTX, ένα 2080 Ti, και ένα άλλο 1080 Ti και ήταν πραγματικά ευθεία προς τα εμπρός. Θα χρειαστεί να αναβαθμίσετε το πρόγραμμα οδήγησης Nvidia σε nvidia-410 για να τρέξετε το 2080 Ti.

Ο υπολογιστής Deep Learning μου με 4 μονάδες GPU - ένα Titan RTX, δύο 1080 Ti και ένα 2080 Ti. Το Titan RTX πρέπει να τοποθετηθεί στο κάτω μέρος επειδή ο ανεμιστήρας δεν είναι στυλ φυσητήρα.

Συγκριτική αξιολόγηση του υπολογιστή βαθιάς εκμάθησης

Συνεχίστε στην επόμενη ανάρτηση: Γιατί ο προσωπικός σας υπολογιστής βαθιάς εκμάθησης μπορεί να είναι ταχύτερος από τον AWS για να μάθετε τι οδηγεί την απόδοση βαθιάς εκμάθησης και πώς ο υπολογιστής σας θα στοιβάζεται ενάντια στο σύννεφο.

Δείτε νέες φωτογραφίες και ενημερώσεις: Ακολουθήστε με στο Medium, Instagram και Twitter!

Συχνές ερωτήσεις

Γιατί είναι σημαντική η επεκτασιμότητα σε έναν υπολογιστή βαθιάς μάθησης;
Εάν δεν γνωρίζετε πόση δύναμη GPU χρειάζεστε, η καλύτερη ιδέα είναι να δημιουργήσετε έναν υπολογιστή για βαθιά εκμάθηση με 1 GPU και να προσθέσετε περισσότερες GPUs κατά τη διάρκεια της εξέλιξης.

Θα με βοηθήσετε να χτίζω ένα;
Ευχαριστώ για βοήθεια με ερωτήσεις μέσω σχολίων / ηλεκτρονικού ταχυδρομείου. Επίσης, τρέχω το www.HomebrewAIClub.com, μερικά από τα μέλη μας μπορεί να ενδιαφέρονται να βοηθήσουν.

Πώς μπορώ να μάθω αυτά τα πράγματα;
Το Στάνφορντ διανέμει πολλά από τα προγράμματα σπουδών του ΣΠ. Έτσι κοιτάξτε εκεί.

Ποια μοντέλα μπορώ να εκπαιδεύσω;
Μπορείτε να εκπαιδεύσετε οποιοδήποτε μοντέλο, υπό την προϋπόθεση ότι έχετε δεδομένα, οι GPU είναι πιο χρήσιμες για τα Deep Neural Nets όπως CNNs, RNNs, LSTMs, GANs. Μερικά παραδείγματα με κώδικα και σύνολα δεδομένων παρατίθενται στον ιστότοπό μου thisisjeffchen.com.

Περισσότερες ερωτήσεις: βρίσκεται στο κάτω μέρος της σελίδας εδώ.

Παίρνω μεγάλη βοήθεια από άλλα άρθρα, ενώ ερευνούμε την κατασκευή, αν ενδιαφέρεστε να διαβάσετε περαιτέρω, τα ανέφερα εδώ: η δημοσίευση του Michael Reibel Boesen, η θέση του Gokkulnath T S, η θέση του Yusaku Sako, το blog του Tim Dettmer, η δημοσίευση του Vincent Chu , Το PCIe του συστήματος Puget 16x έναντι 8x, η QuantStart's rent vs. buy analysis, το άρθρο του Tom's Hardware.

Σας ευχαριστώ στους φίλους μου Evan Darke, Eva Glasrud, James Zhang και Jordan Sill για την ανάγνωση των σχεδίων.