Συστήματα Επεξεργασίας Υψηλών Επιδόσεων (FPGAs, DSPs, GPUs)
Γενικά
- Κωδικός: Ρ203
- Εξάμηνο: 2o
- Επίπεδο Σπουδών: Μεταπτυχιακό
- Τύπος μαθήματος: Ειδίκευσης
- Γλώσσα διδασκαλίας και εξετάσεων: Ελληνικά
- Το μάθημα διατίθεται σε φοιτητές Erasmus
- Μονάδες ECTS: 7.5
- Διδάσκοντες: Βουρβουλάκης Ιωάννης, Βολογιαννίδης Σταύρος
- Συντονιστής: Βουρβουλάκης Ιωάννης
Περιεχόμενα μαθήματος
- Επισκόπηση Άλγεβρας Boole. Εισαγωγή στις διατάξεις FPGAs/CPLDs. Κύκλος σχεδίασης συστημάτων. Γλώσσες περιγραφής υλικού. Εισαγωγή στη γλώσσα περιγραφής υλικού VHDL. Το λογισμικό ανάπτυξης εφαρμογών της Intel Quartus Prime.
- Σχεδίαση συνδυαστικών κυκλωμάτων. Υλοποίηση αποκωδικοποιητών, πολυπλεκτών, συγκριτών σε VHDL και έλεγχος λειτουργίας με χρήση testbench.
- Σχεδίαση αριθμητικών κυκλωμάτων. Υλοποίηση αθροιστή-αφαιρέτη. Αρχές ιεραρχικής σχεδίασης και υλοποίηση σε γλώσσα VHDL.
- Σχεδίαση ακολουθιακών κυκλωμάτων. Σχεδίαση flip-flop, καταχωρητών ολίσθησης/παράλληλης φόρτωσης, απαριθμητών, ολισθητών γραμμής.
- Μηχανές πεπερασμένων καταστάσεων (FSMs) και υλοποίησή τους σε γλώσσα περιγραφής υλικού VHDL. Σχεδίαση ελεγκτών/μονάδων επεξεργασίας σε VHDL.
- Επιτάχυνση επεξεργασίας δεδομένων με σχεδίαση στο υλικό. Παράλληλη επεξεργασία. Τεχνική pipeline και εφαρμογή σε φίλτρα 1D. Υλοποίηση φίλτρων FIR 1D.
- Σχεδίαση επεξεργαστών ρομποτικής όρασης. Τεχνική pipelining σε φίλτρα δύο διαστάσεων. Υλοποίηση φίλτρων εικόνας.
- Εφαρμογές SoC. Επεξεργαστές Nios II, MicroBlaze, PicoBlaze. Λογισμικό ανάπτυξης εφαρμογών της Xilinx ISE/Vivado. Pynq project.
- Εισαγωγή στην υπολογιστική των επεξεργαστών γραφικών (GPU computing) και στον παράλληλο προγραμματισμό με τη χρήση επεξεργαστών γραφικών. Εισαγωγή στην πλατφόρμα CUDA (Compute Unified Device Architecture) της NVIDIA.
- Προγραμματισμός σε CUDA με το MATLAB, εργαστηριακά παραδείγματα.
- Εισαγωγή στα παράλληλα και κατανεμημένα συστήματα. Υλοποίηση απλού project ρομποτικής σε CUDA.
Μαθησιακοί Στόχοι
Σκοπός του μαθήματος είναι να εισαγάγει τους φοιτητές στις έννοιες της παράλληλης επεξεργασίας για επιτάχυνση εφαρμογών επεξεργασίας σήματος, με χρήση εξειδικευμένου υλικού, όπως FPGAs και GPUs. Εφαρμογές ρομποτικής που σε συστήματα προσωπικών υπολογιστών θα απαιτούσαν μεγάλους χρόνους εκτέλεσης, μπορούν να υλοποιηθούν με χρήση διατάξεων FPGAs ή GPUs ώστε να επιτευχθούν υψηλές επιδόσεις και λειτουργία πραγματικού χρόνου.
Με την επιτυχή ολοκλήρωση του μαθήματος ο φοιτητής/τρια θα είναι σε θέση:
• να σχεδιάζει ψηφιακά κυκλώματα με τη χρήση των διατάξεων FPGAs.
• να κατανοεί αρχιτεκτονικές παράλληλης επεξεργασίας δεδομένων και να υλοποιεί με παράλληλο τρόπο φίλτρα ψηφιακής επεξεργασίας σε σήματα μιας και δύο διαστάσεων.
• να υλοποιεί αλγορίθμους ρομποτικής όρασης χρησιμοποιώντας διατάξεις υλικού.
• να χρησιμοποιεί εργαλεία ανάπτυξης υλικού/λογισμικού όπως τα Quartus Prime, Modelsim, Vivado, CUDA και να υλοποιεί συστήματα για ρομποτικές εφαρμογές.
Γενικές Ικανότητες
• να αναζητά, να αναλύει και να συνθέτει δεδομένα και πληροφορίες, με σκοπό τη σχεδίαση των ως άνω συστημάτων
• να εργάζεται αυτόνομα στο πλαίσιο ολοκληρωμένο σχεδίου εργασίας, με τρόπο που καλλιεργεί την αυτενέργεια και την επιστημονική πρωτοβουλία. Τα σχέδια εργασίας σχεδιάζονται ώστε να προάγουν την ελεύθερη, δημιουργική και επαγωγική σκέψη.
Μέθοδοι Διδασκαλίας
Θεωρητικό μέρος μαθήματος
Ανάπτυξη της ύλης στον πίνακα, χρήση διαφανειών σε βιντεοπροβολέα, επιδίωξη αλληλεπίδρασης με τους φοιτητές μέσω ερωταποκρίσεων και διαλογικής συζήτησης.
Εργαστηριακό μέρος μαθήματος (εντάσσεται στην τρίωρη διάλεξη)
Εργαστηριακές ασκήσεις με χρήση αναπτυξιακών συστημάτων FPGA, καρτών με αισθητήρες, ράστερ και διακριτών ηλεκτρονικών εξαρτημάτων.
Χρήση Τεχνολογιών Πληροφορίας και Επικοινωνιών
Χρήση λογισμικού σύγχρονης και ασύγχρονης τηλεκπαίδευσης.
Αναμετάδοση του μαθήματος μέσω Zoom και ανάρτηση εκπαιδευτικού υλικού στην πλατφόρμα Moodle όπως σημειώσεις, ηλεκτρονικά βιβλία, εργαστηριακές ασκήσεις, διαδικτυακοί ιστότοποι, βιντεοσκοπημένες διαλέξεις μαθημάτων κλπ.
Δημιουργία καναλιού στο λογισμικό slack για καλύτερη οργάνωση της επικοινωνίας που αφορά το συγκεκριμένο μάθημα
Οργάνωση Διδασκαλίας
| Δραστηριότητα | Φόρτος εργασίας εξαμήνου |
| Ώρες Διδασκαλίας | 39 |
| Εκπόνηση εργασίας | 100 |
| Αυτοτελής Μελέτη | 50 |
| Σύνολο | 189 |
Αξιολόγηση Φοιτητών
Ο τελικός βαθμός του μαθήματος διαμορφώνεται κατά βάση από την εκπόνηση δύο εργασιών εξαμήνου. Η πρώτη εργασία αφορά τις διατάξεις FPGA και η δεύτερη εργασία αφορά την χρήση GPU, τον προγραμματισμό παράλληλων και κατενεμημένων συστημάτων. Η κάθε εργασία μπορεί να περιλαμβάνει βιβλιογραφική αναζήτηση, σύνταξη κειμένου, ανάπτυξη κώδικα, υλοποίηση κυκλώματος, επίδειξη λειτουργίας και δεκαπεντάλεπτη παρουσίαση η οποία πραγματοποιείται στο τέλους του εξαμήνου.
Οι παρουσιάσεις των εργασιών είναι ανοικτές στο κοινό, κατά τη διάρκειά τους πραγματοποιούνται ερωτήσεις και γίνεται λεπτομερής εξέταση των μεθόδων που εφαρμόστηκαν και των αποτελεσμάτων που παράχθηκαν.
Μπορεί προαιρετικά να πραγματοποιηθεί και γραπτή τελική εξέταση στο τέλος του εξαμήνου η οποία θα προσμετράται μαζί με την εκπόνηση των δύο εργασιών για τον τελικό βαθμό του μαθήματος.
Η γραπτή εξέταση μπορεί να περιλαμβάνει επίλυση προβλημάτων εφαρμογής των γνώσεων που αποκτήθηκαν, ερωτήσεις πολλαπλής επιλογής, ερωτήσεις σύντομης απάντησης, ερωτήσεις ανάπτυξης κλπ.
Συνιστώμενη Βιβλιογραφία
-Προτεινόμενη Βιβλιογραφία για το θεωρητικό μέρος
- “Circuit Design and Simulation with VHDL”, V. Pedroni, 2nd Edition, MIT Press.
- “Quick Start Guide to VHDL”, Brock J. LaMeres, 1st Edition, Springer.
- “Digital Signal processing with Field Programmable Gate Arrays”, Meyer-Baese, Springer.
- “Embedded SoPC design with Nios II Processor and VHDL examples”, Pong Chu, Wiley.
- “Εισαγωγή στη VHDL”, Ιωάννη Καλόμοιρου, Σημειώσεις.
- “Programming on Parallel machines”, Norm Matloff, open access.
- “Programming Massively Parallel Processors”, David Kirk, Wen-mei W. Hwu, Morgan Kaufmann, 2010.
- “The CUDA Handbook: A Comprehensive Guide to GPU Programming”, Nicholas Wilt, 2011.
Προτεινόμενη βιβλιογραφία για το εργαστηριακό μέρος
- Βουρβουλάκης Ιωάννης, Προηγμένα Ψηφιακά Συστήματα – Εργαστηριακές Ασκήσεις, Σέρρες, 2022.
- Βουρβουλάκης Ιωάννης, Σχεδίαση Συστημάτων Υψηλών Επιδόσεων – Εργαστηριακές Ασκήσεις, Σέρρες, 2022.
