La TV digital en la Argentina tuvo un gran crecimiento. Y una de las claves fue NextStream, un framework o entorno de desarrollo creado 100% en la Argentina que permite utilizar la capacidad de procesamiento de una unidad de procesador gráfico (GPU) para lograr desempeños superiores a equipos dedicados para la codificación de video HD que son muy costosos. Alejo Grau, gerente de Desarrollo y cofundador de Dixar, habló en exclusiva con RedUSERS para explicarnos cómo funciona.
“Históricamente trabajamos con programación secuencial, es decir, un proceso se ejecuta luego de que el anterior termina de hacerlo, porque había un sólo procesador. A partir de 2005, la cosa cambia porque empiezan a haber micros de varios cores y, además, se agregan los procesadores de las GPU, que se pueden usar como coprocesadores y hacer programación de propósito general“, indica el ejecutivo.
Alejo aporta un ejemplo sobre una placa NVIDIA Tesla, que tiene 1024 cores. “El programador tiene que desarrollar en programación paralela, que es otra lógica, otro paradigma. Ahí entra NextStream, que es una librería que permite hacer programación paralela en ‘Heterogeneous Computing’, es decir, para cualquier procesador. Por ejemplo, se puede escribir un código estándar en cualquiera de los tres lenguajes para que corra en cualquier plataforma“, explica.
NextStream se compone de dos partes: un front-end y un back-end. El primero permite a los desarrolladores programar en JAVA, C++ o .NET. Y el segundo sirve para que el desarrollo se pueda compilar en OpenCL (para AMD/ATI, Intel y NVIDIA) o CUDA (NVIDIA). Y además de una mejora en el rendimiento, las empresas que lo utilicen podrán ahorrar costos en recursos humanos, pues no necesitarán expertos en OpenCL, sino programadores que manejen alguno de los tres lenguajes de alto nivel compatibles.
“No hacemos programación gráfica, sino programación clásica convertida en programación paralela, pues tratamos al video como una matriz de datos. No hablamos en términos de texturas, efectos, sino que usamos sentencias For, While, etcétera”, aporta Alejo. “La codificación de video en el códec H.264 no se puede hacer en tiempo real con una computadora estándar, pero se puede hacer con una PC con placa GPU y NextStream, y obtener los mismos resultados que con un equipo dedicado comprado en Japón que cuesta unos 30 mil dólares”, añade.
El principal beneficiado con esta tecnología es la TV digital, pues usa mucha información por sus cuadros de amplias dimensiones y alta resolución que se refrescan constantemente. “La compresión extra sobre el H.264 que logró Mario Mastriani y su equipo requiere gran poder de cómputo en tiempo real, pues hay un límite de 30 milisegundos para que no haya delay”, se explaya Alejo.
Pero también se está utilizando NextStream para procesar señales de los radares por medio de una extensión. Con el uso de este framework y una computadora con una GPU NVIDIA Tesla se triplicó la performance con respecto a un hardware específico, reduciendo tiempo de cálculo de 30 milisegundos a 9,2 milisegundos. Y también hubo un beneficio económico: la solución cuesta un 10 por ciento del precio del hardware dedicado.
NextStream en acción
A continuación, un benchmark en video que muestra la performance obtenida con NextStream usando como testeo el fractal Julia, considerado un estándar dentro de la industria.
Deberian hacer un informe bien completito sobre nextream.
Hablemos en FLOPS. Toscuán?
Y cuanto más tienen previsto a corto plazo? (2011-12)
Felicitaciones^64 en paralelo!
Tal vez no queda del todo claro en la nota, pero el programa de demostración que se ve en el video no está programado ni en CUDA ni en OpenCL, está programado en C# utizando las instrucciones de alto nivel de la plataforma NextStream 2.0. El propósito de este middleware es justamente evitarle al programador la complejidad de APIs como CUDA u OpenCL, permitiendole utilizar todo el potencial del hardware multicore y de múltiples GPUs escribiendo pocas líneas de código en lenguajes como Java, C#, visualBasic etc. NextStream internamente se ocupa de convertir ese código de alto nivel en instrucciones cuda u opencl.
Yo trabajo en infoarquitectura 3D y los tiempos de renderizado de un video con calidad para TV son altos y tengo un Core i5 2500; Algo así como 3 minutos por frame y son 25 frames/segundo para armar un sólo segundo de video…
Creo que si la productividad de este soft lo hace renderizar con mi pobre NVidia 9500gt 512MB DDR3 a razón de 1/5 del tiempo real, entonces estamos hablando de una verdadera maravilla y adiós a las granjas de render también.
Eso es una placa para jugar, es MUY distinto que una placa para laburar como la Tesla o la Quadro.
Asi que para vos soy un gil? Yo me pongo contento cuando a cualquier argentino lo va bien (seleccion de futbol o cientificos)y me pongo mal cuando las cosas no salen. Una cosa no invalida la otra. Si a vos el futbol no te gusta, lo lamento viejo pero no trates de giles a los que si. Claro que hay cosas mas importantes en la vida que todo esto, porque Pase lo que pase a nivel futbol o tecnologico al otro dia me tengo que levantar e ir a trabajar. Trata de respetar los gustos de los demas.
lo hieron con cuda u opencl? si lo hicieron en cuda, que se vayan al carajo..
Las Tesla en su tiempo eran GPUs de nVidia pensadas solo para calculo (cientifico)de punto flotante asi que no creo que sean las que vos decis a menos que ahora a las Tesla se las venda al publico, las comunes y corrientes que cualquier user tiene son las Geforce
Unos grosos! Esto es para los giles que se ponen mal cuando pierde la seleccion y se creen que tenemos que estar orgullosos de nuestro pais si ganamos un partido de futbol. Nos tenemos que poner orgullosos por gente como esta!!! Felicitaciones!
No conozco los precios de IBM pero no suele ser hardware económico. Tal vez en ese caso usaron procesadores IBM CELL, que aparentemente se estarían discontinuando. En el caso de las GPUs estándar (NVIDIA y AMD/ATI) NextStream funciona con las placas más económicas, desde u$s 200. Los precios de las GPUs NVIDIA Fermi, las más caras actualmente, van desde u$s 2,499 a u$s 3,999.
QUe grande estos tipos! supieron adaptarse con lo que tenían y programar de manera paralela. El resultado es éste. Me saco el sombrero
En una GTX 590 debe codificar video que todavia no salio!!
Unos Grosos
me sorprende lo que veo en el video los imprecione es mas que obio los que hace en ves de interpretar usa las istruciones directas del gpu (la cuda) ultimamente cualquier encoder pedorro las soporta ni que las hubieran desarrollados o la gpu eso seria groso realmente no me gusta que vendan espejitos de colores a los indios sin explicarles lo que realmente es
Es cierto Seba, las Tesla son las placas industriales de NVIDIA (las Quadro son para gráfica y las GForge para juegos), NextStream está diseñado para funcionar con cualquier GPU que acepte CUDA u OpenCL; en el caso de NVIDIA soporta desde el modelo GF 8000 y en AMD desde la serie 4000. También soporta las versiones mas caras como Tesla y Quadro obviamente.
Es correcto cesaaaar, .NET es un framework. Lo que quiere decir la nota es que el producto NextStream se puede utilizar con los lenguajes del framework .NET (C#, VBasic etc.)
Conozco ambos sistemas, no es tan asi lo de los u$s30.000, porque estos equipos que estan corriendo ene ste momento en la prov de tucumán, estan sobre servidores IBM de un costo cercano total a los u$s30.000 y una vida util mucho menor a los equipos dedicados de u$s 30.000, me alegro mucho de que se haya echo esto en Argentina, pero hay que poner ambas cosas en la balanza
no me convence ese “testeo el fractal Julia”, recuerdo una prueba parecida, en la cual… cambiando el angulo de la cámara en el test (supuestamente idéntico) se obtienen resultados disparejos 🙂
Impresionante! muy bueno!
Corríjanme si me equivoco, pero las placas Tesla no son las comunes y corrientes (y económicas en algunos casos) placas de video que cualquier user tiene… o no?
Igualmente, intuyo que una placa de video con núcleo Tesla (o su equivalente de AMD) sale mucho más barata que un equipo dedicado.
Saludos.
Ninguna gracia le debe casusar a los fabricantes de hardware dedicado! Grosos!
Hola, .net no es un lenguaje, es un framework.
Son unos grosos!