λογότυπο της IntelAN 824 FPGA SDK για OpenCL Board
Κάτοψη πακέτου υποστήριξης
Οδηγός χρήσης

 Intel® FPGA SDK για Οδηγός βελτιστοποίησης κάτοψης πακέτου υποστήριξης OpenCL™ Board
Ο Οδηγός βελτιστοποίησης της κάτοψης του Intel/® FPGA SDK για Πακέτο Υποστήριξης Πλακέτας OpenCL™ (BSP) παρέχει οδηγίες σχεδιασμού ορόφων για το OpenCL) BSP. Παρέχει επίσης καθοδήγηση σχετικά με το πώς μπορείτε να αποκτήσετε τον βασικό σπόρο με την καλύτερη μέση μέγιστη συχνότητα λειτουργίας και να αξιολογήσετε την αποδοτικότητα χρήσης πόρων BSP.
Αυτό το έγγραφο προϋποθέτει ότι είστε εξοικειωμένοι με τις έννοιες OpenCL(2) όπως περιγράφονται στην έκδοση 1.0 της Προδιαγραφής OpenCL από τον Όμιλο Khronos.

OpenCL BSP Compilation Flow
Το OpenCL BSP υποστηρίζει τους ακόλουθους τύπους ροών μεταγλώττισης:

  • Επίπεδη μεταγλώττιση [–bsp-flow flat]: Εκτελεί μια επίπεδη μεταγλώττιση ολόκληρου του σχεδίου (BSP μαζί με υλικό που δημιουργείται από πυρήνα).
  • Μεταγλώττιση βάσης [–bsp-flow base]: Εκτελεί μια μεταγλώττιση βάσης χρησιμοποιώντας περιορισμούς LogicLock από το base.qsf file. Ο στόχος του ρολογιού του πυρήνα είναι χαλαρός, έτσι ώστε το υλικό BSP να έχει περισσότερη ελευθερία να ανταποκρίνεται στο χρονοδιάγραμμα. Δημιουργείται μια βάση δεδομένων base.qar για τη διατήρηση του υλικού BSP, που είναι η στατική περιοχή.
  • Εισαγωγή μεταγλώττισης [ ]: Επαναφέρει την κλειστή στατική περιοχή χρονισμού από τη βάση δεδομένων base.qar και μεταγλωττίζει μόνο το υλικό που δημιουργείται από τον πυρήνα. Αυξάνει επίσης τον στόχο ρολογιού του πυρήνα για να αποκτήσει την καλύτερη μέγιστη συχνότητα λειτουργίας του πυρήνα (fmax).

Διαμέρισμα OpenCL BSP Κάτοψης
Η κάτοψη του OpenCL BSP χωρίζεται κυρίως στις ακόλουθες δύο περιοχές:

  • Στατική περιοχή: Αντιπροσωπεύει την περιοχή που έχει υλικό σχετικό με το BSP που παραμένει στατικό. Ο χρονισμός είναι κλειστός για αυτήν την περιοχή κατά τη διάρκεια της κατάρτισης βάσης. Γενικά, ο στόχος είναι να ελαχιστοποιηθούν οι πόροι τσιπ που χρησιμοποιούνται από αυτήν την περιοχή για το κλείσιμο του χρονισμού.
  • Περιοχή πυρήνα: Αντιπροσωπεύει την περιοχή μερικής αναδιαμόρφωσης (PR) που είναι δεσμευμένη για την ενότητα freeze_wrapper_inst|kernel_system_inst, η οποία περιέχει τον πυρήνα. Γενικά, ο στόχος είναι να δεσμευτούν πόροι τσιπ στο μέγιστο βαθμό για αυτήν την περιοχή.
  1. Το Intel FPGA SDK για OpenCL βασίζεται σε μια δημοσιευμένη Προδιαγραφή Khronos και έχει περάσει τη Διαδικασία δοκιμής συμμόρφωσης Khronos. Η τρέχουσα κατάσταση συμμόρφωσης βρίσκεται στη διεύθυνση www.khronos.org/conformance.
  2. Το OpenCL και το λογότυπο OpenCL είναι εμπορικά σήματα της Apple Inc. και χρησιμοποιούνται με άδεια του Khronos Group™.

