• Compra una licencia de Windows 10/11 (10€) u Office (18€) al mejor precio u Office al mejor precio. Entra en este post con las ofertas
  • Conoce los Días Naranjas de PcComponentes: descuentos de hasta un 40% en tecnología. Entra en este post con las ofertas
  • ¡Bienvenid@! Recuerda que para comentar en el foro de El Chapuzas Informático necesitas registrar tu cuenta, tardarás menos de 2 minutos y te dará valiosa información además de ayudarte en lo que necesites o pasar un rato agradable con nosotros.

Zen 2

Estado
Cerrado para nuevas respuestas.
Es que lo mas importante del diseño de ZEN 2 no es que sea economico. Es que a partir de 8 nucleos se empieza a deteriorar la velocidad de una manera brutal sobretodo al emplearlo en juegos o en aplicaciones en tiempo real (por la forma de inteconexion ccx, infinity fabric etc). Hace poco comprobe como un threadripper de 32 nucleos en un entorno profesional en tiempo real y preparado para aprovechar muchos nucleos perdia una burrada de velocidad respecto al de 16 nucleos ambos con frecuencias muy similares y este a su vez perdia bastante pero menos que la comparacion anterior con el ryzen 2700x.

No hay que olvidar que en esta generacion el buque insignia es EPyC y este diseño es perfecto tanto para EPyC como para threadrripper para evitar esa perdida brutal de rendimiento cuanto mayor nucleos tenga. Asi que espero que ryzen 3000 no tenga problemas de latencias pero no me extrañaria que en el mejor de los casos sean iguales

Los juegos actuales no aprovechan ni de coña los 8 núcleos (y casi que 6/12 tampoco), no me extrañaría que los Zen 2 de 12/16 núcleos trajesen algo (no sé si automático o configurable por software) para que al correr un juego éste únicamente usara los núcleos 6/8 cores de uno de los dos chiplets, evitando así el paso de datos entre chiplets

Saludos
 
Hola ricardogayuyu,

Yo te puedo hablar de ese tema de primera mano, soy programador de formación aunque en mi vida laboral me he dedicado más a la parte de técnico de sistemas y montaje de equipos que a la programación.

No obstante, ahora mismo me encuentro desarrollando una aplicación (no es un juego, es una aplicación profesional) y desde primer momento he querido aprender y orientarlo todo a aprovechar el multinúcleo. Obviamente lo primero que te voy a decir es de perogrullo: Es muchísimo mas fácil y rápido programar para un solo hilo.

Programar para varios hilos implica separar las tareas en partes que no dependan unas de otras, que se puedan ejecutar al mismo tiempo como si fuesen dos programas diferentes. En definitiva, es lo que es, dividir un trabajo en varias partes.

Si te pongo un ejemplo práctico: has montado alguna vez un ordenador? cuanto tardas en montarlo? Podría montarse un PC entre dos personas?, y entre cuatro? Como sería? Imaginate.... Uno va sacando la caja del PC del embalaje y le va montando la fuente, otro va sacando la placa base, montando la CPU, ram y disipador...y que hacen los otros dos?.

Se puede programar para varios núcleos, yo lo estoy haciendo, pero como digo es complicado, muchas veces hay que darle una vuelta de tuerca (o varias), y ser muy creativo para buscar la forma de dividir un trabajo y que se gane tiempo el usar varios núcleos.

Porque esa es otra, el mero hecho de dividir las tareas de forma que puedan ser paralelizadas, la mayoría de las veces implica el uso de estructuras de datos "thread-safe", las cuales funcionan algo más lento por el control que necesitan para evitar fallos de datos, y además requiere cambiar la forma en la que se hace todo, necesitando procesos adicionales que también requieren tiempo de procesamiento.

