Duda con placas de video.

Tengo una duda. La mayoría de los microprocesadores además de los núcleos ALU y la sección de control tienen integrados gpus. Pero además se integran placas de videos en los sockets PCI, PCI-express. ¿si ya tiene el micro integradas gpus para que anexarle otra?
Supongo que es por la memoria que traen, es decir, como procesador de señales de video funciona la gpu del micro ¿o las 2 (la del nucleo y la del la placa de video)? Y por su memoria me refiero es que la pantalla estaría mapeada en la memoria de la placa de video y no en la ram. A su vez los datos sobre el video.

Saludos
 
- Para tener más rendimiento, normalmente las integradas suelen ser más básicas y usan parte de la RAM 'normal' .
Hace poco leí que querían emplear la GPU no usada como coprocesador para ciertas operaciones.
 
Lo último si lo conozco porque en general los micros de las placa de video son DSP, es decir, dedicados con un set de instrucciones especializados para el tratamiento de señales digitales de video y trabajan con datos en coma flotante mejor que los micros que tienen que ser porsupuesto genéricos en cuanto al trabajo de los señales digitales.

Pero mi duda vienen porque no sé que tan básicas son las integradas. Si vemos el diagrama de bloque de un micro intel (como el que adjunto) se observa una gran sección dedicada a la gpu.

Además al tener 2 gpu, una integrada y las otras no ocuparía más tiempo, es decir, el sistema operativo tendría que ocupar procesamiento para darle procesos a cada una y que procesos le "toca a cada una". De la misma forma de que el centro de control tiene que dividir procesos para cada núcleo y es por esto que no se le puede meter 200 nucleos porque sería un kilombo. Esa es mi duda.
 

Adjuntos

  • Haswell-portada-660x350.jpg
    Haswell-portada-660x350.jpg
    103.1 KB · Visitas: 10
No es asi, y eso se ve por ejemplo en varias cosas, por ejemplo el coprosesador matemático que traen los micros no es otra cosa que una cpu restringida solo a eso, y traabajan en paralelo y no ralentiza por el cotrario da más velocidad al conjunto.
Las placas todo on board tienen menor rendimiento que una que no, ya que el micro tiene que realizar todo, en cambio por ejemplo el tema de la placa de video que consume grandes recursos, se encarga su propia cpu especializada y optimizada para ese uso con memorias para tal fin de esa manera mientras uno realiza una cosa el otro realiza la otra, y es algo que se cae de maduro, es trabajar organizadamente, uno solo para hacer varias cosas tarda más tiempo que si varios trabajan en paralelo, tal vez a ti te cueste entenderlo, pero es asi y no es una cosa nueva, por ejemplo las estaciones silicon grafix se podian poner en paralelo, con una que distribuia y lograban prestaciones notables muy superiores a cualquier sistema x86.....
 
Mira, una analogía fácil, tu sabes dibujar? si sabes un poco ¿Cómo sería si te comparas con un dibujante profesional?, si le pidieras a él que dibujara una escena y tú la misma ¿Quién acabaría primero? y ¿si además tuvieras que planear la siguiente escena que se debe dibujar? por supuesto que te vendría bien una mano extra con ello ¿verdad?.

La GPU integrada no tiene tanto poder por que está pensada para una tarea básica, decodificar video, ejecutar efectos 3D ocasionales y 2D, las dedicadas tienen más poder para realizar cálculos 3D complejos, además poseen su propia interfaz de datos a la memoria, la CPU solo tiene 64bits para ello mientras que las GPU superan eso con interfaces de 256bits o más.

Mi notebook tiene 2 graficas como dices, la integrada Intel HD 3000 y la dedicada NVIDIA NVS 4200M, una está enfocada en bajo consumo, comparte la memoria de la RAM del sistema, y no puede hacer mucho pero basta para navegar en internet, ver películas y ejecutar algunos juegos simples, pero cuando necesito gráficos intensivos se retrasa con los cálculos, es ahí cuando entra en juego la dedicada.

