Project Sumatra forbedrer Java-ytelsen med akselerasjon av OpenCL-grafikkort

Project Sumatra Developing GPU Accelerated Java using OpenCL

Java er et programmeringsspråk som gjør det mulig for utviklere å skrive en gang og distribuere overalt - fra avanserte spilldisker til smarttelefoner. Dens OS-agnostiske og utbredte natur er et av de sterkeste salgsargumentene, men et område der det kan falle flatt er ytelse. Vanligvis vil Java-applikasjoner ikke utføre så vel som native applikasjoner skrevet for et bestemt operativsystem. Imidlertid takket være Project Sumatra kan ytelsesgapet snart bli mindre av et problem.

Det OpenJDK-støttede prosjektet jobber for tiden med å utnytte den parallelle prosessorkraften til integrerte og diskrete grafikkort for å øke hastigheten på Java-applikasjoner. GPU-akselerasjon er ikke et nytt konsept, men dette prosjektet er interessant på grunn av måten det fungerer på og forskningens fremtidige implikasjoner.



Project Sumatra ble først avslørt i august og bruker funksjonene og bibliotekene til Java 8’er Lambda-prosjekt samt Oracle's HotSpot for Java Virtual Machine. (Lambda er et sett med uttrykk for Java-programmeringsspråket som er ment å forbedre støtte for flere kjerner.)



For å dra nytte av GPU-akselerasjon, må programvareutviklere kommentere koden for å indikere hvilke lambda-uttrykk som passer til GPU-ene. Når du kjører et Java-program på et system med en OpenCL-kompatibel GPU installert, vil HotSpot JIT (just-in-time) kompilatoren oversette de merkede kodebitene til OpenCL for behandling på GPU i stedet for CPU. Dette er en interessant metode, da det vil kreve relativt enkle oppdateringer av applikasjoner for å dra nytte av GPU-maskinvareakselerasjon, og det vil være usynlig for sluttbrukeren. Gitt, ikke alle applikasjoner vil se enorme ytelsesøkninger - hvis de i det hele tatt kan parallelliseres - men mange vil kunne dra nytte av å utnytte GPU til en viss grad.

JDK8Utviklerne bak Sumatra-prosjektet fokuserer for tiden på å utvikle OpenCL-støtte med Java 8-teknologier, men de forventer at utviklingsforskningen vil påvirke GPU-maskinvareakselerasjon med andre JVM-hostede språk som JRuby og Scala.



Potensialet her er imponerende, spesielt med tanke på spredningen av GPUer som kan kjøre OpenCL-kode - et tall som bør fortsette å vokse. AMD og Nvidia har flåter med diskrete kort, AMD og Intel har grafikkjerner integrert i CPUer, og fremtidige ARM SoC-er kan også støtte teknologien. Fremtidige Java-versjoner som integrerer teknologien, bør tillate kundene å bruke maskinvaren sin så effektivt som mulig. AMD APU-baserte servere, og mobile smarttelefoner og nettbrett, vil ha mest utbytte av GPU-akselerasjon. AMD og HSA Foundation har lignende mål, og har demonstrerte økt ytelse ved å utnytte kraften til GPU for parallelle oppgaver. Project Sumatra gjør det videre enklere for utviklere og sluttbrukere av programmer skrevet i Java å realisere de potensielle ytelsesgevinstene.

Oracle Vice President for Software Development for Java Platform Group, Georges Saab, har uttalt at “Vi forventer at vårt arbeid med AMD og andre OpenJDK-deltakere i Project 'Sumatra' til slutt vil bidra til å gi Java-utviklere muligheten til å raskt utnytte GPU-akselerasjon for bedre opptreden.'

På den mobile siden har vi nettbrettprosessorer som AMDs Z-60 APU og kommende Valley View SoC-er fra Intel som vil ha nytte av GPU-akselerert Java ved å kunne behandle data raskere og gå tilbake til tomgangstilstand med lavere effekt for å spare batteri. Og selvfølgelig bør brukeropplevelsen forbedres ved at applikasjoner kjører raskere.



Det vil trolig være minst et år til GPU-akselerasjon blir bakt inn i det offisielle Java Runtime-miljøet, men med Project Sumatra er vi godt på vei til å øke hastigheten på Java!

For å holde deg oppdatert eller bli involvert med, slå opp Project Sumatra-nettstedet eller bli med i sumatra-dev-postliste .

Copyright © Alle Rettigheter Reservert | 2007es.com