Intel Corporation. Με την επιφύλαξη παντός δικαιώματος. Η ονομασία Intel, το λογότυπο Intel και άλλα σήματα Intel είναι εμπορικά σήματα της Intel Corporation ή των θυγατρικών της. Η Intel εγγυάται την απόδοση των προϊόντων FPGA και ημιαγωγών της σύμφωνα με τις τρέχουσες προδιαγραφές σύμφωνα με την τυπική εγγύηση της Intel, αλλά διατηρεί το δικαίωμα να κάνει αλλαγές σε οποιαδήποτε προϊόντα και υπηρεσίες ανά πάσα στιγμή χωρίς προειδοποίηση. Η Intel δεν αναλαμβάνει καμία ευθύνη ή ευθύνη που απορρέει από την εφαρμογή ή τη χρήση οποιασδήποτε πληροφορίας, προϊόντος ή υπηρεσίας που περιγράφεται στο παρόν, εκτός εάν συμφωνηθεί ρητά εγγράφως από την Intel. Συνιστάται στους πελάτες της Intel να λαμβάνουν την πιο πρόσφατη έκδοση των προδιαγραφών της συσκευής προτού βασιστούν σε οποιεσδήποτε δημοσιευμένες πληροφορίες και προτού υποβάλουν παραγγελίες για προϊόντα ή υπηρεσίες.
*Άλλα ονόματα και επωνυμίες μπορούν να διεκδικηθούν ως ιδιοκτησία τρίτων.

