Project Sumatra mejora el rendimiento de Java con la aceleración de la tarjeta gráfica OpenCL

Proyecto Sumatra Desarrollo de Java acelerado por GPU utilizando OpenCL

Java es un lenguaje de programación que permite a los desarrolladores escribir una vez e implementar en todas partes, desde computadoras de escritorio para juegos de alta gama hasta teléfonos inteligentes. Su naturaleza generalizada y independiente del sistema operativo es uno de sus puntos de venta más fuertes, pero un área en la que puede fallar es el rendimiento. Generalmente, las aplicaciones Java no funcionan tan bien como las aplicaciones nativas escritas para un sistema operativo específico. Sin embargo, gracias al Proyecto Sumatra, esa brecha de desempeño pronto puede convertirse en un problema menor.

El proyecto respaldado por OpenJDK está trabajando actualmente para aprovechar el poder de procesamiento paralelo de las tarjetas gráficas integradas y discretas para acelerar las aplicaciones Java. La aceleración de GPU no es un concepto nuevo, pero este proyecto es interesante por la forma en que funciona y las implicaciones futuras de la investigación.

Revelado por primera vez en agosto, Project Sumatra utiliza las funciones y bibliotecas de Java 8 Proyecto Lambda así como el HotSpot de Oracle para la máquina virtual Java. (Lambda es un conjunto de expresiones para el lenguaje de programación Java que tiene como objetivo mejorar la compatibilidad con varios núcleos).



Para aprovechar la aceleración de la GPU, los desarrolladores de software deberán anotar su código para indicar qué expresiones lambda son adecuadas para la naturaleza paralela de las GPU. Luego, cuando ejecuta una aplicación Java en un sistema con una GPU compatible con OpenCL instalada, el compilador HotSpot JIT (just-in-time) traducirá los bits de código anotados a OpenCL para procesarlos en la GPU en lugar de en la CPU. Este es un método interesante, ya que requerirá actualizaciones relativamente simples de las aplicaciones para aprovechar la aceleración del hardware de la GPU y será invisible para el usuario final. Por supuesto, no todas las aplicaciones experimentarán aumentos masivos de rendimiento, si es que se pueden paralelizar en absoluto, pero muchas podrán beneficiarse del aprovechamiento de la GPU hasta cierto punto.

JDK8Los desarrolladores detrás del proyecto Sumatra se están enfocando actualmente en desarrollar soporte OpenCL con tecnologías Java 8, pero esperan que la investigación de desarrollo influya en la aceleración del hardware de GPU con otros lenguajes alojados en JVM como JRuby y Scala.

El potencial aquí es impresionante, especialmente considerando la proliferación de GPU capaces de ejecutar código OpenCL, un número que debería seguir creciendo. AMD y Nvidia tienen flotas de tarjetas discretas, AMD e Intel tienen núcleos gráficos integrados en las CPU, y los futuros SoC ARM también pueden admitir la tecnología. Las futuras versiones de Java que integran la tecnología deberían permitir a los clientes utilizar su hardware de la manera más eficiente posible. Los servidores basados ​​en APU de AMD y los teléfonos inteligentes y tabletas móviles serán los que más se beneficiarán de la aceleración de la GPU. AMD y la Fundación HSA tienen objetivos similares y han demostró un mayor rendimiento aprovechando la potencia de la GPU para tareas paralelas. Project Sumatra facilita aún más a los desarrolladores y usuarios finales de programas escritos en Java la realización de esas posibles mejoras de rendimiento.

El vicepresidente de desarrollo de software de Oracle para Java Platform Group, Georges Saab, ha declarado que “esperamos que nuestro trabajo con AMD y otros participantes de OpenJDK en el proyecto 'Sumatra' ayude a proporcionar a los desarrolladores de Java la capacidad de aprovechar rápidamente la aceleración de GPU para mejorar actuación.'

En el lado móvil, tenemos procesadores de tabletas como la APU Z-60 de AMD y los próximos SoC Valley View de Intel que se beneficiarían de Java acelerado por GPU al poder procesar datos más rápido y regresar a un estado inactivo de menor consumo de energía para ahorrar batería. Y, por supuesto, la experiencia del usuario debería mejorar al hacer que las aplicaciones se ejecuten más rápido.

Es probable que pase al menos otro año antes de que la aceleración de la GPU se incorpore al entorno de ejecución oficial de Java, pero con el Proyecto Sumatra estamos en camino de acelerar Java.

Para mantenerse actualizado o participar, presione el sitio web del Proyecto Sumatra o únete al lista de correo sumatra-dev.

Copyright © Todos Los Derechos Reservados | 2007es.com