Historias
Slashboxes
Comentarios
 
Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • por faragon (17575) el Lunes, 02 Junio de 2008, 20:05h (#1049682)
    ( http://www.voluntariado.net/ | Última bitácora: Domingo, 10 Junio de 2012, 21:48h )
    Sí, pero no es el lenguaje C el que limita, es la arquitectura. Imagina que tengas 100 mini CPUs en cada GPU, con sus respectivos buses a las memorias locales de esas mini-CPUs, al resto de mini-CPUs, a la memoria compartida de la GPU, al bus de E/S para llegar a la RAM del sistema, etc... sale muy caro tener tanto bus, por eso prefieren poner más unidades funcionales / mini-CPUs, con menos flexibilidad. En realidad, ese problema está solucionado, pero todavía no a esa escala (por poner un ejemplo en otro ámbito, un Cell con 7 SPEs no está limitado por el bus circular interno, pero si tuviese 14 SPEs, el chip tendría que ocupar no el doble, sino bastante más, pues tiene penalización extra por la nueva topología -no crece de manera exponencial, por ser un bus circular y no interconectado, pero es notable-).
    [ Padre ]
    Puntos de inicio:    1  punto
    Modificador por Bonus-Karma   +1  

    Total marcador:   2  
  • por mastermemorex (34927) el Lunes, 02 Junio de 2008, 20:33h (#1049691)
    Que yo sepa refiriendose al problema de acceso a los datos en la memoria global la GPU necesita entre 200 y 400 ciclos de reloj.

    Pero esto ocurre tanto en la GPU como en la CPU, slo que la GPU va tan rápido que los tiempos de acceso se notan más y en vez de conseguir un speedup de x300 lo normal es conseguir solo un x30.

    Pero si te las arreglas para que durante ese tiempo de acceso a la memoria global, el procesador esté haciendo otras operaciones aritméticas ese lag se nota cada vez menos. Y si te las arreglas para acceder a datos que estén secuenciales, en vez de hacer hacer accesos discreciones, los tiempos de acceso de optimizan mucho. Pero esto también funciona con las CPUs.

    Por otra parte, si se hace uso de la memoria caché de la GPU (la que en el manual de CUDA llama shared) o se juega con texturas (la GPU tiene optimizados los accesos cuando trabaja con texturas) te aseguro que si se pueden conseguir esos x300 de aceleración.
    [ Padre ]