Οδηγίες για το OpenCL BSP Planning

  • Ξεκινήστε με την επίπεδη μεταγλώττιση για να κατανοήσετε πού τοποθετούνται φυσικά όλα τα κύρια στοιχεία του BSP (ειδικά τα μπλοκ IP με συνδέσεις I/O όπως PCIe ή DDR). Κατά το σχεδιασμό του BSP, ίσως χρειαστεί να σκεφτείτε τη δημιουργία αγωγώνtagείναι μεταξύ των IP για το κλείσιμο του χρονισμού. Θα πρέπει πρώτα να εκτελέσετε μια επίπεδη σάρωση σπόρων μεταγλώττισης για να εντοπίσετε τις επαναλαμβανόμενες διαδρομές αποτυχίας και, στη συνέχεια, να προσπαθήσετε να τις διορθώσετε.
    Συμβουλή: — Ένας καλός ρυθμός κλεισίματος συγχρονισμού σε σχέση με τις σαρώσεις σπόρων με επίπεδη μεταγλώττιση θα έχει μεγαλύτερες πιθανότητες να κλείσει ο χρονισμός μεταγλώττισης βάσης.
    — Εάν παρατηρήσετε σταθερές αστοχίες στο mm_interconnect* (συστατικό που προστέθηκε από την Qsys), ανοίξτε το σύστημα με το Qsys Interconnect viewκαι παρατηρήστε την πολυπλοκότητα της αποτυχημένης διασύνδεσης. Μπορείτε να προσθέσετε flipflops διοχέτευσης στο viewγια τη βελτίωση του χρονισμού. Εάν εξακολουθείτε να μην μπορείτε να αντιμετωπίσετε το πρόβλημα, ίσως χρειαστεί να αναλύσετε την κρίσιμη διαδρομή mm_interconnect* προσθέτοντας γέφυρες αγωγών Avalon.
  • Κατά τη μεταγλώττιση βάσης, ξεκινήστε με το LogicLock στην περιοχή του πυρήνα που περιέχει freeze_wrapper_inst|kernel_system_inst. Χωρίς άλλους περιορισμούς, το Intel Quartus Prime μπορεί να τοποθετήσει ελεύθερα το υλικό BSP στην υπόλοιπη στατική περιοχή του τσιπ. Χρησιμοποιήστε την επίπεδη μεταγλώττιση και τον σχεδιασμό τσιπ για να προσδιορίσετε το μέγεθος και τη θέση του υλικού BSP, όπως το PCIe και το DDR. Στη συνέχεια, δεσμεύστε την περιοχή του πυρήνα χρησιμοποιώντας το LogicLock αποφεύγοντας παράλληλα τις κύριες συγκεντρωμένες περιοχές του υλικού BSP.
    Συμβουλή: Εάν η οικογένεια τσιπ που χρησιμοποιείται είναι ίδια με την πλατφόρμα αναφοράς και εάν τα στοιχεία BSP είναι παρόμοια, ίσως είναι πιο γρήγορο να ξεκινήσετε με τις περιοχές LogicLock για freeze_wrapper_inst|kernel_system_inst που αποστέλλεται με το OpenCL αναφοράς BSP και να αντιμετωπίσετε τις αστοχίες.
  • Μπορείτε να προσθέσετε τα ακόλουθα πρόσθετα στοιχεία στο BSP σας:
    — Τράπεζες μνήμης: Εάν προσθέσετε περισσότερες τράπεζες μνήμης, θα πρέπει να προσδιορίσετε τη θέση της τράπεζας εισόδου/εξόδου, καθώς μπορεί να χρειαστεί να προσθέσετε γέφυρες αγωγών για να τηρήσετε το χρονοδιάγραμμα.
    — Κανάλια I/O: Μπορείτε να προσθέσετε κανάλια I/O, όπως βίντεο, Ethernet ή σειριακή διεπαφή. Εάν προσθέσετε κανάλια εισόδου/εξόδου, θα πρέπει να προσδιορίσετε την τοποθεσία της τράπεζας εισόδου/εξόδου, καθώς ενδέχεται να χρειαστεί να εφαρμόσετε νέες περιοχές LogicLock για τη διοχέτευση, εάν ο χρονισμός κλεισίματος είναι δύσκολος.
    Συμβουλή: Εάν χρειάζεται να προσθέσετε γέφυρες αγωγών (π.χample, λόγω μεγάλων καθυστερήσεων δρομολόγησης που προκαλούν αποτυχίες χρονισμού), στη συνέχεια εξετάστε την απόσταση δρομολόγησης από τη λογική πηγής προς τον προορισμό στο τσιπ και αφήστε λίγο χώρο που προορίζεται για την περιοχή του πυρήνα.
  • Ακολουθήστε αυτές τις γενικές οδηγίες όταν κάνετε κράτηση περιοχών LogicLock για τον πυρήνα:
    — Προσπαθήστε να τοποθετήσετε όλες τις στήλες DSP στο kernel_system, εκτός εάν απαιτείται από το BSP.
    — Προσπαθήστε να κρατήσετε περισσότερους πόρους για το kernel_system.
    — Προσπαθήστε να διατηρήσετε τον αριθμό των εγκοπών στην περιοχή του πυρήνα στο ελάχιστο.
    Το παρακάτω σχήμα απεικονίζει μια εγκοπή που προστέθηκε για να τοποθετηθεί μια γέφυρα αγωγού μεταξύ PCIe και τράπεζας DDR.

Εικόνα 1. Κάτοψη OpenCL BSP για Intel Arria® 10 GX στην έκδοση 17.0

intel AN 824 FPGA SDK για Κάτοψη πακέτου υποστήριξης πλακέτας OpenCL

Οδηγίες για τη μέγιστη συχνότητα λειτουργίας
Η μέγιστη συχνότητα λειτουργίας (fmax) που επιτυγχάνεται από πυρήνες εξαρτάται σε μεγάλο βαθμό από την ταχύτητα FPGA, καθώς οι περισσότερες από τις IP θα πρέπει να έχουν ήδη βελτιστοποιηθεί. Ωστόσο, ενδέχεται να υπάρξουν κάποιες απώλειες fmax ανάλογα με την κάτοψη του BSP. Για π.χample, συνήθως ο αριθμός των αποκοπών στην περιοχή του πυρήνα του BSP επηρεάζει το fmax του πυρήνα.
Όπως φαίνεται στο παρακάτω σχήμα, για να αποκτήσετε τον καλύτερο σπόρο βάσης που αποδίδει τον καλύτερο μέσο όρο fmax:

  1. Εκτελέστε ένα σκούπισμα σπόρων στη συλλογή βάσης αντί να επιλέξετε τον πρώτο σπόρο βάσης που ανταποκρίνεται στο χρονισμό.
  2. Εκτελέστε μεταγλώττιση εισαγωγής (χρησιμοποιώντας λίγους πυρήνες από το π.χample designs) σε όλους τους σπόρους βάσης που περνούν.
  3. Υπολογίστε τον μέσο όρο fmax για όλους τους σπόρους βάσης.
  4. Επιλέξτε τον βασικό σπόρο που αποδίδει τον υψηλότερο μέσο όρο fmax.
    Ο βασικός σπόρος με τον καλύτερο μέσο όρο fmax είναι καλός υποψήφιος για κυκλοφορία με BSP. Εάν αποφασίσετε να ακολουθήσετε μια προσέγγιση διαφορετική από τα προτεινόμενα βήματα, μπορεί να παρατηρήσετε 5-10% διακύμανση στο fmax της διαδικασίας μεταγλώττισης εισαγωγής πυρήνα.

Εικόνα 2. Προσδιορισμός του καλύτερου σπόρου βάσηςintel AN 824 FPGA SDK για Πακέτο Υποστήριξης Πίνακα OpenCL Κάτοψη - εικ.

  • Για να κατανοήσετε πόσο γρήγορα μπορεί να τρέξει ο πυρήνας χωρίς περιορισμούς στην κάτοψη:
    1. Εκτελέστε μια επίπεδη συλλογή του πυρήνα και παρατηρήστε το fmax.
    2. Εκτελέστε μια εισαγωγή εισαγωγής στον ίδιο πυρήνα και παρατηρήστε το fmax.
    3. Συγκρίνετε τα αποτελέσματα fmax.
    Λόγω των περιορισμών της κάτοψης, η εισαγωγή fmax μεταγλώττισης είναι πάντα χαμηλότερη από την επίπεδη μεταγλώττιση fmax. Για να αποφύγετε το θόρυβο των σπόρων, μεταγλωττίστε τον πυρήνα με περισσότερους σπόρους βάσης και σκεφτείτε έναν μέσο όρο fmax ενώ συγκρίνετε τα αποτελέσματα του fmax.
  • Ποτέ μην συγκρίνετε τον πυρήνα fmax από μια συλλογή βάσης με μια επίπεδη ή μια συλλογή εισαγωγής. Οι στόχοι του ρολογιού του πυρήνα είναι χαλαροί κατά τη σύνταξη βάσης και ως εκ τούτου, δεν θα έχετε ποτέ καλά αποτελέσματα.
  • Παρατηρήστε την κρίσιμη διαδρομή του ρολογιού του πυρήνα στη μεταγλώττιση βάσης ή εισαγωγής. Εάν το κρίσιμο μονοπάτι διασχίζει από τον πυρήνα στη στατική περιοχή στην κάτοψη, αλλάξτε την κάτοψη ή εκτελέστε λίγους ακόμα βασικούς σπόρους για να αποφύγετε αυτήν την κρίσιμη διαδρομή.

Οδηγίες για την αξιολόγηση της αποδοτικότητας της χρήσης πόρων BSP

