PDA

View Full Version : MMX e altre funzionalità disabilitate, forse non sapendolo riguarda anche voi


fcr756
09-06-2009, 13:09
Ho visto che MMX nella mia CPU è un'istruzione disabilitata :muro:

In origine me ne ero accorto dal file di log del gioco crysis(qui sotto) e credevo che fosse un caso isolato, poi ho visto che non è cosi e che il prblema rimaneva negli altri files di log; facendo una ricerca ho visto che con alcune cpu (sia intel che amd) ''si deve abilitare'', perché ''windows non è in grado di riconoscere la funzionalità e di conseguenza nessun programma usera le mmx oppure sse''
Bisogna farlo manualmente, ma non ho capito come, alcuni dicono di avere avuto boost prestazionali con applicazioni e giochi

(non ho la piu pallida idea di cosa siano e a che servano le MMX, ma il fatto di averle disabilitate non mi va a genio)

dicono che bisogna inserire questi parametri manualmente in un files di sistema situato nei leggendari files di windows

r_mmx "1"
r_sse "1"
r_sse2 "1"
r_sse3 "1"
.....
.....
r_3dnow "1" (AMD CPU's only)
.....
.....


Qualcuno sa come si fa oppure dove mettere questi parametri?:mc:

(non ditemi nei files di crysis, perche non vengono riconosciute come variabili e poi ho gia provato, quelle riguardano qualche fiel di windows)

Questo è una parte del log di crysis che forse avrete anche voi in questo stato:

--- CPU detection ---
Total number of logical processors: 4
Number of available logical processors: 4

Processor 0:
CPU: Intel Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz
Family: 6, Model: 15, Stepping: 11
FPU: On-Chip
CPU Speed (estimated): 2400.076759 MHz
MMX: not present:cry:
SSE: present
3DNow!: not present
Serial number not present or disabled

Processor 1:
CPU: Intel Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz
Family: 6, Model: 15, Stepping: 11
FPU: On-Chip
CPU Speed (estimated): 2400.081114 MHz
MMX: not present:cry:
SSE: present
3DNow!: not present
Serial number not present or disabled

Processor 2:
CPU: Intel Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz
Family: 6, Model: 15, Stepping: 11
FPU: On-Chip
CPU Speed (estimated): 2400.078183 MHz
MMX: not present:cry:
SSE: present
3DNow!: not present
Serial number not present or disabled

Processor 3:
CPU: Intel Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz
Family: 6, Model: 15, Stepping: 11
FPU: On-Chip
CPU Speed (estimated): 2399.933186 MHz
MMX: not present:cry:
SSE: present
3DNow!: not present
Serial number not present or disabled

Total number of system cores: 4
Number of cores available to process: 4


Cambiando manualmente da not present a present, le cose non cambiano, infatti il file di log viene rigenerato ad ogni avvio



Inoltre un altro errore riguarda il clock della cpu, infatti cambiando il moltiplicatore e fsb, windows ritiene che la mia (e forse anche la vostra) vada al moltiplicatore massimo

infatti:
se metto 8x450 (3600mhz effettivi)
windows leggera 4050mhz e calibrera le risorse in base al clock rilevato

Cio genera due esiti diversi:
nei dual li appesantisce diminuendo le performances
nei quad li appesantisce e... li sfrutta di piu!

cioe se con 400x9 la cpu è caricata fissa al 50% perche il programma è scritto per i dual
mettendo 600x6 la cpu verra caricata al 75%, il che è significativo (perche windows crede di avere 5400x4mhz a disposizione e calibra per 5400x2, quando i primi 2 cores non bastano piu inizia a caricare il terzo core)

cio spiega anche l'anomalia di alcuni che si vedevano sfruttare piu di 2 cores nelle applicazioni fatte per i dual e altri no

comunque sia spero di essere stato utile e la domanda resta comunque quella da titolo:
Qualcuno sa come si fa ad abilitare le varie funzionalita oppure dove mettere quei parametri?

jrambo92
10-06-2009, 16:16
Vorresti dire che da 14 anni circa che esistono le MMX, windows ancora non le supporta? :stordita: :rolleyes:

checo
10-06-2009, 16:31
Inoltre un altro errore riguarda il clock della cpu, infatti cambiando il moltiplicatore e fsb, windows ritiene che la mia (e forse anche la vostra) vada al moltiplicatore massimo

infatti:
se metto 8x450 (3600mhz effettivi)
windows leggera 4050mhz e calibrera le risorse in base al clock rilevato

Cio genera due esiti diversi:
nei dual li appesantisce diminuendo le performances
nei quad li appesantisce e... li sfrutta di piu!

cioe se con 400x9 la cpu è caricata fissa al 50% perche il programma è scritto per i dual
mettendo 600x6 la cpu verra caricata al 75%, il che è significativo (perche windows crede di avere 5400x4mhz a disposizione e calibra per 5400x2, quando i primi 2 cores non bastano piu inizia a caricare il terzo core)

cio spiega anche l'anomalia di alcuni che si vedevano sfruttare piu di 2 cores nelle applicazioni fatte per i dual e altri no

comunque sia spero di essere stato utile e la domanda resta comunque quella da titolo:
Qualcuno sa come si fa ad abilitare le varie funzionalita oppure dove mettere quei parametri?

non ho capito nulla tranne che mi sa di boiata letta su donna moderna!

fcr756
10-06-2009, 19:41
non che non le supporta, ma che non riconosce il supporto a tutte le cpu, tra queste il q6600:cry:, un esempio puoi verificare con il log del gioco crysis in c\documents and settings\......\....\..\documenti\my games\crysis\game.log
puoi anche verificarlo con altri log dei vari programmi
(ho citato crysis, perche c e l hanno 9 utenti su 10)

per quanto riguarda le frequenze anche io ero scettico, ma ho provato e funziona davvero
cioe se metto tipo 7x400 (2800)avro carichi 3 cores (2 al 100% e l'altro a tre quarti), se metto invece 9x312(2800) avro carichi 2 cores al 100%, mentre gli altri 2 saranno allo 0%

checo
10-06-2009, 21:59
non che non le supporta, ma che non riconosce il supporto a tutte le cpu, tra queste il q6600:cry:, un esempio puoi verificare con il log del gioco crysis in c\documents and settings\......\....\..\documenti\my games\crysis\game.log
puoi anche verificarlo con altri log dei vari programmi
(ho citato crysis, perche c e l hanno 9 utenti su 10)

per quanto riguarda le frequenze anche io ero scettico, ma ho provato e funziona davvero
cioe se metto tipo 7x400 (2800)avro carichi 3 cores (2 al 100% e l'altro a tre quarti), se metto invece 9x312(2800) avro carichi 2 cores al 100%, mentre gli altri 2 saranno allo 0%

ma se metti cosa e dove? cmq se un applicazione è single thread sempre una core al 100% usa al max non esiste che faccia un fork perchè tu setti pippo x paperinomhz

fcr756
10-06-2009, 23:06
@checo
si è giusto quello che dici, ma è un errore di windows vista e 7, che non riconoscono la frequenza corretta, ora per esempio sto a 466x7(3262mhz), ma windows mi dice che sto a 4194mhz.

vediamo cosa succede:


CASO 1
Ora facendo l'esempio con una generica vecchia] applicazione che usa 1 core[/COLOR], essa verra caricata per usufuire di 4194mhz. fisicamente è impossibile e in teoria non dovrebbe partire o se partisse lo farebbe con rallentamenti.
qui entra in gioco uno strano fenomeno che hanno osservato su un forum tedesco:dato che il primo core puo solamente fare 3262 operazioni, le restanti altre 932 vengono caricate sul secondo core, per cui mi ritrovero con 1 core al 100% e il 2°core al 28%. Cio risulta vantaggioso, perche se in un software la cpu è un limite, io avro un 28% in piu.

spiegando in parole diverse:
se metto
362x9 avro la cpu sfruttata al 25%
466x7 avro la cpu sfruttata al 25+7%
Quindi cio è vantaggioso sia per i dual che per i quad, ma svantaggiosa per i processori single core


CASO 2Con un applicazione che sfrutta 2 cores la situazione è questa:
il software chiede a win quanta potenza ha a disposizione, win dira 4194x2, l'hardware ripartizionera in 3262+3262+1864+0 (rispettivamente nei cores 1-2-3-4)
risultato:
se metto
362x9 avro la cpu sfruttata al 50%(usa solo 2 cores)
466x7 avro la cpu sfruttata al 50+14%(usa 2 cores + 1 al 56%)
Cio è svantaggioso per i dual, ma vantaggioso per i triple e i quad

questa è la spiegazione per cui alcuni utenti vedevano ai quad sfruttati solo per 2 cores con gli altri che dormivano, altri utenti (che magari avevano la cpu in OC con moltiplicatore basso) invece vedevano che sfruttava i 4 cores(in realta solo 3), male ma sfruttati
A chi dare ragione? In realta avevano ragione tutt'e due


CASO 3un software ultra ottimizzato che usa tutti i cores a disposizione:
windows dira che io ho a disposizione 4194x4, in realta ne ho 3262x4
se metto
362x9 avro la cpu sfruttata al 100%(usa tutti i cores)
466x7 avro la cpu sfruttata al 100+28%(ora da non sfruttata ho la cpu sovrasfruttata)
Cio è svantaggioso per tutte le cpu a meno che non sia ad esempio la vga che faccia da limite

Cio spiega i peggioramenti visti da alcuni utenti in GTAIV dopo aver overcloccato la cpu:
''Ma come ora ho la frequenza della cpu pari ad 1 volta e mezza e il gioco va peggio di prima? è mai possibile cio?''
Risposta:Si è possibile

---------------------------------------------
quindi in definitiva, poiche oggi i softwares che usano i quad sono poche si consiglia un overclock con moltiplicatore basso solo per i quad, ma non per i dual, poiche cio peggiorerebbe le cose a meno che non si notino nessuna differenza perche la vga fa da limite prima della cpu

Monosinaptico
11-06-2009, 00:05
quindi che bisogna fare per ovviare al problema in definitiva?
Mi interessa in quanto devo installare la rc2 di seven...

checo
11-06-2009, 07:03
a parte che a me vista riconosce perfettamente la cpu, se un applicazione è single thread non è fisicamente possibile divideral su due core come dici tu, magari fosse così semplice!
hai qualche link su sta cosa?

jrambo92
11-06-2009, 09:05
a parte che a me vista riconosce perfettamente la cpu, se un applicazione è single thread non è fisicamente possibile divideral su due core come dici tu, magari fosse così semplice!
hai qualche link su sta cosa?

quoto, se fosse possibile attribuire più thread ad un'applicazione, non staremmo quì a sbatterci la testa per trovare applicazioni multi-thread :doh:

checo
11-06-2009, 09:35
aggiungo che lo scheduler non assegna potenza in mhz alla cpu, al max assegna priorità, poi sta al thread sfruttare una 2 o 4 cpu come crede.
al max il s.o. aumentando il carico al sopra una determinata soglia su un core ne aumenta la frequenza concordemente al risparmio energetico.
quello detto sopra non sta nè in cielo nè in terra

jrambo92
11-06-2009, 09:40
aggiungo che lo scheduler non assegna potenza in mhz alla cpu, al max assegna priorità, poi sta al thread sfruttare una 2 o 4 cpu come crede.
al max il s.o. aumentando il carico al sopra una determinata soglia su un core ne aumenta la frequenza concordemente al risparmio energetico.
quello detto sopra non sta nè in cielo nè in terra

sante parole. :ave: