Polls

Qué cambiará obama?
 
Inicio arrow Noticias arrow Ver Todas arrow Tecnologia arrow Ensamblador de ATI
Ensamblador de ATI PDF Print E-mail
Written by Javier Loureiro   
Tuesday, 12 August 2008

Una nueva vuelta de tuerca para los que no saben muy bien como programar shaders o sistemas de gpgpu: ATI acaba de publicar las especificaciones del ensamblador para sus tarjetas .

La cosa es la leche. Tienes 128 registros, e instrucciones asi sencillotas. Además, tiene nada menos que un formato de ejecutable, que envias ala tarjeta, y este lo ejecuta. Nada menos. Como siempre pensé, el futuro es que estos chips tengan algun tipo de OS que los gestione y se comunique con el OS principal.

No tiene un stack. No puedes hacer llamadas recursivas (aunque con 128 registros, puedes hacer un buen fake), pero para proesos paralelos, en plan desencriptar masivamente y cosas asi, no esta nada mal.

A ver cuando el gcc tiene esa arquitectura como salida, y un comando que envie el ejecutable a la tarjeta... y ya tenemos un buen framework para desarrollar.

 

 

Comentarios
AgregarnuevoBuscar
- David Miraut - Close to Metal     | 84.77.129.xxx | 2008-08-13 11:23:34
Hola,

El documento al que haces referencia lleva más de un año en circulación, puede que dos (la versión 1.0 se hizo pública antes de que CUDA viera la luz en la versión beta privada). Se trata de Close To Metal, la alternativa que dió ATI (ahora AMD) para poder hacer GPGPU en sus tarjetas.

Yo no lo he probado personalmente, prefiero la solución equivalente de nVIDIA (el código PTX) para hilar fino; y si es posible soluciones de alto nivel como CUDA (aunque ese alto nivel se cobre un precio importante en limitaciones respecto a lo que ofrece el HW). A pesar de la documentación, mis compañeros que lo probaron hace un año dicen que es bastante infernal, espero que haya cambiado y que AMD le haya dado un repaso al compilador y al proyecto "opensource".

CUDA es mucho más cómodo de programar, y los multiprocesadores tienen más de 8 mil registros en sus bancos (a compartir por las distintas hebras que se ejecuten ahí) sin tener en cuenta los registros de predicación.

La solución equivalente a CUDA con soporte para tarjetas de ATI sería probablemente PeakStream que está construido sobre CTM (http://www.codepixel.com/content/view/5019/1/), tras evolucionar de los conceptos que sentó Brook. Desafortunadamente las librerias matemáticas que tenía eran rápidas pero daban resultados erróneos, algo bastante decepcionante en un producto comercial.
La empresa pertenecía a un fondo de capital riesgo llamado Sequoia Capital, según comentásteis en Codepixel. Después la compró Google (http://www.laflecha.net/canales/empresas/google-compra-peakstream/), por 17 millones de dólares, pero no he visto en los foros que se hayan hecho mejoras en el producto.

Volviendo al tema de CTM y los ejecutables, el formato de fichero que se describe, probablemente sea parecido a lo que tenemos cuando se compila un programa en PTX para una plataforma determinada; pero en ningún caso ni las tarjetas de AMD-ATI ni las de nVIDIA pueden ejecutar programas como tales. Por ahora son bastante limitados en ese aspecto, como incidía Intel en el artículo del Larrabee; sólo un programa a la vez en todo el array de procesadores, ni siquiera a nivel de gestión de carga en los multiprocesadores se puede hacer gran cosa (y es bastante complicado meterle mano haciendo ingeniería inversa).

El driver es el encargado de mascar la información y pasarsela de forma que ejecuten el código en el verdadero "ensamblador" que no es ni CTM ni PTX (están ideados para abstraer futuros cambios en la arquitectura).

Yo por ahora me quedo con las soluciones de nVIDIA, aunque no sean portables a AMD.

Por favor, si alguien ha trabajado recientemente con CTM que nos cuente sus experiencias, que yo en lo de AMD hablo de oidas y puedo meter la pata.
ViaToR   | 83.45.117.xxx | 2008-08-13 20:58:02
Se puede programar en C usando el backend CTM de Brook http://sourceforge.net/projects/brook Además juraría que hay también un backend para LLVM hace ya tiempo, y de ahí el interés de Apple en implemetar OpenCL con LLVM...

Yo hace mucho también que no se nada del tema...
Escribir comentario
Nombre:
Email:
 
Website:
Título:
Código UBB:
[b] [i] [u] [url] [quote] [code] [img] 
 
Security Image
Por favor introduce el codigo anti-spam que puedes leer en la imagen.

Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved.



menéameDigg!Del.icio.us!Google!Technorati!Yahoo!
 
< Prev   Next >

Lista de Correo

visita la lista de correo de codepixel. Es una lista abierta, asi que podrás subscribirte y preguntar tus dudas de programación, compartir tus opiniones, aportar ideas, y formar parte de la comunidad codepixelera.