Όσο υψηλότερο είναι το ποσοστό χρήσης πόρωνtagε, τόσο καλύτερη είναι η χρήση της περιοχής στη στατική περιοχή του BSP σας. Υψηλό ποσοστό χρήσης πόρωνtagΤο e υποδηλώνει επίσης ότι είναι διαθέσιμοι περισσότεροι πόροι για την περιοχή του πυρήνα.
Ακολουθήστε τα παρακάτω βήματα για να υπολογίσετε το ποσοστό χρήσης πόρωνtage του BSP σας:

  1. Λάβετε τιμές για όλους τους πόρους στο FPGA από το top.fit.rpt ή το base.fit.rpt που είναι διαθέσιμο στην ενότητα Statistics Partition της αναφοράς Fitter.
  2. Αφαιρέστε την τιμή για το "freeze_wrapper_inst|kernel_system_inst" (περιοχή πυρήνα).

Ακρο:
Εστιάστε περισσότερο στις τιμές της προσαρμοστικής λογικής ενότητας (ALM) παρά στις τιμές άλλων πόρων. Βεβαιωθείτε ότι το ποσοστό χρήσης πόρωνtagΤο e for ALM είναι πιο κοντά στο BSP αναφοράς OpenCL. Πολύ υψηλό ποσοστόtagΤο e for ALM μπορεί να οδηγήσει σε συμφόρηση, η οποία μπορεί να αυξήσει τον χρόνο μεταγλώττισης και να εισάγει συμφορήσεις δρομολόγησης σε σύνθετους πυρήνες. Ωστόσο, μπορείτε πάντα να αυξήσετε ή να μειώσετε την περιοχή στατικής περιοχής και να παρατηρήσετε τον χρόνο μεταγλώττισης και το fmax.
Ο παρακάτω πίνακας αντικατοπτρίζει τη χρήση πόρων OpenCL BSP των συσκευών Arria ® 10 GX στην έκδοση 17.0.

Πίνακας 1.
OpenCL BSP Resource Utilization των συσκευών IntelArria 10 GX στην έκδοση 17.0

Σύνολο διαθέσιμο Με κράτηση για Kernel Διαθέσιμο για BSP Χρησιμοποιείται από την BSP 0/0
ALM 427200 393800 33400 23818. 71%
Μητρώα 1708800 1575200 133600 38913 29%
Μ2ΟΚ 2713 2534 179 134 75%
DSP 1518 1518 0 0 N/A

Παρατηρήστε ότι η σχεδίαση ορόφων εκτελείται με τέτοιο τρόπο ώστε η στατική περιοχή να μην έχει μπλοκ DSP.

Ιστορικό αναθεώρησης εγγράφου

Πίνακας 2.
Ιστορικό αναθεώρησης εγγράφων του Intel FPGA SDK για το πακέτο υποστήριξης πλακέτας OpenCL Οδηγός βελτιστοποίησης κατόψεων

Ημερομηνία Εκδοχή Αλλαγές
Αυγούστου-17 Αρχική έκδοση.

εικόνισμα Online έκδοση
cardo 590878 Spirit Bluetooth ενδοεπικοινωνία - ICON 14 Αποστολή σχολίων
ID: 683312
ΑΝ-824
Έκδοση: 2017.08.08
AN 824: Intel® FPGA SDK για πλακέτα OpenCL™

Οδηγός βελτιστοποίησης κάτοψης πακέτου υποστήριξης

Έγγραφα / Πόροι

intel AN 824 FPGA SDK για Κάτοψη πακέτου υποστήριξης πλακέτας OpenCL [pdf] Οδηγός χρήστη
Κάτοψη AN 824 FPGA SDK για OpenCL Board Support Package, AN 824, FPGA SDK for OpenCL Board Support Package Κάτοψη, OpenCL Board Support Package Κάτοψη, Πακέτο Υποστήριξης Board Κάτοψη, Πακέτο Υποστήριξης Κάτοψη, Πακέτο Κάτοψης, Κάτοψη πακέτου

Αναφορές

Αφήστε ένα σχόλιο

Η διεύθυνση email σας δεν θα δημοσιευτεί. Τα υποχρεωτικά πεδία επισημαίνονται *