Al final me he encontrado en la práctica que algunas tareas muy paralelizables se realizan casi en un 25% del tiempo si uso los cuatro núcleos de mi 6600k que si uso solamente uno. Sin embargo, otras tareas usando cuatro núcleos no consiguen ni doblar el rendimiento, es decir, si con un núcleo tardo 4 segundos al usar los cuatro se tarde 2,5 segundos; el problema es que con dos núcleos pasa a veces que se tarda más que si se usa uno solo. Esto hace que tenga que ir mirando con lupa cada tarea, hacer bastantes pruebas, y a veces hacer que el programa mire el número de núcleos disponibles, y que ejecute en paralelo solamente si la máquina tiene al menos 4 hilos, pero seguir ejecutando en secuencial (aprovechando un solo core) si el PC es solo un doble núcleo (requiriendo por supuesto programar dos procesos diferentes, uno que use un solo núcleo y otro que use varios).

El hecho de que el estándard de núcleos esté aumentando lo que hace es forzar a los programadores a aprovechar más núcleos: Yo no necesito ni mirar a otro lado, solo tengo que mirarme a mi mismo; te quiero decir con esto que si no hubiesen salido los Ryzen y siguiéramos con el estancamiento que nos impuso Intel, donde solo los equipos de gama alta tenían i7s de 4 núcleos y en muchas oficinas lo máximo que tenían eran pentiums de doble núcleo o como mucho i3 de doble núcleo con HT, lo mismo pienso que no me merece la pena todo el curro y paso de optimizar. Al fin y al cabo, si creas un programa tienes que pensar en la mayoría de la gente que lo va a usar.

Mi programa está orientado a oficinas, y en ellas te puedo asegurar que verás incluso a día de hoy ningún i7 de 4 núcleos y poquitos i5, pues no hay conciencia de que un equipo mas rápido significa mayor productividad. Es decir, la gente suele ver los equipos informáticos como un gasto en lugar de como una inversión que te permite acelerar el trabajo y ganar tiempo (lo que es un pensamiento de troglodita, pero es la realidad).

Te quiero decir con esto, que ahora que prácticamente las gamas bajas ya tienen 4 núcleos reales y que parece que dentro de dos meses tendrán 6, y los equipos "normales" tendrán 8/16, la situación es bien diferente. Gracias a AMD estamos aumentando el estándard de núcleos, y eso hace que los programadores nos animemos a sacarles partido, porque la gente que use nuestros programas se los sacará.

Como siempre digo, el hardware siempre tiene que dar el paso antes que el software.

Un saludo

La paralelización de instrucciones la han hecho los sistemas operativos desde siempre, incluso cuando los procesadores eran de un sólo núcleo. Simplemente se dividen las instrucciones en segmentos (dicho de forma muy ruda) para que se puedan ejecutar varias a la vez. Si no fuera así, yo no podría haber estado escuchando música en winamp y a la vez hablando por irc con mi Pentium 3.

El problema de programar para muchos núcleos es cuando uno de ellos delega un trabajo en otro, cuyo resultado necesita para continuar con el proceso que estaba realizando. Tiene que ponerse a hacer otras cosas y saber exactamente cuando dispone del resultado del cálculo delegado para continuar con lo que dejó en "standby". De nuevo recalco que es una explicación muy burda para entendernos. Y estamos hablando de dos núcleos en este ejemplo. Con más la cosa puede ser una pesadilla, sobre todo cuando se programa a bajo nivel. Lenguajes de alto nivel estilo Java o C se encargan ellos solitos de distribuir carga, aunque casi nunca lo hacen de la forma más eficiente posible.
 
La paralelización de instrucciones la han hecho los sistemas operativos desde siempre, incluso cuando los procesadores eran de un sólo núcleo. Simplemente se dividen las instrucciones en segmentos (dicho de forma muy ruda) para que se puedan ejecutar varias a la vez. Si no fuera así, yo no podría haber estado escuchando música en winamp y a la vez hablando por irc con mi Pentium 3.



Hola QueMeDa,

Estás confundiendo el hecho de que un sistema operativo sea multitarea con el que un programa sea capaz de usar varios hilos de procesamiento. Una cosa es (por decirlo de alguna manera) lo contrario de la otra.

Cuando escuchas música y al mismo tiempo hablas por el IRC en un Pentium 3 es porque el sistema operativo divide los ciclos de reloj y los reparte entre todas las aplicaciones que se están ejecutando en ese momento (no solo WinAMP e IRC, sino todos los servicios del sistema operativo, aplicaciones en background, etc).

