Όλο το λογισμικό των υπολογιστών εκτελείται σε υλικό, οπότε τι στο καλό σημαίνει για το λογισμικό να χρησιμοποιεί “επιτάχυνση υλικού – hardware acceleration” αν το υλικό κάνει ήδη τη δουλειά; Αποδεικνύεται ότι υπάρχουν τρόποι να κάνουμε πράγματα με υλικό υπολογιστή που είναι ταχύτερα. Πολύ πιο γρήγορα. Ξεκινάμε το σύντομο άρθρο μας “Τι είναι η επιτάχυνση υλικού – Πότε πρέπει να την ενεργοποιήσετε”.
ΚΥΡΙΑ ΣΤΟΙΧΕΙΑ ΝΑ ΚΡΑΤΗΣΕΤΕ
- Η επιτάχυνση υλικού είναι ένας τρόπος να εκτελείτε εργασίες ταχύτερα χρησιμοποιώντας εξειδικευμένο υλικό, όπως οι GPU.
- Η επιτάχυνση υλικού θυσιάζει την ευελιξία και μπορεί να καταστεί παρωχημένη εάν η διαδικασία για την οποία έχει σχεδιαστεί γίνει ασύμφορη ή δεν χρησιμοποιείται πλέον.
- Ενεργοποιήστε την επιτάχυνση υλικού όταν είναι διαθέσιμη για σημαντικά κέρδη απόδοσης, αλλά ζυγίστε τα πλεονεκτήματα και τα μειονεκτήματα της σταθερότητας και της ποιότητας.
Τι είναι η επιτάχυνση υλικού;
Η επιτάχυνση υλικού είναι μια προσέγγιση στην πληροφορική όπου χρησιμοποιείται εξειδικευμένο υλικό για την εκτέλεση υπολογισμών πολύ ταχύτερα από το υλικό γενικού σκοπού. Θα εξηγήσουμε τι σημαίνει αυτό σε ένα λεπτό, αλλά οι γενικές γραμμές είναι ότι ορισμένες κοινές εργασίες γίνονται πολύ πιο γρήγορα αν χρησιμοποιείτε εξειδικευμένο υλικό για να τις εκτελέσετε. Ένα καλό παράδειγμα είναι η GPU. Μια άλλη ιστορική ονομασία για μια GPU είναι “επιταχυντής 3D“, αν και σήμερα κάνουν πολύ περισσότερα από 3D γραφικά, φυσικά.
Η CPU στον υπολογιστή σας μπορεί να κάνει όλα τα ίδια μαθηματικά που μπορεί να κάνει η GPU σας, απλώς η GPU μπορεί να τα κάνει πιο γρήγορα – αρκετά γρήγορα ώστε να είναι δυνατά τα πολύπλοκα τρισδιάστατα γραφικά σε πραγματικό χρόνο. Άλλα παραδείγματα επιτάχυνσης υλικού σε τυπικούς υπολογιστές και κινητές συσκευές είναι η κωδικοποίηση και η αποκωδικοποίηση βίντεο. Οι περισσότεροι σύγχρονοι υπολογιστές και τα τηλέφωνα έχουν στο εσωτερικό τους εξειδικευμένα τσιπ που επεξεργάζονται βίντεο γρήγορα, και ενώ χρησιμοποιούν πολύ λιγότερη ενέργεια από μια πλήρη CPU, που ασχολείται με την ίδια εργασία.
Οι μεγάλοι επεξεργαστές, όπως οι CPU και οι GPU, διαθέτουν ειδικά τμήματα μέσα στις δικές τους δομές που είναι προσανατολισμένα σε ειδικές εργασίες. Μια κάρτα γραφικών NVIDIA RTX, για παράδειγμα, διαθέτει ειδικές περιοχές της GPU που έχουν σχεδιαστεί για να επιταχύνουν την ανίχνευση ακτίνων ή εργασίες που σχετίζονται με την τεχνητή νοημοσύνη.
Γιατί η επιτάχυνση υλικού είναι ταχύτερη;
Η επιτάχυνση υλικού έχει να κάνει με την εξειδίκευση. Η CPU σας είναι ένας πολυπράγμων, αλλά κανένας δεξιοτέχνης. Χρειάζεται τα εξαρτήματα στο σχεδιασμό της για να εκτελέσει οποιονδήποτε υπολογισμό. Που μπορεί να εκφραστεί σε δυαδικό κώδικα, αλλά αυτό είναι εγγενώς αναποτελεσματικό. Ως απλό παράδειγμα, αν έπρεπε να κατασκευάσετε μια μηχανή. Που να μπορεί να προσθέτει, να αφαιρεί, να πολλαπλασιάζει και να διαιρεί αριθμούς. Είναι απίθανο να είναι τόσο γρήγορη όσο μια μηχανή που κατασκευάστηκε με μοναδικό σκοπό την πρόσθεση αριθμών μεταξύ τους. Με μια τέτοια εστίαση με λέιζερ σε ένα στενό σύνολο προβλημάτων, μπορείτε να είστε ταχύτεροι και αποδοτικότεροι.
Ποια είναι τα μειονεκτήματα της επιτάχυνσης υλικού;
Η επιτάχυνση υλικού συνοδεύεται από μερικά αντισταθμιστικά οφέλη. Το μεγαλύτερο από αυτά είναι η απώλεια ευελιξίας. Όταν έχετε υλικό που έχει κατασκευαστεί για να κάνει ένα πράγμα ή ένα μικρό σύνολο συναφών πραγμάτων. Χάνετε τη δυνατότητα να κάνετε άλλα πράγματα. Αυτός είναι ο λόγος για τον οποίο θα χρειαζόμαστε πάντα μια CPU με τη μία ή την άλλη μορφή. Ανεξάρτητα από το πόσους εξειδικευμένους συνεπεξεργαστές έχετε.
Ένα άλλο σημαντικό μειονέκτημα της επιτάχυνσης υλικού είναι ότι είστε εγκλωβισμένοι σε μια συγκεκριμένη διεργασία. Για παράδειγμα, οι ‘μεταλλωρύχοι’ κρυπτονομισμάτων χρησιμοποιούν συχνά ASIC (Application-Specific Integrated Circuits). Που είναι γρήγοροι και αποτελεσματικοί στην εξόρυξη μιας συγκεκριμένης αλυσίδας μπλοκ. Ωστόσο, δεν μπορούν να κάνουν εξόρυξη σε άλλες αλυσίδες μπλοκ που χρησιμοποιούν διαφορετικά “μαθηματικά”. Οπότε αν αυτή η μορφή κρυπτογράφησης καταστεί ασύμφορη, το υλικό καθίσταται άχρηστο. Το τηλέφωνό σας μπορεί να επιταχύνει την αποκωδικοποίηση βίντεο συγκεκριμένων κωδικοποιητών βίντεο. Αλλά δεν θα είναι σε θέση να το κάνει για νεότερους κωδικοποιητές. Θα χρειαστείτε ένα νέο τηλέφωνο για αυτό!
Ομοίως, το παιχνίδι Alan Wake 2 χρησιμοποιεί ένα στοιχείο υλικού γραφικών, γνωστό ως mesh shaders. Εάν δεν έχετε κάρτα γραφικών με επιταχυνόμενη υποστήριξη υλικού για το χαρακτηριστικό mesh shader. Η GPU πρέπει να καταφύγει στην εκτέλεση των υπολογισμών χρησιμοποιώντας υλικό γενικότερου σκοπού. Γεγονός που οδηγεί σε τεράστια προβλήματα απόδοσης.
Για όσους σχεδιάζουν μικροεπεξεργαστές, υπάρχει επίσης ένα σημαντικό ζήτημα. Σχετικά με το εξειδικευμένο υλικό και το περιορισμένο πραγματικό χώρο στο εσωτερικό ενός τσιπ. Για παράδειγμα, αυτό το υλικό επιτάχυνσης ray-tracing στις κάρτες γραφικών NVIDIA RTC θα μπορούσε να είναι επεξεργαστές GPU γενικής χρήσης. Αυτό σημαίνει ότι παραιτείστε από την απόδοση της μη ανίχνευσης ακτίνων υπέρ της πολύ ταχύτερης εκτέλεσης αυτής της λειτουργίας.
Πότε να ενεργοποιήσετε την επιτάχυνση υλικού
Η σύντομη απάντηση είναι ότι πρέπει να ενεργοποιείτε την επιτάχυνση υλικού όπου είναι διαθέσιμη. Στις περισσότερες περιπτώσεις η επίδραση στην απόδοση σε σχέση με τη χρήση επεξεργασίας γενικού σκοπού είναι βαθιά. Για παράδειγμα, οι εξαγωγές βίντεο με επιτάχυνση υλικού μπορεί να έχουν πραγματικό οικονομικό αντίκτυπο. Για τους δημιουργούς περιεχομένου, επειδή ο χρόνος είναι χρήμα.
Ωστόσο, η επιτάχυνση υλικού δεν είναι πάντα η καλύτερη λύση:
- Μερικές φορές η επιτάχυνση υλικού είναι η αιτία για την αστάθεια των εφαρμογών. Για παράδειγμα, είναι σύνηθες τα χαρακτηριστικά των προγραμμάτων περιήγησης ιστού (browsers) που επιταχύνονται με υλικό να προκαλούν προβλήματα. Αυτός είναι ο λόγος για τον οποίο η απενεργοποίηση της επιτάχυνσης υλικού για τα προγράμματα περιήγησης είναι ένα συνηθισμένο αρχικό βήμα αντιμετώπισης προβλημάτων.
- Η επιτάχυνση υλικού μπορεί μερικές φορές να είναι ταχύτερη, αλλά να παράγει αποτελέσματα χαμηλότερης ποιότητας. Έτσι, αν η ακρίβεια αποτελεί προτεραιότητα, ίσως να θέλετε να κάνετε τα πράγματα με τον αργό τρόπο.
Αν, ωστόσο, δεν έχετε προβλήματα ποιότητας ή σταθερότητας, τότε προχωρήστε και ανοίξτε τον διακόπτη turbo!
Μπορείτε να κατεβάσετε επίσης δωρεάν, πολύ ενδιαφέροντα e-books που έφτιαξα σχετικά με τη δημιουργία websites αλλά και για γλώσσες προγραμματισμού, εδώ στα free downloads.