Το Project Sumatra βελτιώνει την απόδοση της Java με επιτάχυνση κάρτας γραφικών OpenCL

Project Sumatra Ανάπτυξη GPU Accelerated Java χρησιμοποιώντας OpenCL

Η Java είναι μια γλώσσα προγραμματισμού που επιτρέπει στους προγραμματιστές να γράφουν μία φορά και να αναπτύσσουν παντού -– από επιτραπέζιους υπολογιστές παιχνιδιών προηγμένης τεχνολογίας έως smartphone. Η λειτουργική και αγωνιστική φύση του OS είναι ένα από τα ισχυρότερα σημεία πώλησης, αλλά ένας τομέας όπου μπορεί να πέσει είναι η απόδοση. Σε γενικές γραμμές, οι εφαρμογές Java δεν θα αποδίδουν όπως και οι εγγενείς εφαρμογές που έχουν γραφτεί για ένα συγκεκριμένο λειτουργικό σύστημα. Ωστόσο, χάρη στο Project Sumatra, το χάσμα επιδόσεων μπορεί σύντομα να γίνει λιγότερο θέμα.

Το έργο που υποστηρίζεται από το OpenJDK εργάζεται επί του παρόντος για να αξιοποιήσει την παράλληλη ισχύ επεξεργασίας ολοκληρωμένων και διακριτών καρτών γραφικών για την επιτάχυνση των εφαρμογών Java. Η επιτάχυνση της GPU δεν είναι μια νέα ιδέα, αλλά αυτό το έργο είναι ενδιαφέρον λόγω του τρόπου λειτουργίας του και των μελλοντικών επιπτώσεων της έρευνας.

Για πρώτη φορά αποκάλυψε τον Αύγουστο, το Project Sumatra χρησιμοποιεί τις δυνατότητες και τις βιβλιοθήκες του Java 8's Πρόγραμμα Lambda καθώς και το HotSpot της Oracle για την εικονική μηχανή Java. (Το Lambda είναι ένα σύνολο εκφράσεων για τη γλώσσα προγραμματισμού Java που προορίζεται να βελτιώσει την υποστήριξη πολλαπλών πυρήνων.)



Προκειμένου να επωφεληθούν από την επιτάχυνση της GPU, οι προγραμματιστές λογισμικού θα πρέπει να σχολιάσουν τον κωδικό τους για να υποδείξουν ποιες εκφράσεις λάμδα είναι κατάλληλες για την παράλληλη φύση των GPU. Στη συνέχεια, όταν εκτελείτε μια εφαρμογή Java σε ένα σύστημα με εγκατεστημένη μια GPU συμβατή με OpenCL, το μεταγλωττιστή HotSpot JIT (just-in-time) θα μεταφράσει τα σχολιασμένα bit κώδικα σε OpenCL για επεξεργασία στην GPU και όχι στη CPU. Αυτή είναι μια ενδιαφέρουσα μέθοδος καθώς θα απαιτήσει σχετικά απλές ενημερώσεις σε εφαρμογές, προκειμένου να επωφεληθεί από την επιτάχυνση υλικού GPU και θα είναι αόρατη για τον τελικό χρήστη. Βεβαίως, δεν θα βλέπουν σε κάθε εφαρμογή τεράστιες αυξήσεις απόδοσης - εάν μπορούν να παραλληλιστούν καθόλου - αλλά πολλοί θα μπορούν να επωφεληθούν από την αξιοποίηση της GPU σε κάποιο βαθμό.

JDK8Οι προγραμματιστές πίσω από το έργο Sumatra επικεντρώνονται επί του παρόντος στην ανάπτυξη υποστήριξης OpenCL με τεχνολογίες Java 8, αλλά αναμένουν ότι η έρευνα ανάπτυξης θα επηρεάσει την επιτάχυνση υλικού GPU με άλλες γλώσσες που φιλοξενούνται από JVM όπως το JRuby και το Scala.

Το δυναμικό εδώ είναι εντυπωσιακό, ειδικά λαμβάνοντας υπόψη τον πολλαπλασιασμό των GPU που είναι σε θέση να εκτελούν κώδικα OpenCL - έναν αριθμό που θα πρέπει να συνεχίσει να αυξάνεται. Η AMD και η Nvidia διαθέτουν στόλους διακριτών καρτών, οι AMD και Intel έχουν πυρήνες γραφικών ενσωματωμένους σε CPU και μελλοντικά ARM SoCs μπορεί να υποστηρίξουν επίσης την τεχνολογία. Οι μελλοντικές εκδόσεις Java που ενσωματώνουν την τεχνολογία πρέπει να επιτρέπουν στους πελάτες να χρησιμοποιούν το υλικό τους για όσο το δυνατόν πιο αποτελεσματική χρήση. Οι διακομιστές που βασίζονται σε AMD APU και τα κινητά smartphone και tablet, θα επωφεληθούν περισσότερο από την επιτάχυνση της GPU. Η AMD και το Ίδρυμα HSA έχουν παρόμοιους στόχους και έχουν επέδειξε αυξημένη απόδοση αξιοποιώντας τη δύναμη της GPU για παράλληλες εργασίες. Το Project Sumatra διευκολύνει περαιτέρω τους προγραμματιστές και τους τελικούς χρήστες προγραμμάτων που είναι γραμμένα στην Java να πραγματοποιήσουν αυτά τα πιθανά κέρδη απόδοσης.

Ο αντιπρόεδρος της Oracle Development Software για την Java Platform Group, Georges Saab, δήλωσε ότι «Αναμένουμε ότι η δουλειά μας με τους AMD και άλλους συμμετέχοντες στο OpenJDK στο Project 'Sumatra» θα βοηθήσει τελικά να παρέχει στους προγραμματιστές Java τη δυνατότητα να αξιοποιήσουν γρήγορα την επιτάχυνση της GPU για καλύτερα. εκτέλεση.'

Από την πλευρά του κινητού, έχουμε επεξεργαστές tablet όπως το AMD Z-60 APU και τα επερχόμενα SoCs Valley View από την Intel που θα επωφεληθούν από την επιταχυνόμενη από GPU Java με την ικανότητα επεξεργασίας δεδομένων πιο γρήγορα και να επιστρέψουν σε κατάσταση αδράνειας χαμηλότερης ισχύος για εξοικονόμηση μπαταρίας. Και, φυσικά, η εμπειρία του χρήστη θα πρέπει να βελτιωθεί με την ταχύτερη εκτέλεση των εφαρμογών.

Πιθανότατα θα είναι τουλάχιστον ένας ακόμη χρόνος προτού επιταχυνθεί η επιτάχυνση της GPU στο επίσημο Java Runtime Environment, αλλά με το Project Sumatra είμαστε στο δρόμο μας για να επιταχύνουμε την Java!

Για να μείνετε ενημερωμένοι ή να ασχοληθείτε με, κάντε κλικ τον ιστότοπο του Project Sumatra ή εγγραφείτε στο λίστα αλληλογραφίας sumatra-dev.

Copyright © Ολα Τα Δικαιώματα Διατηρούνται | 2007es.com