Esto es, por decirlo de alguna manera, aprovechar que un núcleo es muy potente para que haga varias cosas a la vez (reproducir un MP3 es una tarea muy ligera para un Pentium III, no necesita toda su potencia para hacerlo de forma fluida).

Lo que yo comentaba es justo lo contrario, hacer que una aplicación sea capaz de usar más de un núcleo si está disponible, y esto es algo que solo ocurre si esta aplicación está diseñada y pensada para aprovechar más de un núcleo.

Por supuesto a esto se aplica lo que comentas tú mismo:

El problema de programar para muchos núcleos es cuando uno de ellos delega un trabajo en otro, cuyo resultado necesita para continuar con el proceso que estaba realizando. Tiene que ponerse a hacer otras cosas y saber exactamente cuando dispone del resultado del cálculo delegado para continuar con lo que dejó en "standby". De nuevo recalco que es una explicación muy burda para entendernos. Y estamos hablando de dos núcleos en este ejemplo. Con más la cosa puede ser una pesadilla, sobre todo cuando se programa a bajo nivel. Lenguajes de alto nivel estilo Java o C se encargan ellos solitos de distribuir carga, aunque casi nunca lo hacen de la forma más eficiente posible.

Hay que saber programar, o sea, dividir el trabajo y planificar como se va a ejecutar el programa de forma que puedan realizarse microtareas de forma independiente, que unas no necesiten conocer los resultados de otras para continuar.

Por ejemplo, en el programa que yo estoy haciendo al principio leo información de varios ficheros y la cargo en memoria. La tarea de abrir un fichero y extraer los datos no la puedo repartir entre varios núcleos (varios hilos no pueden abrir el mismo fichero a la vez), pero sí que puedo hacer que si tengo que leer n ficheros, ir repartiendo estos ficheros entre los núcleos, de forma que cada núcleo lea/procese un fichero, y así hasta acabarlos todos.

Obviamente aquí entraría también la velocidad del disco duro, si es solo abrir y leer, y el disco duro es muy lento, de poco me servirá que lo hagan varios núcleos a la vez proque el limitante estará en el disco (un mecánico por ejemplo).

Saludos
 
Muéstrame esas evidencias. Una cosa son las teorías, y otra la práctica. Si AMD mejora en todo para estropear las latencias por aquello de que el diseño de ZEN 2 es muy económico...está tirando por la borda todos los beneficios,y creo que cualquiera en AMD pensaría en esto antes de llevarlo a cabo.

Insisto. Quiero ver esas "evidencias" :)

Las 2 pruebas en userbenchmark de una muestra de ingenieria del Zen2 de 12 núcleos muestran un aumento ligero en latencia. Por supuesto, solo es muestra de ingeniería y pueden haber cosas desactivadas, IF funcionando a menos velocidad etc, pero de momento es todo lo que hay, y no hay nada que indique lo contrario, una reducción de latencia.
Los beneficios superan ampliamente esa subida ligera de latencia. Poder ofrecer 64 cores en servidores de forma más económica y escalable, latencia homogenia en todos los chiplets, rescatar partes no defectuosas, fabricar parte del die a 14nm, etc. Las ventajas son muchas. Además, la subida de IPC y subida de frecuencia es más que suficiente para que elrendimiento aumente.
 
Las 2 pruebas en userbenchmark de una muestra de ingenieria del Zen2 de 12 núcleos muestran un aumento ligero en latencia. Por supuesto, solo es muestra de ingeniería y pueden haber cosas desactivadas, IF funcionando a menos velocidad etc, pero de momento es todo lo que hay, y no hay nada que indique lo contrario, una reducción de latencia.
Los beneficios superan ampliamente esa subida ligera de latencia. Poder ofrecer 64 cores en servidores de forma más económica y escalable, latencia homogenia en todos los chiplets, rescatar partes no defectuosas, fabricar parte del die a 14nm, etc. Las ventajas son muchas. Además, la subida de IPC y subida de frecuencia es más que suficiente para que elrendimiento aumente.

Estaba leyendo tu comentario y mientras lo leía se me ocurrían cosas que comentar, pero maldito seas! xD, conforme seguía leyendote las cosas que decías eran justo las que yo quería decir :p

Por decir algo, la lógica dice que las latencias no pueden mejorar porque pasamos de comunicación directa CCX ----- RAM a Chiplet --- I/O ---- RAM. De hecho la lógica dice que empeoraríamos.

alvaroiobello, seguramente para Matisse (hasta 16 núcleos) habría sido mejor seguir con el diseño de CCX interconectados en lugar de io+chiplets, pero eso requeriría dos diseños bien diferentes (uno de ellos los chiplets actuales y otro similar a los actuales CCX, con todo lo que está en el chip IO en esos CCX).

Ese doble diseño ya encarece porque es más gasto de I+D, pero sobre todo encarece porque se necesita fabricar dos diseños diferentes, tener dos líneas de producción diferentes y no poder usar los mismos chiplets para todas las gamas. Para colmo, esos CCX de Matisse, al tener integrado todo lo que lleva el IO serían más grandes, cabrían menos por oblea, así que al gasto que de por sí ya es tener dos líneas diferentes súmale el gasto porque los CCX a 7nm serían más grandes que los CCX de 7nm.

Un saludo
 
Última edición:
Los juegos actuales no aprovechan ni de coña los 8 núcleos (y casi que 6/12 tampoco), no me extrañaría que los Zen 2 de 12/16 núcleos trajesen algo (no sé si automático o configurable por software) para que al correr un juego éste únicamente usara los núcleos 6/8 cores de uno de los dos chiplets, evitando así el paso de datos entre chiplets

Saludos
Es que la gracia del nuevo diseño es que te va igual de bien 8 núcleos que 64 núcleos al usar el I/O todos los chiplets llegan a la vez (así que no hace falta desactivar nada). El problema era el de los threadripper 2000 de 32 núcleos por ejemplo aunque en ryzen máster de podían desactivar manualmente si lo usabas para jugar
 
VI un reportaje de unos productores de un juego y lo decían claro. Sus juegos usarán más nucleos cuando las estadísticas que ellos ven dejen lo aconsejen

Enviado desde mi SM-G975F mediante Tapatalk
 
Es que la gracia del nuevo diseño es que te va igual de bien 8 núcleos que 64 núcleos al usar el I/O todos los chiplets llegan a la vez (así que no hace falta desactivar nada). El problema era el de los threadripper 2000 de 32 núcleos por ejemplo aunque en ryzen máster de podían desactivar manualmente si lo usabas para jugar

Claro, la gran ventaja es que evitamos lo que pasa en el 2990wx, que la mitad de los cores no tienen acceso a la RAM y tienen que pasar los datos por los otros CCX.

Pero aunque tengamos dos chiplets y un IO, se supone que si tenemos que pasar un dato de un chiplet a otro habrá que hacerlo a través del IO die, o bien a través del canal de interconexión de chiplets que podrían llevar los Matisse.

Mi comentario era porque quizás es más eficiente en este sentido usar un solo chiplet y no tener que pasar datos de uno a otro, aunque sigan teniendo que pasar por el IO

Saludos
 
VI un reportaje de unos productores de un juego y lo decían claro. Sus juegos usarán más nucleos cuando las estadísticas que ellos ven dejen lo aconsejen

Enviado desde mi SM-G975F mediante Tapatalk

Dependerá de lo que pase con las consolas de la nextgen, que van a llegar con APUs Zen2 8/16 supuestamente. Así que los desarrolladores que quieran sacarle el máximo partido a sus juegos intentarán explotar los favores del multihilo. Lo complicado es hacer un juego para que funcione bien con 2-4 hilos y luego esperar que aproveche bien un 8/16 ó un 12/24.


A mi lo que me sorprende es que los fabricantes de procesadores no nos hayan querido vender las arquitecturas big-little como pasó en el sector móvil...
 
