Página 2 de 8 PrimerPrimer 123456 ... ÚltimoÚltimo
Resultados 11 al 20 de 74

Tema: Construyendo un benchmark

  1. #11
    Con domicilio en Noticias3d.com Avatar de avex
    Ubicación
    La Laguna (Tenerife)
    Edad
    33
    Mensajes
    8,257

    Predeterminado Re: Construyendo un benchmark

    Cita Iniciado por Fantasma Ver mensaje
    No sé si luego más adelante tendrás problemas paralelizando en windows. Si usas el módulo de multiprocessing de Python (que en principio funciona muy bien con los algoritmos genéticos), es posible que no te funcione en windows y entres en un bucle sin fin. Queríamos usarlo en el curro y en linux funcionaba sin problemas pero en windows no. Lo que pasa que nuestra cantidad de datos no es tan grande, ni utilizamos ecuaciones complicadas (un polinomio con 9 parámetros que se calcula en tres pasos con tres tipos de datos diferentes), así que incluso en monohilo no tarda muchísimo y por eso no nos pusimos a resolvier el problema.
    Aunque no lo incluyese en el ejecutable de ayer, ya lo había probado antes de pasarlo. Carga los 16 hilos del 1700X y acaba sin mayores problemas. Antes de distribuirlo quería estar seguro de esto, porque de otro modo no iba a ninguna parte. Ahora mismo el bench monocore ya lo hace usando el módulo multiprocessing, pero con el número de hilos fijado a 1. Esta noche o mañana puede que ponga ya una actualización para probarlo. Solo por asegurar que no hay problemas en ninguna plataforma.

    Estoy revisando la documentación de la librería que estoy usando en Windows, y me acabo de encontrar esto:

    Under Windows, the use of multiprocessing.Pool requires to protect the main loop of code to avoid recursive spawning of subprocesses. In other words, you should be writing code like this when using the 'multiprocessing' backend:

    import ....

    def function1(...):
    ...
    def function2(...):
    ...
    ...
    if __name__ == '__main__':
    # do stuff with imports and functions defined about
    ...

    No code should run outside of the "if __name__ == '__main__'" blocks, only imports and definitions.
    Esa es justo la estructura que tengo, porque de otro modo la rutina que lee la información del CPU se volvía loca y entraba en un bucle infinito. Si no lo tenéis así (es muy tentador hacer scripts de python sin preocuparse del "main", la mayoría de los mios están así) quizá esta sea la solución.
    PC1: Asus PRIME X370-Pro - R7 1700X (8C/16T) @3.85 Ghz (Noctua NH-D15) - Sapphire RX Vega 64 Nitro+ @1630 Mhz - 32 GB DDR4 @2933 Mhz - SSD 480 GB - HDD 2 TB + 2 TB - Fuente Corsair 1000W - Monitor LG 4K 27" - Windows 10 + Ubuntu 18

    Portatil: i7 8550U (4C/8T) - Intel UHD 620 - 8 GB DDR4 2666 MHz - SSD 500GB - Pantalla 14" - Ubuntu 18

    Portatil 2: i7 3630QM (4C/8T) - AMD 7670M - 8 GB DDR3 1600 MHz - HDD 500GB - Pantalla 15.6" - Ubuntu 16


    Noticias de astronomía para todos los públicos -- Perdámonos en el espacio

  2. #12

    Predeterminado Re: Construyendo un benchmark

    Cita Iniciado por avex Ver mensaje
    Kgonla: ¿Que antivirus te dio ese mensaje?
    www.virustotal.com

  3. #13

    Predeterminado Re: Construyendo un benchmark

    Bueno para dar variedad de micros os dejo mi actual i7 9700K de serie



    Saludos..
    Última edición por sinparedes; 10/09/2019 a las 20:42

  4. #14
    Con domicilio en Noticias3d.com Avatar de avex
    Ubicación
    La Laguna (Tenerife)
    Edad
    33
    Mensajes
    8,257

    Predeterminado Re: Construyendo un benchmark

    ¡Nueva versión! ahora con test multi-núcleo incluido.


    Novedades:
    -Nueva estructura de archivos (necesidad para asegurar que funcione el paralelismo)
    -Test multi-núcleo
    -Test más largo. En estos momentos dura unos 8-9 minutos en mi 1700X @ 3.85 GHz
    -El test incluye tres pasadas de cada benchmark. Al final da el resultado promedio y la variabilidad.
    -Nueva unidad para medida del rendimiento (aun no estoy del todo convencido de que vaya a ser la definitiva)
    -Medida del escalado multi-núcleo (en estos momentos 10.3x para un 1700X)

    Notas:
    ¿A que viene que ya no sea solo un archivo?
    La librería multiprocessing de python, que uso para repartir el trabajo por todos los núcleos, da problemas con la forma de crear el ejecutable que usé en la primera versión. Esta es la solución más sencilla.

    ¿Por qué un Nº Walkers mayor en el test multi-núcleo?
    Quiero asegurar que la ocupación de los cores se mantiene homogénea. Con pocos hilos puede darse fácilmente el caso de que medio CPU se quede dormido hacia el final del benchmark.
    A la vez quiero asegurarme de no eternizar el test mono-núcleo.

    ¿Por qué es más largo?
    Quiero que el test dure más que las especificaciones de Intel/AMD sobre el tiempo que pueden saltarse el TDP. Un test más largo es además más preciso.
    En el futuro incluiré una opción mas corta (y también una más larga)


    Pendiente:
    -Incluir modelo definitivo
    -Generar archivos con los resultados
    -Afinar parametros
    -Optimizar código
    -Generar diferentes configuraciones de tests (corto, normal, largo, "tortura", configuraciones personalizadas)
    No he podido hacer nada con el tema de antivirus/navegadores. Por lo que he visto la única manera gratuita es generar un certificado digital, y que se lo instale cada persona que descarga el programa. La otra opción es entrar en el programa de desarrolladores de Microsoft, y casi que no me voy a meter en ese follón. Os vais a tener que fiar de mi.


    Una captura de los resultados en mi equipo:

    Durante el test multi-núcleo puso mi CPU a 69.5º y llevó el consumo a ~150W (según "Package Power" en HWINFO).



    Explicación de los resultados:
    -Time per run: Tiempo promedio de cada pasada del benchmark.
    -Operations per run: Número de operaciones realizadas en cada pasada (en realidad esto es un número fijo, en la proxima versión es posible que no lo muestre).
    -Performance: Número de operaciones por segundo (promedio de las 3 medidas). No confundirse con instrucciones. Una operación es una construcción del modelo y evaluación.
    -Variance: Variabilidad de una pasada a otra (desviación estandar de las 3 medidas)
    -Scaling: Cuanto aumenta el rendimiento al usar todo el CPU frente a usar un solo núcleo.
    -Scaling per thread: Medida del aumento de rendimiento por hilo. *Se que medirlo por núcleo estaría mejor, pero no se como medir el número de núcleos físicos.


    Para quien se anime, aquí está el link a la descarga (también en el primer post).

    Link a la nueva versión: https://www.dropbox.com/s/sjezkncfbg...h_v02.zip?dl=0
    Última edición por avex; 10/09/2019 a las 23:10
    PC1: Asus PRIME X370-Pro - R7 1700X (8C/16T) @3.85 Ghz (Noctua NH-D15) - Sapphire RX Vega 64 Nitro+ @1630 Mhz - 32 GB DDR4 @2933 Mhz - SSD 480 GB - HDD 2 TB + 2 TB - Fuente Corsair 1000W - Monitor LG 4K 27" - Windows 10 + Ubuntu 18

    Portatil: i7 8550U (4C/8T) - Intel UHD 620 - 8 GB DDR4 2666 MHz - SSD 500GB - Pantalla 14" - Ubuntu 18

    Portatil 2: i7 3630QM (4C/8T) - AMD 7670M - 8 GB DDR3 1600 MHz - HDD 500GB - Pantalla 15.6" - Ubuntu 16


    Noticias de astronomía para todos los públicos -- Perdámonos en el espacio

  5. #15
    Con domicilio en Noticias3d.com Avatar de Bloot
    Ubicación
    Barcelona
    Mensajes
    7,250

    Predeterminado Re: Construyendo un benchmark

    Lo del aviso de chrome sí lo has arreglado al comprimirlo en zip, o igual saltaba porque "test.rar" es un nombre de fichero que está en una lista negra, la verdad es que ni idea, pero ahora no salta ningún aviso.

    https://i.imgur.com/hXf8w9R.png

    En single core fluctuaba entre 4450-4500 y en multi entre 4100-4150

    Saludos.


    Asus ROG Crosshair VI Hero • AMD Ryzen 3900X + Corsair H110i GT • 4x 8GB G.Skill Trident Z 3866
    KFA² RTX 2080 OC • Samsung NVMe SSD 960 EVO 500GB • 2x Crucial MX300 750GB
    SanDisk SSD Plus 480GB • Seasonic Prime Ultra 1000W Platinum • Phanteks Enthoo Pro M
    Corsair K70 Lux RGB MX Red • Logitech G203 Prodigy • Xbox One Controller • Acer XF270HUA

  6. #16
    Con domicilio en Noticias3d.com Avatar de Fantasma
    Ubicación
    Inframundo
    Mensajes
    17,430

    Predeterminado Re: Construyendo un benchmark

    Cita Iniciado por avex Ver mensaje
    Aunque no lo incluyese en el ejecutable de ayer, ya lo había probado antes de pasarlo. Carga los 16 hilos del 1700X y acaba sin mayores problemas. Antes de distribuirlo quería estar seguro de esto, porque de otro modo no iba a ninguna parte. Ahora mismo el bench monocore ya lo hace usando el módulo multiprocessing, pero con el número de hilos fijado a 1. Esta noche o mañana puede que ponga ya una actualización para probarlo. Solo por asegurar que no hay problemas en ninguna plataforma.

    Estoy revisando la documentación de la librería que estoy usando en Windows, y me acabo de encontrar esto:



    Esa es justo la estructura que tengo, porque de otro modo la rutina que lee la información del CPU se volvía loca y entraba en un bucle infinito. Si no lo tenéis así (es muy tentador hacer scripts de python sin preocuparse del "main", la mayoría de los mios están así) quizá esta sea la solución.
    Lo decía por si acaso, según el intérprete el tema es más problemático o menos. Por ejemplo, con algunos cambios lo llegamos a hacer funcionar en IPython, pero usando el jupyter notebook, no hubo manera, entraba en bucle perpetuo.

    Saludos
    Intel i7 6800K@4.2Ghz/Arctic Cooling Freezer 33@Plus/MSI X99A Raider/32GB (4x8) DDR4 3200 Corsair Vengeance White@15-17-17-33/MS-Tech X3 Crow
    Asus ROG Strix Vega 64@Patata 64 UV UC/Samsung 960 EVO 500GB (Sistema)/Crucial MX500 2TB (Juegos)/Superflower Platinum King 650W 80+ Platinum
    2x2TB Seagate Compute en Raid 0 (Escombro)/500GB Seagate 7200.14 (Back up)/500GB Seagate 7200.12 (Back up)/AOC C24G1 (Prim)/AOC G2460PF (Sec)


    Información y análisis de los cuellos de botella / Rendimiento semi teórico de cpus por grupos de rendimiento

  7. #17
    Con domicilio en Noticias3d.com Avatar de avex
    Ubicación
    La Laguna (Tenerife)
    Edad
    33
    Mensajes
    8,257

    Predeterminado Re: Construyendo un benchmark

    Cita Iniciado por Bloot Ver mensaje
    Lo del aviso de chrome sí lo has arreglado al comprimirlo en zip, o igual saltaba porque "test.rar" es un nombre de fichero que está en una lista negra, la verdad es que ni idea, pero ahora no salta ningún aviso.
    Pues ha sido azar, pero genial


    https://i.imgur.com/hXf8w9R.png

    En single core fluctuaba entre 4450-4500 y en multi entre 4100-4150
    Veo que el escalado es similar al mio. Un poco más bajo, pero eso es normal teniendo la frecuencia más alta en mono-núcleo. Tengo que ver si consigo que escale un poquito más en todos los CPUs.

    Cita Iniciado por Fantasma Ver mensaje
    Lo decía por si acaso, según el intérprete el tema es más problemático o menos. Por ejemplo, con algunos cambios lo llegamos a hacer funcionar en IPython, pero usando el jupyter notebook, no hubo manera, entraba en bucle perpetuo.
    Me alegro de no haberme cruzado con eso. En IPython, que es el que uso siempre, no tuve ningún problema. Al convertirlo a ejecutable alguno más, pero no fue muy problemático de solucionar.


    A todo esto, me interesa ver que tal va el escalado en Intel. Hoy probé una versión prelimiar en el i7 4790 de la oficina y el escalado era penoso (3.6x), pero el CPU se pasaba casi todo el benchmark multi-core haciendo throttling.
    PC1: Asus PRIME X370-Pro - R7 1700X (8C/16T) @3.85 Ghz (Noctua NH-D15) - Sapphire RX Vega 64 Nitro+ @1630 Mhz - 32 GB DDR4 @2933 Mhz - SSD 480 GB - HDD 2 TB + 2 TB - Fuente Corsair 1000W - Monitor LG 4K 27" - Windows 10 + Ubuntu 18

    Portatil: i7 8550U (4C/8T) - Intel UHD 620 - 8 GB DDR4 2666 MHz - SSD 500GB - Pantalla 14" - Ubuntu 18

    Portatil 2: i7 3630QM (4C/8T) - AMD 7670M - 8 GB DDR3 1600 MHz - HDD 500GB - Pantalla 15.6" - Ubuntu 16


    Noticias de astronomía para todos los públicos -- Perdámonos en el espacio

  8. #18
    Con domicilio en Noticias3d.com Avatar de Fantasma
    Ubicación
    Inframundo
    Mensajes
    17,430

    Predeterminado Re: Construyendo un benchmark

    Pues sí, escala bastante mal en Intel, el mismo 6800K@4.2Ghz, se pone al 100% con unos 120W de consumo máximo:


    Tengo la sensación de que sin hilos HT asignados, rendiría más.

    Saludos
    Última edición por Fantasma; 11/09/2019 a las 02:24
    Intel i7 6800K@4.2Ghz/Arctic Cooling Freezer 33@Plus/MSI X99A Raider/32GB (4x8) DDR4 3200 Corsair Vengeance White@15-17-17-33/MS-Tech X3 Crow
    Asus ROG Strix Vega 64@Patata 64 UV UC/Samsung 960 EVO 500GB (Sistema)/Crucial MX500 2TB (Juegos)/Superflower Platinum King 650W 80+ Platinum
    2x2TB Seagate Compute en Raid 0 (Escombro)/500GB Seagate 7200.14 (Back up)/500GB Seagate 7200.12 (Back up)/AOC C24G1 (Prim)/AOC G2460PF (Sec)


    Información y análisis de los cuellos de botella / Rendimiento semi teórico de cpus por grupos de rendimiento

  9. #19
    Con domicilio en Noticias3d.com Avatar de avex
    Ubicación
    La Laguna (Tenerife)
    Edad
    33
    Mensajes
    8,257

    Predeterminado Re: Construyendo un benchmark

    No se si puede rendir mucho más sin hilos HT. Con 6 núcleos y 6 hilos el tope ideal es 6x el rendimiento en mono-núcleo y está en 5.6x. Parece que el HT no está aportando nada de nada, mientras que el SMT de AMD si lo está haciendo. Tengo que investigar a ver si hay algo que pueda hacer, o es alguna limitación intrínseca del HT. Por lo pronto para la próxima versión añadiré un modulo previo que seleccione el número de hilos que produce el mejor escalado.

    Voy a probarlo hoy en el Xeon de 10 cores del curro, a ver que tal.

    Por otro lado, me impresiona bastante ver que en mono-núcleo tu 6800K rinde un 35% por encima de mi 1700X* y luego en multi-núcleo mi 1700X rinde un 35% por encima. Para este trabajo en concreto ahí hay unas diferencias de arquitectura de la ostia. Tu 6800K en mono rinde por encima del 3900X de bloot, pero en multi su 3900X es 2.5 veces más rápido.

    *Tenía mil cosas en segundo plano, puede que si lo dejo tranquilo rinda un poco más.
    Última edición por avex; 11/09/2019 a las 10:45
    PC1: Asus PRIME X370-Pro - R7 1700X (8C/16T) @3.85 Ghz (Noctua NH-D15) - Sapphire RX Vega 64 Nitro+ @1630 Mhz - 32 GB DDR4 @2933 Mhz - SSD 480 GB - HDD 2 TB + 2 TB - Fuente Corsair 1000W - Monitor LG 4K 27" - Windows 10 + Ubuntu 18

    Portatil: i7 8550U (4C/8T) - Intel UHD 620 - 8 GB DDR4 2666 MHz - SSD 500GB - Pantalla 14" - Ubuntu 18

    Portatil 2: i7 3630QM (4C/8T) - AMD 7670M - 8 GB DDR3 1600 MHz - HDD 500GB - Pantalla 15.6" - Ubuntu 16


    Noticias de astronomía para todos los públicos -- Perdámonos en el espacio

  10. #20
    Con domicilio en Noticias3d.com Avatar de eXteR
    Ubicación
    Tarragona
    Edad
    37
    Mensajes
    5,067

    Predeterminado Re: Construyendo un benchmark

    Cita Iniciado por avex Ver mensaje
    No se si puede rendir mucho más sin hilos HT. Con 6 núcleos y 6 hilos el tope ideal es 6x el rendimiento en mono-núcleo y está en 5.6x. Me da la sensación de que el HT no está aportando nada de nada, mientras que el SMT de AMD si lo está haciendo. Tengo que investigar a ver si hay algo que pueda hacer, o es alguna limitación intrínseca del HT. Por lo pronto para la próxima versión añadiré un modulo previo que seleccione el número de hilos que produce el mejor escalado.

    Voy a probarlo hoy en el Xeon de 10 cores del curro, a ver que tal.

    Por otro lado, me impresiona bastante ver que en mono-núcleo tu 6800K rinde un 35% por encima de mi 1700X* y luego en multi-núcleo mi 1700X rinde un 35% por encima. Para este trabajo en concreto ahí hay unas diferencias de arquitectura de la ostia. Tu 6800K en mono rinde por encima del 3900X de bloot, pero en multi su 3900X es 2.5 veces más rápido.

    *Tenía mil cosas en segundo plano, puede que si lo dejo tranquilo rinda un poco más.
    Te paso resultado con el 3700X.

    Temperatura máxima de 70º, 4150Mhz a todos los cores mientras pasa el multi y consumo máximo 90W ya que voy con el PBO por defecto.

    Ryzen 3700X - Corsair H110i GT - Asrock X370 Taichi - 16Gb gSkill FlareX 3666 CL16 - Nvidia GTX 1080Ti FE Hybrid
    Samsung 840 Pro 128Gb - Samsung 860 EVO 1Tb - Seagate Barracuda 7200.14 3Tb - BeQuiet Straight Power 800W
    ACER XF270HUA - Phanteks Evolv X - Logitech G513 - Logitech G403 - Sennheixer Game One - Asus Xonar DGX

Página 2 de 8 PrimerPrimer 123456 ... ÚltimoÚltimo

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •