| View previous topic :: View next topic |
| Author |
Message |
BaYGoN Tux's lil' helper


Joined: 21 Sep 2004 Posts: 109 Location: Brasília - DF (Brasil)
|
Posted: Wed Mar 01, 2006 8:01 pm Post subject: Dúvida sobre CFLAGs (AMD64) |
|
|
Olá, pessoal.
Tenho Gentoo instalado num sistema com a configuração da minha assinatura, e gostaria de tirar uma dúvida sobre CFLAGs. Atualmente uso a seguinte: "-march=k8 -O2 -pipe -fomit-frame-pointer". Como meu processador possue instruções SSE3, eu gostaria de adicionar -msse3 às minhas CFLAGs. Gostaria de saber o que preciso fazer depois, para que meus programas possam fazer uso de SSE3 (ex: Xorg). Eu normalmente atualizo meu sistema rodando primeiro emerge --sync e depois emerge -uD world. Qual(is) comando(s) devo passar, para recompilar os programas que fazem uso de SSE3? Devo adicionar alguma USE flag, ex sse3? Não estou em casa agora, mas quando chegar posto meu emerge info, make.conf e qq outro que vcs precisarem.
Obrigado. _________________ Linux User #433896
HP DV6-6190US / Linux 3.4.6-pf #1 SMP PREEMPT Fri Aug 10 13:19:26 BRT 2012 x86_64 Intel(R) Core(TM) i7-2630QM CPU @ 2.00GHz GenuineIntel GNU/Linux
"The destiny of every guru is to be a noob for eternity" |
|
| Back to top |
|
 |
MetalGod Bodhisattva


Joined: 10 Mar 2003 Posts: 816 Location: Portugal
|
Posted: Thu Mar 02, 2006 12:09 am Post subject: |
|
|
deves usar
| Code: | | -march=k8 -O2 -pipe -msse3 | o -fomit-frame-pointer ja está incluido no -O2 em amd64.
Se pretenderes recompilar com essas flags basta fazeres emerge -uDav world e conseguentemente etc-update (ou dispatch-conf) a USE flag sse3 nao existe logo nao precisas de adcionar as USE. _________________ ex: Gentoo Linux Developer: amd64 media-optical sound gnome
ex: Portuguese Moderator
------------------------------------------------------------------------------
God Doesn't Play Dice |
|
| Back to top |
|
 |
BaYGoN Tux's lil' helper


Joined: 21 Sep 2004 Posts: 109 Location: Brasília - DF (Brasil)
|
Posted: Fri Mar 03, 2006 1:48 pm Post subject: |
|
|
Obrigado, MetalGod.
Eu imaginei que seria emerge world o comando, mas eu tinha dúvidas se era só esse mesmo, e não quis arriscar. Eu uso esse comando regularmente, mas nunca havia alterado as CFLAGS depois da instalação.
Sobre o fomit-frame-pointer, eu vi no wiki que amd64 não precisa colocar mas não vi nenhuma explicação do porquê. E como nunca tive problemas, deixei assim mesmo. Chegando em casa vou alterar as flags. Só espero que não demore muito a recompilação.
[]'s _________________ Linux User #433896
HP DV6-6190US / Linux 3.4.6-pf #1 SMP PREEMPT Fri Aug 10 13:19:26 BRT 2012 x86_64 Intel(R) Core(TM) i7-2630QM CPU @ 2.00GHz GenuineIntel GNU/Linux
"The destiny of every guru is to be a noob for eternity" |
|
| Back to top |
|
 |
MetalGod Bodhisattva


Joined: 10 Mar 2003 Posts: 816 Location: Portugal
|
Posted: Fri Mar 03, 2006 1:55 pm Post subject: |
|
|
ja te expliquei porque nao vale a pena adicionar o -fomit-frame-pointer. _________________ ex: Gentoo Linux Developer: amd64 media-optical sound gnome
ex: Portuguese Moderator
------------------------------------------------------------------------------
God Doesn't Play Dice |
|
| Back to top |
|
 |
BaYGoN Tux's lil' helper


Joined: 21 Sep 2004 Posts: 109 Location: Brasília - DF (Brasil)
|
Posted: Fri Mar 03, 2006 7:41 pm Post subject: |
|
|
Sim. Eu entendi. Já que vou adicionar -msse3 aproveito para retirar -fomit-frame-pointer, já que é redundante.
Procurando um pouco mais no fórum e no wiki, achei alguns posts como o último deste tópico (http://forums.gentoo.org/viewtopic-t-439533.html), para um rebuild normal do sistema, eu deveria usar
| Code: | | emerge -uavDN system && emerge -uavDN world |
Eu sei que system está incluído em world, mas o que vc acha deste comando?
É melhor? Pior? Não faz diferença alguma?
Eu quero que tudo que suporte sse3, seja recompilado para tirar vantagem destas instruções.
Obrigado. _________________ Linux User #433896
HP DV6-6190US / Linux 3.4.6-pf #1 SMP PREEMPT Fri Aug 10 13:19:26 BRT 2012 x86_64 Intel(R) Core(TM) i7-2630QM CPU @ 2.00GHz GenuineIntel GNU/Linux
"The destiny of every guru is to be a noob for eternity" |
|
| Back to top |
|
 |
MetalGod Bodhisattva


Joined: 10 Mar 2003 Posts: 816 Location: Portugal
|
Posted: Fri Mar 03, 2006 7:53 pm Post subject: |
|
|
eu uso emerge -euD world apenas pois o world contem o system _________________ ex: Gentoo Linux Developer: amd64 media-optical sound gnome
ex: Portuguese Moderator
------------------------------------------------------------------------------
God Doesn't Play Dice |
|
| Back to top |
|
 |
S4M4R0N3 n00b

Joined: 21 Jun 2005 Posts: 37 Location: Brazil
|
Posted: Tue Mar 21, 2006 1:40 pm Post subject: |
|
|
Aproveitando a duvida aqui sobre SSE3 , queria saber:
| Quote: |
cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 44
model name : AMD Sempron(tm) Processor 3000+
stepping : 2
cpu MHz : 2208.764
cache size : 128 KB
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow pni lahf_lm
bogomips : 4422.24
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp tm stc
|
Estou usando a flag -msse3 , meu sistema foi contruido do stage 3 , mais sempre com essa flag no make.conf , queria saber se mesmo a instrucao não sendo reconhecida no /proc/cpuinfo eu estou tirando proveito dela ? Queria saber tb porque meu processador que contem a sse3 não foi reconhecido com tal flag , valeu
| Code: | | CFLAGS="-mtune=k8 -O2 -pipe -msse3" |
_________________ Amd64 \o/ |
|
| Back to top |
|
 |
MetalGod Bodhisattva


Joined: 10 Mar 2003 Posts: 816 Location: Portugal
|
Posted: Tue Mar 21, 2006 10:09 pm Post subject: |
|
|
segundo isso nao tens sse3 (nem conheço semprons com sse3) logo nao vale a pena adicionar nem deves. _________________ ex: Gentoo Linux Developer: amd64 media-optical sound gnome
ex: Portuguese Moderator
------------------------------------------------------------------------------
God Doesn't Play Dice |
|
| Back to top |
|
 |
S4M4R0N3 n00b

Joined: 21 Jun 2005 Posts: 37 Location: Brazil
|
Posted: Tue Mar 21, 2006 10:37 pm Post subject: |
|
|
| MetalGod wrote: | | segundo isso nao tens sse3 (nem conheço semprons com sse3) logo nao vale a pena adicionar nem deves. |
Os semprons socket 754 baseados no nucleo Venice dos 939 , possuem as instruçoes sse3. O nucleo eh chamado de palermo revisão E6, o windows o reconhece perfeitamente , queria saber porque não é reconhecido aqui no linux , detalhe ele esta overclockado por isso esta com 2.2 mhz , a velocidade real eh de 1.8 Ate mais _________________ Amd64 \o/ |
|
| Back to top |
|
 |
MetalGod Bodhisattva


Joined: 10 Mar 2003 Posts: 816 Location: Portugal
|
Posted: Wed Mar 22, 2006 2:14 am Post subject: |
|
|
pronto ja fiquei a saber mais qq coisa heheeh. Eu reconheço que nao sou grande entendido de hardware mas segundo o cpuinfo nao possues sse3.
| Code: | darksystem muine # cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 7
model name : AMD Athlon(tm) 64 Processor 3500+
stepping : 10
cpu MHz : 2211.371
cache size : 512 KB
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext lm 3dnowext 3dnow
bogomips : 4425.55
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp
|
quais sao as opçoes que tens no kernel para o processador ? _________________ ex: Gentoo Linux Developer: amd64 media-optical sound gnome
ex: Portuguese Moderator
------------------------------------------------------------------------------
God Doesn't Play Dice |
|
| Back to top |
|
 |
S4M4R0N3 n00b

Joined: 21 Jun 2005 Posts: 37 Location: Brazil
|
Posted: Wed Mar 22, 2006 5:21 am Post subject: |
|
|
Realmente o linux não está reconhecendo a flag, porém o windows sim, veja:
http://www.portalcatita.com/temp/sempron-sse3-809x607.jpg
E aqui esta o meu .config
| Quote: |
#
# Processor type and features
#
CONFIG_MK8=y
# CONFIG_MPSC is not set
# CONFIG_GENERIC_CPU is not set
CONFIG_X86_L1_CACHE_BYTES=64
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_TSC=y
CONFIG_X86_GOOD_APIC=y
# CONFIG_MICROCODE is not set
CONFIG_X86_MSR=y
CONFIG_X86_CPUID=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_MTRR=y
# CONFIG_SMP is not set
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y
CONFIG_HPET_TIMER=y
CONFIG_X86_PM_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
CONFIG_GART_IOMMU=y
CONFIG_SWIOTLB=y
CONFIG_X86_MCE=y
CONFIG_X86_MCE_INTEL=y
CONFIG_X86_MCE_AMD=y
CONFIG_PHYSICAL_START=0x100000
# CONFIG_KEXEC is not set
CONFIG_SECCOMP=y
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_ISA_DMA_API=y
|
Se precisar de mais alguma informação pra fazer a analise so falar.
Ate mais _________________ Amd64 \o/ |
|
| Back to top |
|
 |
bbj Retired Dev

Joined: 24 Jan 2003 Posts: 36 Location: Brazil
|
Posted: Wed Mar 22, 2006 6:55 am Post subject: |
|
|
| S4M4R0N3 wrote: | Aproveitando a duvida aqui sobre SSE3 , queria saber:
cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 44
model name : AMD Sempron(tm) Processor 3000+
stepping : 2
cpu MHz : 2208.764
cache size : 128 KB
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow pni lahf_lm
bogomips : 4422.24
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp tm stc
|
Repare que você possui a "flag" pni, que significa "prescott new instructions" (bastante comentado na lkml, cujo nome foi escolhido por motivos históricos). Esta é a indicação de que você possui suporte a sse3. Portanto, você pode utilizar o -msse3. Não sei se trará um aumento de performance significativo, mas se isso lhe faz sentir melhor, "manda bala".
Boa sorte. |
|
| Back to top |
|
 |
MetalGod Bodhisattva


Joined: 10 Mar 2003 Posts: 816 Location: Portugal
|
Posted: Wed Mar 22, 2006 1:58 pm Post subject: |
|
|
bem ja estou a aprender qq coisa... realmente nao sabia disto.  _________________ ex: Gentoo Linux Developer: amd64 media-optical sound gnome
ex: Portuguese Moderator
------------------------------------------------------------------------------
God Doesn't Play Dice |
|
| Back to top |
|
 |
bbj Retired Dev

Joined: 24 Jan 2003 Posts: 36 Location: Brazil
|
Posted: Wed Mar 22, 2006 11:37 pm Post subject: |
|
|
Eu acabei me esquecendo de deixar um comentário sobre o SSE no manual do gcc. Eu acho o manual um pouco obscuro em certas partes, as quais me deixam em dúvida. O manual diz:
For the i386 compiler, you need to use -march=cpu-type, -msse
or -msse2 switches to enable SSE extensions and make this
option effective. For the x86-64 compiler, these extensions
are enabled by default.
prescott
Improved version of Intel Pentium4 CPU with MMX, SSE, SSE2 and
SSE3 instruction set support.
nocona
Improved version of Intel Pentium4 CPU with 64-bit extensions,
MMX, SSE, SSE2 and SSE3 instruction set support.
Eu interpretaria o seguinte: já que determinadas variantes possuem suporte a estas "flags", elas seriam habilitadas com o uso do -march=variante. No meu caso, tenho um P4 prescott, onde utilizo apenas: | Code: | | CFLAGS="-march=prescott -O2 -pipe" |
Acredito (mas não tenho certeza) que o SSE3 está embutida (-msse3) com o uso da variável acima. No caso do k8, opteron, athlon64 e athlon-fx, o manual não diz sobre SSE3, mas sabemos que há suporte em alguns hardwares (nesses casos, eu interpretaria que haveria a necessidade de se explicitar o -msse3).
De tudo isso, eu poderia dizer, por experiência e benchmarks, que a utilização do -march, ao invés do -mtune/-mcpu, traria um maior benefício ao desempenho do que a utilização isolada de alguma outra "flag", como -msse3. |
|
| Back to top |
|
 |
S4M4R0N3 n00b

Joined: 21 Jun 2005 Posts: 37 Location: Brazil
|
Posted: Thu Mar 23, 2006 5:47 am Post subject: |
|
|
Ola a todos,
| Quote: | | Repare que você possui a "flag" pni, que significa "prescott new instructions" (bastante comentado na lkml, cujo nome foi escolhido por motivos históricos). Esta é a indicação de que você possui suporte a sse3. Portanto, você pode utilizar o -msse3. Não sei se trará um aumento de performance significativo, mas se isso lhe faz sentir melhor, "manda bala". |
Eu realmente me sinto bem de ter o sse3 , serve em muito para emulacao de plataformas
Sobre isto:
Eu uso | Code: | | CFLAGS="-mtune=k8 -O2 -pipe -msse3" |
http://gcc.gnu.org/onlinedocs/gcc-3.4.6/gcc/i386-and-x86_002d64-Options.html#i386-and-x86_002d64-Options
Veja que lá esta especificado que:
| Code: | k8, opteron, athlon64, athlon-fx
AMD K8 core based CPUs with x86-64 instruction set support. (This supersets MMX, SSE, SSE2, 3dNOW!, enhanced 3dNOW! and 64-bit instruction set extensions.) |
A flag k8 não possue a flag sse3 como padrão, penso eu, que seja para ter compatibilidade com processadores que não o possue como o 3500+ do amigo a cima. Ao contrario da flag prescott, que:
| Code: | prescott
Improved version of Intel Pentium4 CPU with MMX, SSE, SSE2 and SSE3 instruction set support. |
Resumindo eu uso -msse3 por vi ali que a flag k8 por si so não possue a SSE3.
Agora referente a desempenho, gostaria de perguntar:
Pelo que eu entedi , para o melhor desempenho deveriamos usar -march=cpu-type , como ressaltou bbj o pois essa inclue a -mtune e a -mcpu.
| Code: | -march=cpu-type
Generate instructions for the machine type cpu-type. The choices for cpu-type are the same as for -mtune. Moreover, specifying -march=cpu-type implies -mtune=cpu-type.
-mcpu=cpu-type
A deprecated synonym for -mtune. |
bbj Queria perguntar: Quais programas vc usa para fazer benchmarks no linux ?
E que motivos historicos são esses ?
Moro em Viçosa - Mg , bem pertim de mineiro =) _________________ Amd64 \o/ |
|
| Back to top |
|
 |
bbj Retired Dev

Joined: 24 Jan 2003 Posts: 36 Location: Brazil
|
Posted: Thu Mar 23, 2006 3:06 pm Post subject: |
|
|
| S4M4R0N3 wrote: |
bbj Queria perguntar: Quais programas vc usa para fazer benchmarks no linux ? |
Eu uso o app-benchmarks/acovea.
| S4M4R0N3 wrote: |
E que motivos historicos são esses ? |
Você pode ver aqui.
| S4M4R0N3 wrote: | | Moro em Viçosa - Mg , bem pertim de mineiro =) |
Eu vejo bastante gente de Viçosa aqui na minha Universidade (UNIFEI, ex EFEI). |
|
| Back to top |
|
 |
|