Κυκλοφορία του PoCL 3.0 με ανεξάρτητη εφαρμογή του προτύπου OpenCL 3.0

Παρουσιάστηκε μια έκδοση του έργου PoCL 3.0 (Portable Computing Language OpenCL), το οποίο αναπτύσσει μια εφαρμογή του προτύπου OpenCL που είναι ανεξάρτητη από κατασκευαστές επιταχυντών γραφικών και επιτρέπει τη χρήση διαφόρων backends για την εκτέλεση πυρήνων OpenCL σε διαφορετικούς τύπους γραφικών και κεντρικών επεξεργαστές. Ο κωδικός του έργου διανέμεται με την άδεια MIT. Υποστηρίζει εργασία σε πλατφόρμες X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU και διάφορους εξειδικευμένους επεξεργαστές ASIP (Application-Specific Instruction-set Processor) και TTA (Transport Triggered Architecture) με αρχιτεκτονική VLIW.

Η υλοποίηση του μεταγλωττιστή πυρήνα OpenCL είναι χτισμένη με βάση το LLVM και το Clang χρησιμοποιείται ως το μπροστινό μέρος για το OpenCL C. Για να διασφαλιστεί η σωστή φορητότητα και απόδοση, ο μεταγλωττιστής πυρήνα OpenCL μπορεί να δημιουργήσει συναρτήσεις συνδυασμού που μπορούν να χρησιμοποιήσουν διάφορους πόρους υλικού για να παραλληλίσουν την εκτέλεση κώδικα, όπως VLIW, superscalar, SIMD, SIMT, multi-core και multi-threading. Υπάρχει υποστήριξη για προγράμματα οδήγησης ICD (Installable Client Driver). Υπάρχουν backend για υποστήριξη λειτουργίας μέσω CPU, ASIP (TCE/TTA), GPU με βάση την αρχιτεκτονική HSA και NVIDIA GPU (μέσω libcuda).

Στη νέα έκδοση:

  • Το ελάχιστο σύνολο χαρακτηριστικών που απαιτούνται για την υποστήριξη της προδιαγραφής OpenCL 3.0 έχει εφαρμοστεί. Η υποστήριξη OpenCL 3.0 είναι προς το παρόν διαθέσιμη μόνο σε backend που βασίζονται σε CPU με LLVM 14 (άλλα backends και παλαιότερες εκδόσεις του LLVM παρέχουν υποστήριξη για OpenCL 1.2).
  • Προστέθηκε υποστήριξη για Clang/LLVM 14.
  • Βελτιωμένη ανίχνευση και οπτικοποίηση.
  • Προστέθηκε υποστήριξη για τη δημιουργία εξειδικευμένων ομάδων συναρτήσεων και τη συμπερίληψή τους σε εκτελέσιμα αρχεία με πυρήνες OpenCL.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο