Halide: El nuevo lenguaje de programación paralela de gran rendimiento
La industria del software avanza lentamente hacia el aprovechamiento de los múltiples núcleos de los microprocesadores y de las múltiples unidades de cálculo de los GPUs con cada vez más modernos entornos de programación que hagan ello posible. Una de las plataformas que está ganando bastante popularidad es OpenCL, la cual aunque se desarrolló para explotar el paralelismo masivo de los GPUs, puede sacarle provecho también a los múltiples núcleos de los CPUs y sus modernas unidades vectoriales como AVX y FMA4/3.
Un grupo de investigadores del Artificial Intelligence Lab and Computer Science del Massachusetts Institute of Technology (MIT CSAIL) han desarrollado un nuevo lenguaje de programación al que denominan Halide, el cual está orientado al procesamiento de imágenes en entornos multi-núcleo, y a la vez es facilita las tareas de escribir/probar el código y es capaz de optimizarlo automáticamente.
Según sus pruebas migrar el código de una aplicación al lenguaje Halide resulta en código un 30% más largo que el de los lenguajes tradicionales, pero compensa ello ofreciendo un rendimiento 2, 3, 6 y en algunos casos hasta 70 veces más veloz. Simplemente impresionante.
El secreto del nuevo lenguaje reside en su diseño modular, el cual consta con dos secciones: una para los algoritmos de propósito general y otra para el planificador de procesos (scheduler), este último con comandos que permiten modificarlo sobre la marcha y sin que se requiera modificar el código del programa; permitiendo experimentar múltiples y nuevas ideas sin la necesidad de verificar ni reescribir el programa.
Gracias a la construcción modular de Halide, es posible migrar las aplicaciones desarrolladas con él a nuevas plataformas simplemente cambiando el módulo scheduler, convirtiendo a Halide en un entorno multi-plataforma.
Link: NEW PROGRAMMING LANGUAGE FOR MULTI-CORE PLATFORMS WILL ACCELERATE RENDERING (Xtreview)
También pueden comentar en nuestro foro.
Temash: El nuevo SoC de bajo consumo de AMD
Conoce al nuevo GPU NVIDIA GeForce GTX 780 “GK110”
Intel fabricará microprocesadores a medida para...
NVIDIA presenta oficialmente su nuevo GPU GeFor...
Intel Core i7-4770K “Haswell-DT” versión comerc...
Hacer una réplica por supercomputador del cereb...
Smart Dust: La computadora más pequeña que un g...
AMD anuncia su promoción Never Settle Reladed L...
41 Comentarios
Halide: El nuevo lenguaje de programación paralela de gran rendimiento
Este es el Lenguaje de Programación del Diablo, salve Oh! rey de las tinieblas.
Responder\m/ SATÁNICUS \m/
skinet O_O...
@Kyo,
Please, cada noticia en su hilo, no es necesario estar entre posts para pelearse por algo que no tiene importancia. si quieren tirarse mierd@, haganlo, pero no molesten a los demás.
Por cierto, si querías demostrár tu máquina, te faltó mucha info; como decir cual t.v., ram, t.m... si ya estamos comparando máquinas, no estaría mal poner todo, ¿no?
Por cierto, ¿4.5 en puntuación de win?, creo que algo anda mal...
WTF?
@KyokusanaGAY esta vez si que haz hecho el ridículo mezclando peras con manzanas... la verdad pareciera que hubieras nacido en el 97, y como todo pendejo de 15 años hablando weas que no sabe :)
Para kyokusanagi, algo mediocre tu resultado man...xD
http://img20.imageshack.us/img20/5462/sinttulodz.png
ciertamente creo q Kyo tiene blocs de notas con tooodos los post que ah hecho cosa de copiar pegar lo que escribe postea una y otra vez ... que podriamos hablar de como un arbol nace ... sergio postea " ooo es filete como es la vida" y Kyo asdasasda pauperrimo asdasdas AMDFAIL asdasdasad "BASURA" asdasdas que mi pc te pega mil patas asdasdas que tienes un amd64 adasdasd ... yo caxo q en serio como dicen hasta un niño de 6 años entiende que es repetitivo. latero y solo gasta "tiempo" porq lo llenaran de negativos ... chistosamente ... aun asi leo sus comentarios aunq a medias para reirme de las estupideces que escribe una y otra vez XD !! ....
Al tema:
lo encuentro filete !!! el lenguaje (segun lo q lei xD ) nuevas tecnologias en cuanto a Software ... 1313 !!..
El programador debe adaptarse a las herramientas, no las herramientas al programador. Esa es la gracia de darle "vida" a los softwares.
Pos no entiendo?, jeje los lenguajes de programación comunes no nos ofrecen muchas habilidades para aprovechar los núcleos de un CPU. Ahora es decir si tengo una pc con un CPU de 8 núcleos mi compilado con HALIDE sera mejor que el que puedo hacer con C# o phyton. Pero mi compilado se adaptara a un CPU de 2 o 4 o 6, etc núcleos?. Suena muy interesante este nuevo lenguaje investigare sobre el tema.
ResponderSaludos
amoxto
pero al compilar con lo de intel no estas haciendo que amd tenga desventaja en las aplicaciones??
Nada que ver que tenga una desventaja con AMD. Peor es no tener nisiquiera una ventaja sobre el procesador por hacerlo en c++ puro. Si queres para amd, buscate alguna libreria (no se si la tiene), pero no vengan con la pavada que disminuye el rendimiento cuando realmente lo mejora muchisimo sea el procesador que sea. No hablen sin saber.
El TBB de intel lo usé hace pila para un trabajo de la uni y andaba volando mejor que las porquerias de librerias de parallel-for de C# y otras de java. Prácticamente se doblaba el rendimiento del programa cuando la tarea era paralelizable (yo usaba un turion x2 RM72 en ese tiempo) asi que no vale ni la pena tirar disparates. Una librería que sólo permite sincronizar hilos como te va a joder el rendimiento del CPU? Lo único que hace es "spawnear" y "joinear" hilos, lo que haga cada hilo no tiene nada que ver con el TBB, no sean tan peleadores!!!
Es muy posible que varios juegos y programas estén usando esta libreria (por tirar un ejemplo real, acá dejo un bench http://www.anandtech.com/show/5091/intel-core-i7-3960x-sandy-bridge-e-review-keeping-the-high-end-alive/5 el PAR2 fue paralelizado usando TBB, y se aprecia que el FX8150 rinde LO MISMO que el i7-2600K).
por eso lo pregunte LM por que no tengo ni puta idea
woooooooooooo 2 o 3 veces mas rapido y mejor rendimiento?? todos a el
ResponderYo no entendí nada, porque no sé nada de programación, pero si puede ser más rápido aunque el programa final pese un poco más, (supongo que ese sería el resultado de un código más largo) espero que pronto se adopte en masa y veamos que puede hacer este nuevo sistema.
ResponderOFFTOPIC: kyo yo tengo 3.6 en la experiencia de windows con un AMD athlon X2 +5000 y 4gb de DDR2 que dices a eso jajjaajjajaaj 4 y hasta 4 generaciones antes que tu querido pc y con montar una HD7850 te vuelo la raja a ti a tu pc jajajaja.
ResponderONTOPIC: ojala se popularice este lenguaje o libreria lo que sea y que a la final se puedan aprovechar de una vez por todas los 4, 6 y 8 nucleos de los procesadores actuales y las multiples unidades de procesamiento de las VGA
"jajjaajjajaaj 4 y hasta 4 generaciones antes que tu querido pc"
Fe de errata: quise decir 3 y hasta 4 generaciones.
@biohazard64 y @David Sarmiento Portocarrero, offtopic:
¿No estaría chido que se hiciera un post en el blog, donde cada quien expusiera sus experiencias de juego?
Digamos, kyo dice que tiene valor de 4.5 y le va bien (parece...), otros dicen que sería mejor con X tarjeta, o Y proce, pero, pk no mejor nos juntamos y comparamos, ya veremos si tener lo top sirve, o no =D
ej. tengo un phenom II 720 BE x3, 8g ddr3 @ 1333 y nvidia gtx 560. y juego todo lo que quiero a 1080p, con filtros y todo. puntuación win 5.7 (por dd, quitandolo, sería 6.7).
@Kyo,
Ya deja esa babosada de estár insultando a lo pendejo, ¿o será que no tienes mayor vocabulario que "fail", "amdfail", "pauperrimo", "intel", "nvidia", "AMDfanboyos" y demás pendejadas?
ya nadie siquiera te tiene en cuenta; caes en lo más bajo del troleo, que hasta das asco.
¡ya agarrate los webos y ten una vida y deja de estar chingando a todos los chwceros e internautas en general!
Estaría genial que se unifiquen los sistemas para que se utilize todos los procesadores / hilos presentes en un sistema(cpu, gpu), de esta manera se tendría mayor rendimiento en home-pc. como programador de java, unos cuantos hilos de ejecución paralela para atender clientes web te ayudaría... y demaciado =D
ResponderYo obtengo con un Athlon II 630 con un M4A785TD-V EVO 6GB DDR3 1333Mhz Kingston estandar 4.8 puntos y si le pongo una ATI HD5670 1GDDR5 5.7 puntos. Me parece que Kusanagi se conforma con su pobre plataforma cara de Intel.... habrá que llamar a Iori Yagami para que le de una lección de humildad :)
Respondery ala vez es facilita las tareas de escribir ?
Responderfile:///C:/Users/enrique/Pictures/LifeCam%20Files/2012-08-13%2019-30-31.810.jpg
Respondermira kyo ese es mi puntuaje en windoes la verdad cuate desepcionas y mucho siempre hablando de intel y nvidia de sus mejores arquitecturas y resulta que ni tienes un tope de gama y ademas tu score es muy bajo para un entusiasta komo dices tu que eres que barbaridad tu solo te sacastes los trapitos al sol de aqui en adelante ya ni me parare a leer tus comentarios men la neta hay te dejo la foto de mi puntuaje men no mas pegala en el buscador y te sale por toda esa basura que hoy de ti me cambie a intel para ver su rendimiento y la verdad me quede de a 10 pero es caro pero aun asi con mi fx 8150 le pasaba el trapo a tu i5 sin k que barbaro!
Responderhttp://img9.imageshack.us/img9/4076/pckyokusanagi.jpg la super pc de kyo en uno 2 3 a replicar el hardcore gaming!
Responderno te sientas el grande kyo yo tengo el i7 3770k a 4.2 ghz en una asrock fatality z77 extreme una targeta de amd 7970 overclock edition y un sd ocz agility 3 eso le da una patada en super pi a tu famoso sistema lo que si comprare la proxima temporada sera kleper 2,0 a ver si te doy la razon en esa kyo ya que la verdad intel si es mejor muchor mejor en ipc que amd amd mas bien es puras altas frecuencias
Responderel KYO weon ñoño sin vida! de seguro que es un pendejo guaton virgen que no conoce ni la luz del dia y con suerte a visto un par bustos por internet!! xD
ResponderNo hablan muy claro. Es un lenguaje destinado al procesamiento de imagenes. No a la computación general. Es algo especifico a las imagenes. Modifiquen el artículo porque desvirtuan a los lectores, si no busquen en google.
Responderhttps://github.com/halide/Halide
http://www.h-online.com/open/news/item/Halide-a-new-programming-language-for-image-processing-1663900.html
http://people.csail.mit.edu/jrk/halide12/
"a language for image processing and computational photography"
Lo mejor hoy por hoy es saber dominar librerias para laburar con multinucleo, las optimizaciones y diversas opciones de los compiladores, OpenCL si se requiere de tareas multinucleos (como los renders), C y C++. Hasta ahora, lo mas rapido. Y bueno, si queres complicarte mas y agilizar al maximo las cosas, tenes toda una vida para Assembly, pero no creo que sea muy convincente la ultima idea...
Buena nota e ilustrativa. gracias
No hablan muy claro. Es un lenguaje destinado al procesamiento de imagenes. No a la computación general. Es algo especifico a las imagenes. Modifiquen el artículo porque desvirtuan a los lectores, si no busquen en google.
Respondergithub.com/halide/Halide
h-online.com/open/news/item/Halide-a-new-programming-language-for-image-processing-1663900.html
people.csail.mit.edu/jrk/halide12/
"a language for image processing and computational photography"
Lo mejor hoy por hoy es saber dominar librerias para laburar con multinucleo, las optimizaciones y diversas opciones de los compiladores, OpenCL si se requiere de tareas multinucleos (como los renders), C y C++. Hasta ahora, lo mas rapido. Y bueno, si queres complicarte mas y agilizar al maximo las cosas, tenes toda una vida para Assembly, pero no creo que sea muy convincente la ultima idea...
(perdon si sale doble comentario, anda muy mal la opcion de comentar)
@Kyo mira mi Phenom II x3 con 4 GB de ram como se come a tu Intel con 8 GB de ram jajajaajaaja, pelotudo!
Responderhttp://img12.imageshack.us/img12/8308/experienciamd.png
dejá el porno y la paja Kyo!!
ResponderDeja tu Comentario