Preámbulo
Debido a la naturaleza súper secreta de la GPU comercial, no encontré nada interesante todavía.
Lo mejor que puedo hacer es preguntarle eso a alguien que tenga más experiencia que yo (todos). Es una gran pregunta, espero que se ajuste a las reglas.
También porque la GPU no está directamente relacionada con esta red, pero hay muchas otras, así que lo intenté.
Debido a que cita procesamiento paralelo y porque las GPU más antiguas (de la consola retro y otras) utilizan arquitecturas muy diferentes de las modernas, esta pregunta es sobre las GPU recientes (las que soportan GPGPU) . Para semplificar la pregunta, piense en NVidia y AMD.
Pregunta
Mi idea de GPU es bastante confusa: sé que es una pieza particular de hardware, cuyos componentes principales son toneladas de núcleos que funcionan en paralelo, que se utilizan para elaborar imágenes o señales en general, y una cantidad bastante alta de RAM utilizada para almacenar búferes. hacer la elaboración más rápida
Demasiada "Wikipedia" para mí
Estas son algunas de mis tesis e información que obtuve (la sección de AYUDA dice compartir su investigación), no dude en comentarlas:
Punto 1: ¿Qué sucede cuando los datos se envían desde la CPU al entrar dentro de la GPU?
- No puede escribir programas de GPU en su propio ensamblaje : un programa escrito en, por ejemplo, Cuda es PTX , un lenguaje intermedio que es elaborado (¿compilado? ¿interpretado?) internamente por la GPU . Si hay un lenguaje interno, una especie de ensamblaje (¿tal vez un microcódigo como la arquitectura?), Es súper secreto
- No hay controladores oficiales de código abierto. ¿Quieres encontrar algo que invierta los controladores? Buena suerte . Pero hay una buena noticia: alguna GPU tiene un documento bastante bueno .
Punto 2: Canalización y shaders
¿Qué es un shader? Difícil de contestar. Pero alguien lo intentó . Sin embargo, el shader debe ser una pieza de software elaborada por la GPU para representar todas las bellas escenas en 3D. Hay más tipos de sombreadores, cada uno de ellos se elabora en un paso particular de la tubería de GPU.
Pero, ¿qué es esa canalización ? Parece ser una secuencia de pasos que va desde la entrada de entrada desde la CPU hasta el procesamiento en la salida. ¿DirectX y OpenGl deberían dar una gran importancia a esa implementación, pero cada modelo / familia tiene una implementación diferente? ¿Es eso un súper secreto o se comparte libremente con nosotros, la comunidad pobre? (¿O tal vez con NDA?)
Punto 3: Metaphore
Quiero evitar algo como "Esta pregunta es demasiado larga. Te odiamos. Pregunta cerrada"
Probablemente tengas razón, pero todavía intento guardar mi pregunta.
La forma más rápida de responder a esta pregunta es hacer un ejemplo: ¿puede la GPU parecerse a otra pieza de hardware? Tal vez uno no es conceptualmente sofisticado.
En mi opinión, se puede ver parcialmente como un FPGA debido a la ejecución paralela. Muchos núcleos = muchos IP = FPGA? Tal vez. Pero, obviamente, se trata de un hardware completamente diferente, mucho más flexible y adecuado para diferentes escenarios.
¿Puedes hacer otros ejemplos? Cualquier ayuda es realmente apreciada desde el fondo de mi hogar.
Si lo desea, también puede publicar cualquier lectura de libros de recursos que crea que esté relacionada con el tema. Me gusta mucho profundizar