Hay más usos que los juegos. En portátiles no siempre más potente es mejor... Puede ser que prefieras algo más "portable", dar prioridad a la autonomía, buscar algo más multimedia (mejor pantalla y audio), algo para diseño/edición (más CPU que GPU)...

Enviado desde mi Nexus 5X mediante Tapatalk
No lo pongo en duda pero el tema de discusión era la potencia grafica de una APU. Y salvo por lo economico de la oferta del Lenovo. Dudo mucho que su autonomia fuera maravillosa comparado con lo considerado un Ultrabook. No hablo de especificaciones de fabrica. Sino de realidad.

Tambien por cierto, no me extraña que bajen esos portatiles Ryzen porque a AMD le lastra una reputación malisima en portatiles con sus anterior APU. Que tenian una fama total de romperse solas.

En fin. Una cosa es compararlo como lo que es, una gran APU. Otra cosa muy diferente es decir que tienen una gran potencia grafica. Porque no es cierto. Las APU siguen siendo una mierda pìnchada en un palo y diciendo que es mejor que Intel no resuelves nada. Si fueran como lo anunciado para la Playstation 5 o lo que pusieron a los Intel Nuc, otro gallo cantaria. Pero es que no lo son.

VI un reportaje de unos productores de un juego y lo decían claro. Sus juegos usarán más nucleos cuando las estadísticas que ellos ven dejen lo aconsejen
Yo no lo pongo en duda. Llegara un dia, quizas en 2022/2024 donde sea habitual que un juego use esas capacidades. Ahora mismo no pasa porque Intel durante montones de año domino el mercado y se hacian juegos actuales para 4 nucleos a secas. Los hilos como sino existieran. Ryzen ha llegado practicamente, no domina el mercado pero con los precios más baratos que ofrecen, es normal que se ponga como un estandar, yo diria que en el futuro, 6 cores sera la medida para la cual muchos juegos exclusivos de PC esten hechos y dado que muchas consolas usaran APU de 8 nucleos, es bastante posible que todos esos juegos compartidos con PC usen esa tecnologia. Vamos lo que ya se dijo.
 
Entonces una cosa si esta clara y es que pasaran años hasta que se crea un sistema operativo y todo tipo de programas que utilizen adecuadamente los ocho nucleos de un procesador y es mas todo el mundo que tenga un procesador apartir de 4 nucleos para arriba pasaran años hasta que se consiga sacarles todo su potencial, incluido juegos, aplicaciones multimedia, edicion de video, edicion de fotografia, diseño de planos en 3d, etc etc, y los usuarios ya nos podemos considerar engañados independientemente que tengas un procesador i7 o un procesador de AND equivalente al i7, saludos a todos y todas.
 
Está claro que aumentar cores es la forma más fácil con diferencia de aumentar el rendimiento, en términos de consumo y de facilidad de llevar a cabo. El silicio ha hecho tope en los ~5GHz, en IPC ya no va a haber grandes aumentos (más del 20%) ya que el coste en consumo no es lineal. La cantidad de transistores necesaria para tener un 50% más de cores es ridículamente más pequeña comparado con los transistores que uno necesitaría para un 50% más de IPC. Por eso cuando en gráficas se ven esos saltos de rendimiento tan espetaculares, es que es mucho más fácil, no se ha hecho tope en frecuencias y aun queda, y las tareas que ejecuta una gráfica son hiper paralelizables, así que echar más cores siempre aumenta el rendimiento. Es mucho más difícil innovar en CPU que en GPU.
 
Entonces una cosa si esta clara y es que pasaran años hasta que se crea un sistema operativo y todo tipo de programas que utilizen adecuadamente los ocho nucleos de un procesador y es mas todo el mundo que tenga un procesador apartir de 4 nucleos para arriba pasaran años hasta que se consiga sacarles todo su potencial, incluido juegos, aplicaciones multimedia, edicion de video, edicion de fotografia, diseño de planos en 3d, etc etc, y los usuarios ya nos podemos considerar engañados independientemente que tengas un procesador i7 o un procesador de AND equivalente al i7, saludos a todos y todas.
No es necesario un SO para tal fin. Basta con que las principales empresas den el salto. Autodesk en programas de CAD/CAM, Adobe en programas de edición, Microsoft en programas de ofimática, SAP en programas de gestión...

