Έκδοση του PoCL 1.4, μια ανεξάρτητη υλοποίηση του προτύπου OpenCL

Διαθέσιμος έκδοση έργου PoCL 1.4 (Portable Computing Language OpenCL), η οποία αναπτύσσει μια εφαρμογή του προτύπου OpenCL που είναι ανεξάρτητη από τους κατασκευαστές επιταχυντών γραφικών και επιτρέπει τη χρήση διαφόρων backends για την εκτέλεση πυρήνων OpenCL σε διαφορετικούς τύπους γραφικών και κεντρικούς επεξεργαστές. Κωδικός έργου διανέμονται από με άδεια MIT. Υποστηρίζει εργασία σε πλατφόρμες X86_64, MIPS32, ARM v7, AMD HSA APU και διάφορους εξειδικευμένους επεξεργαστές TTA (Transport Triggered Architecture) με αρχιτεκτονική VLIW.

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

В νέα έκδοση:

  • Προστέθηκε υποστήριξη LLVM/Clang 9.0. Η υποστήριξη για εκδόσεις LLVM παλαιότερες από 6.0 έχει διακοπεί.
  • Βελτιωμένη εφαρμογή ενδιάμεσων αναπαραστάσεων κώδικα βάσει CPU SPIR и SPIR-V (χρησιμοποιείται στο Vulkan API), το οποίο μπορεί να χρησιμοποιηθεί τόσο για την αναπαράσταση shaders για γραφικά όσο και για παράλληλους υπολογιστές.
  • Προστέθηκε πρόγραμμα οδήγησης pocl-accel με παράδειγμα υποδομής για υποστήριξη επιταχυντών υλικού OpenCL 1.2 που υλοποιούν μια διασύνδεση ελέγχου αντιστοιχισμένης με μνήμη (mmap).
  • Προστέθηκε η δυνατότητα δημιουργίας εγκαταστάσεων pocl που δεν συνδέονται με καταλόγους (με δυνατότητα μετεγκατάστασης).

Πηγή: opennet.ru

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