Skocz do zawartości

Rozwiązanie problemu słabej wydajności kart nVidia


Marucins
 Udostępnij

Rekomendowane odpowiedzi

Dzięki **oswaldini**!

 

 

Problem słabej wydajności psuł wiele krwi użytkownikom tuż zaraz po pojawieniu się aktualizacji 10.6.4. Apple podszedł do tego bardzo błaho, wypuszczając aktualizację driverów która tak naprawdę nic nie wnosiła.

 

Rozwiązanie padło oczywiście ze strony OSX86 - a gdzie indziej są tęgie głowy :)

 

 

Wygląda to tak:

 

:arrow:Przyczyna błędu (Geneza) :evil:

 

10.6.4 wprowadził w managerze zarządzania energią a co za tym idzie odbiło się to na wydajności stan Level 0 - jest to najniższy stan taktowania karty zawsze idzie on w parze z wydajnością. Stan jest przyznany zazwyczaj dla nic nie robienia na naszym sprzęcie (zaraz po nim mamy Level 1, 2 a czasem nawet 3 - odpowiednio użycie dla grafiki 2D, 3D i trym HiPower)

 

:arrow:Rozwiązanie problemu (Solucja) :idea:

 

1. Sposób

 

Edytujemy nasz kext

 

S/L/E/AppleGraphicsPowerManagement.kext/Contents/Info.plist's

 

sekcja MacPro4,1

 

zmieniamy Vendor10deDevice05e2 na Vendor10deDevice05e3

 

05e3 odpowiada karcie GTX285

 

na dole w załączniku, pliku "info nVidia Device" zamieściłem resztę ID karty nVidia

 

To rozwiązanie pozwala wskoczyć na najwyższe poziomy taktowania zegarów. Jak i obniżenia poziomy jak tylko przestajemy wykorzystywać zasoby karty.

 

1.1 Problem

Lecz pojawił się problem (prawdopodobnie niedopracowanie ze strony Apple) AppleGraphicsPowerManagement. Mianowicie po przejściu w stan uśpienia i obudzenia zegary jądra jest obudzony na poziomu Level 0. Pamięć jak i shadery na zostają na wysokim (tym który został włączony zaraz przez zaśnięciem naszego komputerka).

 

Jednakże wystarczy zacząć korzystać z naszego systemu (obciązyc karte a nastepnie dac jej odpocząć) poziomy wszystkich zegarów znów przeskoczą na Level 0

 

 

2. Sposób

 

Usuwamy plik

 

S/L/E/AppleGraphicsPowerManagement.kext

 

wiąże się to z dużym zużyciem energii gdyż stany zawsze będą na najwyższym Levelu czyli 2 albo 3

 

3. Sposób

 

Edytujemy wpisy w smbios.plist i ustawiamy rozpoznawania Mac'a na MacPro3,1

 

podobno tutaj także zegary będą chodzić na maksymalnych obrotach

 

4. Sposób

 

Zastępujemy w S/L/E AppleGraphicsPowerManagement.kext kextem z 10.6.0 / 10.6.2 / 10.6.3

 

:arrow:Monitoring (Sprawdzenie) :!:

 

Temperaturę jak i taktowania zegarów możemy monitorować za pomocą nvclock

 

http://www.projectosx.com/forum/index.php?showtopic=1246

 

:arrow:Pliki (Download) 8-)

 

http://dl.dropbox.com/u/6372548/OSX86/AppleGraphicsPowerManagement.kext%2010.6.2.zip

http://dl.dropbox.com/u/6372548/OSX86/info%20nVidia%20Device.txt

AppleGraphicsPowerManagement.kext 10.6.2.zip

info nVidia Device.zip

Odnośnik do komentarza
Udostępnij na innych stronach

Powierdzam działanie.

 

Ja zrobiłem trochę inaczej:

 

Żeby nie modyfikować orginalnego kexta zrobiłem LegacyAGPM.kext.

Aktualna zawartość:

<?xml version="1.0" encoding="UTF-8"?> 



CFBundleDevelopmentRegion
English
CFBundleIdentifier
com.apple.driver.LegacyAGPM
CFBundleInfoDictionaryVersion
6.0
CFBundleName
LegacyAppleGraphicsPowerManagement
CFBundlePackageType
KEXT
CFBundleSignature
????
CFBundleVersion
100.8.15
IOKitPersonalities