Es una vergüenza (tecnológicamente hablando) que programas como AutoCAD sigan funcionando únicamente con 1/2 cores o que con Revit (y el resto de programas más actuales) no hayan dado el salto definitivo a la multitarea y sigan apoyados en 1 único core (si, para renderizar si usa varios hilos).

En muchos casos ni siquiera han hecho una evolución real para sacar máximo partido a las memorias nand actuales (SSD, NVMe, DDR4...) tan solo beneficiándose de haber mejorado en velocidades y latencias, pero sin mayor optimización.

Y en juegos... bueno, cuanto más se parezcan las nuevas consolas en hardware a los PC, más facilidad para los ports y para que los desarrolladores tengan que aprovechar más núcleos/hilos en próximos desarrollos. Y mejor para todos.

Enviado desde mi Nexus 5X mediante Tapatalk
 
Bueno pues ya se ha visto muestra de ingenieria de Zen2 16 cores en placa X570. Esto parece confirmar que va a haber 16 cores, no se si al principio pero que los va a haber seguro.
 
Bueno pues ya se ha visto muestra de ingenieria de Zen2 16 cores en placa X570. Esto parece confirmar que va a haber 16 cores, no se si al principio pero que los va a haber seguro.

Yo lo que he visto es solo esto:

Twitter

Se sabe algo más?

Es un ES con velocidad máxima 4,2 Ghz. Yo estoy convencido de que el turbo máximo será de AL MENOS 4,5Ghz en las versiones finales, si a esto unimos un +10% de IPC (y digo "solo" 10, no el 15% del que se habla últimamente), tenemos que 4,5 + 10% = 4950 mhz, o sea, que la potencia por núcleos sería similar a la que ofrecería un Ryzen+ a 4950mhz. Eso prácticamente iguala lo que ofrece Intel ahora mismo, pero por supuesto con mas núcleos, mejores precios y consumos más bajos.

Saludos
 
A ver si me aclaro, ¿se ha filtrado el tope de gama, pero el resto de modelos siguen siendo rumores, verdad?
 
Yo lo que he visto es solo esto:

Twitter

Se sabe algo más?

Es un ES con velocidad máxima 4,2 Ghz. Yo estoy convencido de que el turbo máximo será de AL MENOS 4,5Ghz en las versiones finales, si a esto unimos un +10% de IPC (y digo "solo" 10, no el 15% del que se habla últimamente), tenemos que 4,5 + 10% = 4950 mhz, o sea, que la potencia por núcleos sería similar a la que ofrecería un Ryzen+ a 4950mhz. Eso prácticamente iguala lo que ofrece Intel ahora mismo, pero por supuesto con mas núcleos, mejores precios y consumos más bajos.

Saludos
Seria parecido a un 9960x no?

Enviado desde mi SM-G975F mediante Tapatalk
 
Seria parecido a un 9960x no?

Enviado desde mi SM-G975F mediante Tapatalk

Tendría los mismos núcleos e hilos si es a lo que te refieres. El 9960x de serie tiene un turbo máximo de 4,4Ghz, lo que no sé es a cuanto llegará con OC, seguramente con una buena líquida, placa base, etc, llegará a los 4,7 Ghz o incluso más, pero no lo sé.

Un saludo
 
Cuando se filtró el ES de los primeros Ryzen, funcionaba a 800Mhz menos que la CPU de consumo final. No sabemos si este ES es antiguo o actual, pero de que esas frecuencias van a subir entre 300Mhz-900Mhz no hay duda.

Yo creo que el turbo quedará entre 4.7 y 5.0 Ghz. Nada mal para 16 cores en una CPU de consumo normal. Lo que me preocupa es que el DUAL CHANNEL no pueda con tantos cores y haga cuello de botella en el ancho de banda. AM4 no tiene los suficientes pines como para usar QUAD CHANNEL, así que veremos...
 
Estado
Cerrado para nuevas respuestas.
Arriba