View previous topic :: View next topic |
Author |
Message |
Fitap Guru
Joined: 13 Mar 2011 Posts: 444 Location: Rosario, Argentina
|
Posted: Fri Jul 08, 2016 4:09 pm Post subject: Safe CFLAGS - Opciones especificas de la CPU |
|
|
Hola foro,
siguiendo la wiki Safe CFLAGS, me dispuse a buscar los flags especificos para mi CPU, y como no me dio "empty" diff march.s native.s, hay que sacar las flags que no se repiten, en mi caso es el flag -mpclmul, pero al volver a procesar
Code: | gcc -fverbose-asm -march=westmere -mpclmul march.cc -S
sed -i 1,/options\ enabled/d march.s
diff march.s native.s |
Sigue apareciendo ese flag.
Ahora, mi procesador tengo entendido que es un westmere (Intel Core i3 CPU M 370 @ 2.40GHz), y en la wiki si utilizo el -march para westmere, que es corei7, obtengo "empty" en diff march.s native.s.
Porque siguiendo enteonces la wiki no puedo sacar el flag mpclmul usando westmere en vez de corei7? o quizas no tenga importancia, no lo se.
Saludos. |
|
Back to top |
|
|
quilosaq Veteran
Joined: 22 Dec 2009 Posts: 1524
|
Posted: Sat Jul 09, 2016 12:58 am Post subject: |
|
|
Fitap wrote: | ...
hay que sacar las flags que no se repiten.
.. |
No exactamente. Hay que buscar las opciones que usa gcc cuando pones -march=westmere y que no aparecen cuando usas -march=native. Y probar a desactivarlas.. En tu caso debería ser:
Code: | gcc -fverbose-asm -march=westmere -mno-pclmul march.cc -S
sed -i 1,/options\ enabled/d march.s
diff march.s native.s |
|
|
Back to top |
|
|
Fitap Guru
Joined: 13 Mar 2011 Posts: 444 Location: Rosario, Argentina
|
Posted: Sat Jul 09, 2016 2:26 am Post subject: |
|
|
Gracias quilosaq por responder, me falto agregar lo siguiente cuando ejecuto con westmere:
Code: |
# options passed: -D_GNU_SOURCE native.cc -march=westmere -mmmx -mno-3dnow
18c18
< # -m128bit-long-double -m64 -m80387 -maes -malign-stringops
---
> # -m128bit-long-double -m64 -m80387 -malign-stringops
21,23c21,22
< # -mlong-double-80 -mmmx -mpclmul -mpopcnt -mpush-args -mred-zone -msahf
< # -msse -msse2 -msse3 -msse4 -msse4.1 -msse4.2 -mssse3
< # -mtls-direct-seg-refs
---
> # -mlong-double-80 -mmmx -mpopcnt -mpush-args -mred-zone -msahf -msse
> # -msse2 -msse3 -msse4 -msse4.1 -msse4.2 -mssse3 -mtls-direct-seg-refs
|
Entonces hay que sacar lo que esta en westmere para acercarse a lo que esta en native ?
Y esto que me arroja la primer prueba para detectar el CPU, osea, -mmmx -mno-3dnow , no habria que agregarlo en CFLAGS?
Siguiendo tu recomendacion de sacar -mno-pclmul obtengo lo siguiente:
Code: |
18c18
< # -m128bit-long-double -m64 -m80387 -maes -malign-stringops
---
> # -m128bit-long-double -m64 -m80387 -malign-stringops
|
Tendria que sacar -maes? pero me lo sigue largando.
Saludos. |
|
Back to top |
|
|
Fitap Guru
Joined: 13 Mar 2011 Posts: 444 Location: Rosario, Argentina
|
Posted: Sat Jul 09, 2016 2:50 am Post subject: |
|
|
Fitap wrote: | Gracias quilosaq por responder, me falto agregar lo siguiente cuando ejecuto con westmere:
Code: |
# options passed: -D_GNU_SOURCE native.cc -march=westmere -mmmx -mno-3dnow
18c18
< # -m128bit-long-double -m64 -m80387 -maes -malign-stringops
---
> # -m128bit-long-double -m64 -m80387 -malign-stringops
21,23c21,22
< # -mlong-double-80 -mmmx -mpclmul -mpopcnt -mpush-args -mred-zone -msahf
< # -msse -msse2 -msse3 -msse4 -msse4.1 -msse4.2 -mssse3
< # -mtls-direct-seg-refs
---
> # -mlong-double-80 -mmmx -mpopcnt -mpush-args -mred-zone -msahf -msse
> # -msse2 -msse3 -msse4 -msse4.1 -msse4.2 -mssse3 -mtls-direct-seg-refs
|
Entonces hay que sacar lo que esta en westmere para acercarse a lo que esta en native ?
Y esto que me arroja la primer prueba para detectar el CPU, osea, -mmmx -mno-3dnow , no habria que agregarlo en CFLAGS?
Siguiendo tu recomendacion de sacar -mno-pclmul obtengo lo siguiente:
Code: |
18c18
< # -m128bit-long-double -m64 -m80387 -maes -malign-stringops
---
> # -m128bit-long-double -m64 -m80387 -malign-stringops
|
Tendria que sacar -maes? pero me lo sigue largando.
Saludos. |
Me respondo a mi mismo, como es de suponer soy un NB en esto,
En vez de sacar -maes saque -mno-aes y ahora obtengo cero diff.
Saludos. |
|
Back to top |
|
|
cameta Veteran
Joined: 04 Aug 2004 Posts: 1326
|
Posted: Sat Jul 09, 2016 8:54 am Post subject: |
|
|
Hola,
mi consejo como cflags es que si usas un procesador Intel pongas esto
CFLAGS="-O2 -march=native -pipe"
En el caso de las cflags normalmente menos es mejor. _________________ Si algo falla LEE el jodido manual, Si sigue fallando LEE BIEN el jodido manual. |
|
Back to top |
|
|
Fitap Guru
Joined: 13 Mar 2011 Posts: 444 Location: Rosario, Argentina
|
Posted: Sat Jul 09, 2016 12:01 pm Post subject: |
|
|
Gracias por el consejo cameta, asi viene por default en el handbook, has tenido algun problema con los procesadores Intel ?
En la desktop tambien es un Intel i7 4790 (Haswell), en CFLAGS reemplazo solamente native por haswell.
Saludos. |
|
Back to top |
|
|
cameta Veteran
Joined: 04 Aug 2004 Posts: 1326
|
Posted: Tue Jul 12, 2016 1:56 pm Post subject: |
|
|
No he tenido problemas con los intel.
Si pones un procesador un poco más especifico mientras sea el correcto también te irá bien. _________________ Si algo falla LEE el jodido manual, Si sigue fallando LEE BIEN el jodido manual. |
|
Back to top |
|
|
|