AGPM

CFBundleIdentifier
com.apple.driver.AGPM
IOClass
AGPMController
IONameMatch
AGPMEnabler
IOProviderClass
IOPlatformPluginDevice
MacBookPro5,1

Vendor10deDevice0609

Heuristic

ID
0
IdleInterval
250
SensorOption
1
SensorSampleRate
4
TargetCount
5
Threshold_High

93
93
93
100

Threshold_Low

0
97
97
97


LogControl
0
control-id
18

default-control-id
18



OSBundleLibraries

com.apple.iokit.IOGraphicsFamily
1.1
com.apple.iokit.IOPCIFamily
1.0
com.apple.kpi.iokit
8.3.1
com.apple.kpi.libkern
8.3.1
com.apple.kpi.mach
8.3.1

OSBundleRequired
Local-Root


 

I skopiowałem do E/E.

Teraz PowerManagement działa, zegary nie są takie same jak pokazane w nvclock, ale najważniejsze że się "ruszają".

 

Po tym zabiegu zyskałem 30 min pracy na baterii i kilka punktów w benchach.

 

Pozdrawiam

 

Ps. W załączniku kext.

LegacyAGPM.kext.zip

Odnośnik do komentarza
Udostępnij na innych stronach

Co do tej ATI sprawdzaliście to:

 

http://support.apple.com/kb/DL1065

 

Jeśli zainstalujecie cały pakiet, koniecznym będzie prawdopodobnie instalacja jasności/kontrastu ekranu (u mnie po instalacji tej łatki ekran był bardzo jaskrawy)

 

http://support.apple.com/kb/DL1080

Odnośnik do komentarza
Udostępnij na innych stronach

Co do tej ATI sprawdzaliście to:

 

http://support.apple.com/kb/DL1065

 

Jeśli zainstalujecie cały pakiet, koniecznym będzie prawdopodobnie instalacja jasności/kontrastu ekranu (u mnie po instalacji tej łatki ekran był bardzo jaskrawy)

 

http://support.apple.com/kb/DL1080

 

zasysam. jak masz skonfigurowany smbios? imac czy macpro3,1?

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 miesiące temu...

Mam problem z tym kextem.

W wersji z 10.6.5 karta działa na niskiej wydajności (GPU clock: 297.000 MHz, Shader: 1080.000 MHz/Memory:410.400 MHz).

 

Gdy przywrócę wersję z 10.6.2 Karta cały czas działa na najwyższych obrotach: (gpu 529MHz/shader 1300MHz/memory 410MHz)

 

Czy istnieje jakiś sposób na poprawę tego?

 

Karta:

 

01:00.0 VGA compatible controller [0300]: nVidia Corporation G98 [GeForce 9200M GS] [10de] (rev a1) (prog-if 00 [VGA controller]) 
Subsystem: Samsung Electronics Co Ltd Unknown device [144d] 
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- 	Latency: 0
Interrupt: pin A routed to IRQ 16
Region 0: Memory at ce000000 (32-bit, non-prefetchable) 
Region 1: Memory at d0000000 (64-bit, prefetchable) 
Region 3: Memory at cc000000 (64-bit, non-prefetchable) 
Region 5: I/O ports at 2000
Capabilities: [60] Power Management version 3
	Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) 
	Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [68] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable+
	Address: 00000000fee00000  Data: 4094
Capabilities: [78] Express (v2) Endpoint, MSI 00
	DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <256ns, L1 <4us
		ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
	DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
		RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+
		MaxPayload 128 bytes, MaxReadReq 512 bytes
	DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
	LnkCap:	Port #0, Speed 5GT/s, Width x16, ASPM L0s L1, Latency L0 <256ns, L1 <1us
		ClockPM- Suprise- LLActRep- BwNot-
	LnkCtl:	ASPM L0s L1 Enabled; RCB 128 bytes Disabled- Retrain- CommClk+
		ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
	LnkSta:	Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
Capabilities: [100] #10de
Capabilities: [06e] #fee0

 

nvclock (na 10.6.5):