Ciertamente las dos trabajan, pero solo una a la ves, cuando la otra necesita entrar en acción se conmutan y los datos pasan a la dedicada donde se procesan y luego son devueltos para visualizarse (excepto donde la dedicada controla la salida directamente), al final la IGP solo actúa como el buffer de visualización mientras los cálculos la realiza la GPU.

Si dices que si hay perdida de rendimiento por la gestión, si lo hay, pero el rendimiento de la GPU es superior al de la IGP, por lo que esa perdida de rendimiento resulta ser insignificante comparada a lo que esta tardaría en los cálculos, siguiendo la analogía de arriba, te tardarías en darle la hoja al dibujante, pero él acabaría el dibujo antes que tú al devolvértelo.

¿Por qué la IGP no puede ser más potente y eliminamos la necesidad de una GPU extra? el motivo es simple, el espacio, reducirlo al mismo chip significa limitar el número de conexiones eléctricas con el PCB, lo que limitará el ancho de banda de la memoria, eso significa un mayor retraso si consideramos que en realidad no es uno ni dos, sino decenas de procesadores los que tiene una GPU y todos queriendo acceder a la memoria tan pronto como les sea posible. Además el computo intensivo de estos incrementa el calor y sumándolos al del CPU será más difícil de gestionar que teniendo un segundo chip produciéndolo y poder enviarlo a una via alterna.
 
Excelente respuesta Nuyel pero tengo unas dudas.

Mi notebook tiene 2 graficas como dices, la integrada Intel HD 3000 y la dedicada NVIDIA NVS 4200M, una está enfocada en bajo consumo, comparte la memoria de la RAM del sistema, y no puede hacer mucho pero basta para navegar en internet, ver películas y ejecutar algunos juegos simples, pero cuando necesito gráficos intensivos se retrasa con los cálculos, es ahí cuando entra en juego la dedicada.
Por ende la unidad de control del micro además de encargarse de aumentar el registro de contador de programa, sincronizar el pipeline y decodificar las instrucciónes debe en algún momento reconocer y deshabilitar la gpu integrada y habilitar la dedicada. ¿cómo lo realiza eso? Supongo que debe haber una instrucción especial para esto o tras una secuencia de instrucciones dedicadas al video, lo que aumentarían un contador que al llegar a tal valor habilitan y desahibiltan las gpus. Evidentemente esta última opción que describí en bajo nivel sería la capa más baja de una rutina del SO. Pero me interesa el bajo nivel.

al final la IGP solo actúa como el buffer de visualización mientras los cálculos la realiza la GPU.
Como buffer te refieres a que la pantalla está mapeada en la memoria de la placa de video y no en ram. Ejemplo (que lo invento no tiene que porque ser así) en la dirección 0xAB15 corresponde al pixel x de la pantalla y en la palabra binaria de la dirección 0xAB15 está codificado el color, el brillo, etc. De esta manera en un rango de memoria corresponde a la pantalla y lo demás a los datos a ser procesados. Lo que liberaría a la ram para los programas de usuario y los procesos del SO.
 
No corre sobre el sistema operativo sino en el controlador de video (driver), para más detalles tienes que ver específicamente como opera cada sistema, para NVIDIA es Optimus y puede cambiar entre la integrada de Intel, para AMD Radeon Dual Graphics que combina las APU con las dedicadas para darle más poder, o una de las primeras soluciones que conocí fue la de Virtu de Lucidlogix.

Con lo del buffer me refiero a que los datos se procesan en la NVIDIA, el resultado se envía a la Intel y esta es la que se conecta al monitor y lo visualiza, de esa forma no hace falta cambiar conexiones eléctricas que requerirían switches y una gran cantidad de pistas adicionales, excepto para las salidas que son controladas únicamente por la nvidia. Mi notebook es una Latitude E6420, tiene el panel plano y la salida VGA compartida entre ambas, creo que la salida HDMI es controlada exclusivamente por la NVIDIA y si la voy a usar esa tarjeta se activa, las otras requieren el Dock para entregar la DVI y Display Port, esas también creo que son solo de la NVIDIA.
 
Atrás
Arriba