-- General info --
Card: 		nVidia Geforce 9200M GS
Architecture: 	G98 A2
PCI id: 	0x6e8
GPU clock: 	297.000 MHz
Bustype: 	PCI-Express

-- Shader info --
Clock: 1080.000 MHz
Stream units: 16 (1b) 
ROP units: 4 (1b) 
-- Memory info --
Amount: 	512 MB
Type: 		128 bit DDR2
Clock: 		410.400 MHz

-- PCI-Express info --
Current Rate: 	16X
Maximum rate: 	16X

-- Smartdimmer info --
Backlight level: 80%

-- Sensor info --
Sensor: GPU Internal Sensor
GPU temperature: 56C

-- VideoBios information --
Version: 62.98.3c.00.15
Signon message: Samsung Lyon NB9M-GS VGA BIOS
Performance level 0: gpu 275MHz/shader 550MHz/memory 250MHz/0.90V/100%
Performance level 1: gpu 500MHz/shader 1000MHz/memory 410MHz/1.09V/100%
Performance level 2: gpu 529MHz/shader 1300MHz/memory 410MHz/1.09V/100%
VID mask: 3
Voltage level 0: 0.90V, VID: 0
Voltage level 1: 0.95V, VID: 1
Voltage level 2: 1.09V, VID: 2
Voltage level 3: 1.17V, VID: 3

 

nvclock (10.6.2):

-- General info --
Card: 		nVidia Geforce 9200M GS
Architecture: 	G98 A2
PCI id: 	0x6e8
GPU clock: 	570.856 MHz
Bustype: 	PCI-Express

-- Shader info --
Clock: 1404.000 MHz
Stream units: 16 (1b) 
ROP units: 4 (1b) 
-- Memory info --
Amount: 	512 MB
Type: 		128 bit DDR2
Clock: 		410.400 MHz

-- PCI-Express info --
Current Rate: 	16X
Maximum rate: 	16X

-- Smartdimmer info --
Backlight level: 80%

-- Sensor info --
Sensor: GPU Internal Sensor
GPU temperature: 59C

-- VideoBios information --
Version: 62.98.3c.00.15
Signon message: Samsung Lyon NB9M-GS VGA BIOS
Performance level 0: gpu 275MHz/shader 550MHz/memory 250MHz/0.90V/100%
Performance level 1: gpu 500MHz/shader 1000MHz/memory 410MHz/1.09V/100%
Performance level 2: gpu 529MHz/shader 1300MHz/memory 410MHz/1.09V/100%
VID mask: 3
Voltage level 0: 0.90V, VID: 0
Voltage level 1: 0.95V, VID: 1
Voltage level 2: 1.09V, VID: 2
Voltage level 3: 1.17V, VID: 3

Odnośnik do komentarza
Udostępnij na innych stronach

**janek202** mam identycznie. Nic nie pomogło.

 

Zmieniałem wpisy odnośnie Vendor Device - z tym też nici :(

Z resztą jak przyjrzę się 10.6.2 to moja karta nie jest tam dodana, powiedziałbym iż niemal identycznie jak na 10.6.5, a jednak coś powoduje że chodzi tak a nie inaczej...

 

10.6.2

-- General info --
Card: 		GT200b [GeForce GTX 285] 
Architecture: 	GT200 B1
PCI id: 	0x05e3
Subvendor id: 	0x3842
GPU clock: 	702.000 MHz
Bustype: 	PCI-Express

-- Shader info --
Clock: 1512.000 MHz
Stream units: 240 (11111111b) 
ROP units: 32 (11111111b) 
-- Memory info --
Amount: 	1024 MB
Type: 		512 bit DDR3
Clock: 		1296.000 MHz

-- PCI-Express info --
Current Rate: 	16X
Maximum rate: 	16X

-- Sensor info --
Sensor: Analog Devices ADT7473
Board temperature: 51C
GPU temperature: 62C
Fanspeed: 686 RPM
Fanspeed mode: manual
PWM duty cycle: 40.0%

-- VideoBios information --
Version: 62.00.58.00.03
Signon message: GT200 P892 SKU 0052 VGA BIOS
Performance level 0: gpu 300MHz/shader 600MHz/memory 100MHz/1.05V/100%
Performance level 1: gpu 400MHz/shader 800MHz/memory 300MHz/1.05V/100%
Performance level 2: gpu 702MHz/shader 1512MHz/memory 1296MHz/1.15V/100%
VID mask: 1
Voltage level 0: 1.05V, VID: 1
Voltage level 1: 1.15V, VID: 0

 

 

Zastanawiałem się jeszcze nad edycja BIOS,u już wcześniej to robiłem TU ale w drugą stronę. Tym razem kartę przechrzcić na Vendor10deDevice05e2 jakoby karta była wykrywana jako GTX260 - ale czy to dobry pomysł.

 

 

//EDIT

 

Raz jeszcze zabawiłem się w grzebanie no i coś wyklarowało się :) Prawdopodobnie Apple sam sabotuje swój system w formie - to już nie jest dobry sprzęt, trzeba wymienić - jak to dobrze że Apple ma w swojej ofercie kolejne modele. Wymienię na inny, nowy, lepszy....droższy.

 

Walnąłem AppleGraphicsPowerManagement z 10.6.0 :) do tego wprowadziłem własne wartości Vendor10deDevice05e3 i okazało się że działa. Zegary skaczą tak jak trzeba, stan sleep do przebudzenia wydaje się też działać pożądanie.

 

Opisałem tez kolejny problem razem z pojawieniem się 10.6.5 - smużenie (nieodłączny wróg nr jeden w rozrywce) - Tego tez już nie ma :D

 

LINK:

http://dl.dropbox.com/u/6372548/OSX86/AppleGraphicsPowerManagement.kext%2010.6.0.zip

AppleGraphicsPowerManagement.kext.zip

Odnośnik do komentarza
Udostępnij na innych stronach

Marucins, jesteś wielki! =D> To działa. Kext z 10.6.0 z poprawioną plistą na mój model grafiki.

nVclock:

Stan Idle:

-- General info --
Card: 	     nVidia Geforce 9200M GS
Architecture:  G98 A2
PCI id: 	   0x6e8
GPU clock: 	297.000 MHz
Bustype: 	  PCI-Express

-- Shader info --
Clock:	     1080.000 MHz
Stream units:  16 (1b) 
ROP units:     4 (1b) 
-- Memory info --
Amount: 	   512 MB
Type:          128 bit DDR2
Clock: 		249.748 MHz

Obciążenie:

-- General info --
Card: 	     nVidia Geforce 9200M GS
Architecture:  G98 A2
PCI id: 	   0x6e8
GPU clock: 	570.856 MHz
Bustype: 	  PCI-Express

-- Shader info --
Clock:	     1404.000 MHz
Stream units:  16 (1b) 
ROP units:     4 (1b) 
-- Memory info --
Amount: 	   512 MB
Type:          128 bit DDR2
Clock: 		410.400 MHz

Karta poprawnie przechodzi w wyższe tryby(chyba nawet się podkręca, taktowania są wyższe, niż zapisane w profilach) i powraca do niższych, gdy nie trzeba wydajności:

-- VideoBios information --
Version: 62.98.3c.00.15
Signon message: Samsung Lyon NB9M-GS VGA BIOS
Performance level 0: gpu 275MHz/shader 550MHz/memory 250MHz/0.90V/100%
Performance level 1: gpu 500MHz/shader 1000MHz/memory 410MHz/1.09V/100%
Performance level 2: gpu 529MHz/shader 1300MHz/memory 410MHz/1.09V/100%
VID mask: 3
Voltage level 0: 0.90V, VID: 0
Voltage level 1: 0.95V, VID: 1
Voltage level 2: 1.09V, VID: 2
Voltage level 3: 1.17V, VID: 3

Odnośnik do komentarza
Udostępnij na innych stronach

  • 4 tygodnie później...
  • 6 miesięcy temu...
Odnawiam temat, bo jakoś wcześniej się temu nie przyglądałem... janek202, czy tę sprawę na 10.6.8 tak samo rozwiązałeś? Bo właśnie odpaliłem nvclock i mam wszystko na max :)

Tak.

Wystarczy wkleić takie coś w Info.plist AGPM.kext. Zamieniasz wpis od MacBookPro5,1. Jak będę miał więcej czasu, to zrobię legacy kexta. Nie trzeba przywracać żadnych starych wersji.

MacBookPro5,1

Vendor10deDevice06e8

Heuristic

ID
0
IdleInterval
250
SensorOption
1
SensorSampleRate
4
TargetCount
5
Threshold_High

87
87
87
100

Threshold_Low

0
87
87
87


LogControl
0
control-id
18

default-control-id
18

Odnośnik do komentarza
Udostępnij na innych stronach

Kurde, albo mam coś nagrzebane, albo coś źle robię. Zassałem AGPM.kext z początku tematu (10.6.2) i wkleiłem to, co podałeś, ale nic się nie zmieniło. Więc zassałem drugi z 10.6.0, ale tam nic nie wklejałem, bo kext nie ma info.plist. Zostawiłem oryginał i nvclock podał mi coś takiego

-- General info --
Card: 		G98 [GeForce 9200M GS] 
Architecture: 	G98 A2
PCI id: 	0x06e8
Subvendor id: 	0x144d
GPU clock: 	182.248 MHz
Bustype: 	PCI-Express

-- Shader info --
Clock: 648.000 MHz
Stream units: 16 (1b) 
ROP units: 4 (1b) 
-- Memory info --
Amount: 	512 MB
Type: 		128 bit DDR2
Clock: 		999.000 MHz

Nie wiem, czy tak zostawić?

 

[ Dodano: 2011-06-29, 12:54 ]

Dobra, wróciłem do polecanej wersji i otrzymałem taki oto wynik :)

-- General info --
Card: 		G98 [GeForce 9200M GS] 
Architecture: 	G98 A2
PCI id: 	0x06e8
Subvendor id: 	0x144d
GPU clock: 	297.000 MHz
Bustype: 	PCI-Express

-- Shader info --
Clock: 1080.000 MHz
Stream units: 16 (1b) 
ROP units: 4 (1b) 
-- Memory info --
Amount: 	512 MB
Type: 		128 bit DDR2
Clock: 		249.748 MHz

Chyba jest ok, nie?

P.S. Chyba jednak nie :( W Shader info Clock nie schodzi poniżej 1080 MHz.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 miesiące temu...

Witam

 

Czy działa wam ta metoda pod 10.7.1?

Teraz zauważyłem, że u mnie karta ciągle działa na full obrotach.

 

Próbowałem edytować plik Info.plist wewnątrz AppleGraphicsPowerManagement.kext i nic, tzn. Niby wczytany, ale nie wczytuje wartości:

 

 

zrzut_ekranu_2011-08-31_o_13.44.42-1314791343.png

 

Przy użyciu LegacyAGPM.kext przygotowanego pod moją kartę wartości w IORegu pozostają standardowe.

 

Załączam kod z pliku Info.plist:

 

			MacBookPro5,1

Vendor10deDevice0609

Heuristic

ID
0
IdleInterval
250
SensorOption
1
SensorSampleRate
4
TargetCount
5
Threshold_High

0
85
75
100

Threshold_Low

0
0
95
98


LogControl
0
control-id
18

default-control-id
18

Czy ktoś ma podobnie ?

 

Pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

  • 4 miesiące temu...

Witam

Zauważyłem u siebie szybkie zużycie baterii i wiatrak trochę głośno pracuje pewnie od grafiki. Jakoś wcześniej mi to nie przeszkadzało ale w nocy jest to bardzo odczuwalne.

Jak w pierwszym poście dodałem wpis vendor swojej karty "Vendor10deDevice0cb1" w sekcji MacBookPro6,2 bo taki smbios posiadam. Niby ok ale po wybudzeniu już obroty nie schodzą tak nisko jak wcześniej.

Ściągnąłem więc kext od Janka z postu wyżej i zamieniłem 5,1 na 6,2 i Device na 0cb1 (jak moja karta), załadowałem do Extra i sytuacja się powtarza czyli po restarcie Ok ale już po wybudzeniu du..a

Proszę o jakieś wskazówki.

Pozdrawiam

P.s

Czy mam w ogóle wywalić AppleGraphicsPowerManagement.kext a zostawić AGPM.kext w Extra?

Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie
 Udostępnij

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Korzystanie z tej witryny, wymaga zakceptowanie naszych warunków Warunki użytkowania.