PDA

View Full Version : Athlon64 Overclocking Optimizer



Gogar
05-09-2005, 12:32 PM
Hi everybody i've been reading these forums for a while now but i've never actually posted here so first of all: greetings to everyone :)

I've recently made a script that allows you to fill in your maximum cpu, memory and htt speed, and it will try to find the best combinations of multipliers and dividers to run everything as close as possible to their maximum speed.

I've improved it a lot over the last few days since i read about how the memory clock is derived from the cpu frequency, it should now work correctly with half multipliers and memory dividers!

Update: I've added Rev E memory dividers to the script, the memory divider table, and the OC Browser. Hope everything is correct. :toast:

Athlon64 Overclocking Optimizer (http://math.gogar.com/athlon64.cgi)

Instructions:

1) Finding Maximum Values
First of all you should find out how far each component can overclock individually. You'll need to know your maximum HTT/FSB, CPU, RAM and optionally also the Hypertransport bus. People who don't know how to do this should have a read at this thread: :)
http://forums.anandtech.com/messageview.aspx?catid=28&threadid=1497607&frmKeyword=&STARTPAGE=1&FTVAR_FORUMVIEWTMP=Linear

2) Fill Them In
Once you know all the maximum speeds that your hardware can do you simply fill them in in the form called "Known Maximum Values" on the page and hit " GO! ".
A table with HTT, multiplier and divider combinations should appear. The table is sorted according to how close the values are to your maximums, the best options should at the top.

3) Importance Weighting
The table Importance Weighting is where you can de define how important it is to you that the specific component runs close to it's maximum. It will make the trade-offs based on those settings.
Generally the importance weighting is fine on the default setting.

cpu 100 (cpu is king)
ram 10 (also take the memory into consideration)
ht 0 (not important)
htt 0 (not important)

When a weight is set to 0 it will still favour the highest possible multi or divider, so for example it won't suggest to run your HT bus at 2x while it could run at 3x.

In most situations you shouldn't have to change the weights.

4) Important Notes

To get a large number of results to choose from, it is important that you enter a high HTT value. Please do actually test what it's maximum is, instead of just entering the HTT that you're currently using.

Some memory dividers aren't available on all motherboards, if a memory divider is suggested in the table that isn't available on your board, you will have to look further down in the table for combinations that do work with your motherboard.
Another option could be to look for a hacked bios.

Use of my script or it's results is completely at your own risk.

mushk1n
05-09-2005, 12:36 PM
looking good but what is that importance weighting and also i cant put my memory in a 9:10 divider :P

eshbach
05-09-2005, 12:45 PM
not bad. compile it down to an exe and post it in the Coder's Corner.

Gogar
05-09-2005, 12:47 PM
edit: info added to the top post :)

J-Mag
05-09-2005, 01:29 PM
HAH! All your Base if you are screwing up (I typed in 2.55 for the mhz instead of 2550)
I like it makes it so I don't have to think (which hurts at times)

Although, your avatar kinda weirds me out... (is it something I recognize???)

cantankerous
05-09-2005, 02:35 PM
nice one. Going to try it out now.

Major
05-09-2005, 03:21 PM
Thats pretty cool ;)

WeStSiDePLaYa
05-09-2005, 03:31 PM
bookmarked, but would like exe. :(

nebuchanezzar
05-09-2005, 03:59 PM
Nice..takes some scribbling outta the equation

Gogar
05-09-2005, 05:27 PM
The 9:10(183), 7:10(141) and 3:5(125) divider should be available on the DFI NF4 boards.
I don't know which other boards support them but perhaps it's possible to choose those dividers with a hacked bios for your board.

They are actually 11:12, 17:24 and 5:8 though, but i guess DFI didn't know that because AMD tech docs specify them as "Reserved".

Scrufdog
05-09-2005, 05:47 PM
looks good, i punched in my maxs and it told me what i am already running....good stuff

IvanAndreevich
05-09-2005, 06:01 PM
Very good idea :) I'll give it a go

Gogar
05-10-2005, 12:41 PM
Hey i'm getting a few strange results sometimes. It seems that sometimes the integer divider gets rounded up (by the A64) even though it already is a perfect integer

like 11* 200 / 183.333 = 12 exactly yet someone reported that it was 13
this doesn't make sense... i'm trying to find out for which multi&divider combinations this occurs.. and trying to find a pattern..

Also that 4*200 / (1:1)200 = 160 this might also be a result of the effect rather than that the minimum divider is 5

This is the list so far of combinations where the A64 seems to pick the wrong divider integer:

4 * 200 / 200 one too high (possibly because the lowest divider is 5)

5.5 * 200 / 183.33 one too high
11 * 200 / 183.33 one too high
16.5 * 200 / 183.33 one too high

5 * 200 / 141.66 one too low
10 * 200 / 141.66 one too low
15 * 200 / 141.66 one too low
20 * 200 / 141.66 one too low
25 * 200 / 141.66 one too low

Added these offsets to the script.

Here's a table (http://math.gogar.com/athlon64.cgi?showtable=1) of the memory speeds that the script uses. (similar to Oskar WU's)

:slapass: AMD for making errors. :D

quijonsith
05-10-2005, 02:12 PM
Favoritized. Nice job.

saaya
05-10-2005, 05:37 PM
hey gogar! welcome to XtremeSystems :toast:

very very nice tool! i thougt about asking somebody to make exactly a tool like that, you must have read my mind! :D :toast:

i stuck this thread :)
you should explain how to use it though in your first post :)

Mephisto
05-11-2005, 06:54 AM
excellent!....i´m going to test these steps....;)

ent
05-11-2005, 08:16 AM
Very nice tool Gogar, when I enterned my limits on first place it showed my current settings. GJ!

wickedld9
05-11-2005, 08:27 AM
Very cool. :toast: Now I don't have to wear out my calculator!

xavicl
05-11-2005, 11:18 AM
very nice tool mate, very useful! but i dont like the 0.5 multis :rolleyes:

Gogar
05-11-2005, 11:46 AM
very nice tool mate, very useful! but i dont like the 0.5 multis :rolleyes:
Why don't you like them?
I know everywhere they advise against using half multipliers, but i think i've finally figured out exactly how it all sticks together. It should be perfectly fine to use the suggestions with half multipliers.

They add a lot more possible combinations, so the bigger the chances are that someone will be able to run both their memory and cpu really close to the max. :) I don't see them as a bad thing anymore at all.

xavicl
05-11-2005, 12:06 PM
running half multipliers causes memory frequencies to run lower than expected, thus lowering overall system bandwidth

Gogar
05-11-2005, 02:18 PM
I know, but it takes that into account :)

When i enter 2700MHz as the maximum cpu speed and 250MHz for the ram, this is one of the entries in the table:
284 9.5 x 284 = 2698 9:10(183) x 284 = 245.27

You'll see that the memory speed it reports is correct. What you'd expect is 260,33MHz in this case.

ImportantAwareness89
05-11-2005, 03:49 PM
So what if you don't have DFI and you can't do 9/10? =(

Gogar
05-12-2005, 12:47 PM
So what if you don't have DFI and you can't do 9/10? =(
I've completed some small changes that will result in a larger number of combinations in general. Mostly lesser ones, but it should provide more good combinations incase the divider used in the top row isn't available on your board.

Just look further down in the table for multi/divider combinations that you like. :)

I feel it's pretty much perfect now.
If it doesn't show combinations that run your cpu and your memory close to their max it just isn't possible. Don't blame me lol. :p:

Ackbar
05-12-2005, 12:52 PM
Interesting... so I noticed you use a Sum Square Error for your "objective function". Are you using an optimization algorithm or just searching the solution space for the maximum?

Edit: It seems like you're just displaying all solutions... are you weeding out any of them?

Gogar
05-12-2005, 01:51 PM
Interesting... so I noticed you use a Sum Square Error for your "objective function". Are you using an optimization algorithm or just searching the solution space for the maximum?

Edit: It seems like you're just displaying all solutions... are you weeding out any of them?

Just searching the space. It only consider the dividers and multipliers around their required values for a range of the HTT frequency.

I don't think you can even use an optimization algorithm because the surface of the memory speed is very irregular. If you gradually increase the cpu multiplier the memory speed will go up and down all the time, it's not a smooth surface at all, so most optimization algorithms would likely get stuck in local minima's.

Ackbar
05-12-2005, 09:33 PM
Just searching the space. It only consider the dividers and multipliers around their required values for a range of the HTT frequency.

I don't think you can even use an optimization algorithm because the surface of the memory speed is very irregular. If you gradually increase the cpu multiplier the memory speed will go up and down all the time, it's not a smooth surface at all, so most optimization algorithms would likely get stuck in local minima's.

Interesting! I guess there aren't too many choices and they're all discrete so you don't have to worry about non-integer values. Very nice implementation! :toast: :woot:

S!1v3rB@cK_Dk
05-14-2005, 10:35 PM
I still dont understand this error thingy! Is it good to have a less higher amount of errors? And what do they actually stand for?

agenda2005
05-15-2005, 03:27 AM
Hey Gogar,
This is an excellent tool. Thanks for your time. I see that higher multi usually gives large error even when you run memory at 1:1. My system is SD 3700+ and prime 95 stable at 2700MHz at 246*11, memory top at 285MHz with 9 multi, but I would not use it past 277MHz for 24/7 operation, however my 10X multi is shaky, but the optimizer comes with best scenario for 10 multi which I also prefer.
Is there anyway you can factor in the multi as one of the important weights?

GazC
05-15-2005, 04:59 AM
I was hoping it'd give me a combo that would let me get the last few stable Mhz out of my ram, but it seems the current settings I use for benching is the best one. It's a useful too though and will be very useful for everyone, thanks.

Gogar
05-15-2005, 05:41 AM
I still dont understand this error thingy! Is it good to have a less higher amount of errors? And what do they actually stand for?
The lower the error, the better.
It's a weighted sum of the squared percentage it's below the maximum. And yeah, it's ok to think "wtf?" :)

The error value doesn't mean much at all by itself, just their relative sizes are necessary to order the table and put the best one at the top.
To see how good an entry is it's still easier to look at the other columns to see how many MHz it's below the maximum. I can just as well leave out the entire error column. Hope this helps :)

Gogar
05-15-2005, 06:02 AM
Hey Gogar,
Is there anyway you can factor in the multi as one of the important weights?
Actually, yes.. Indirectly through the HTT. :)

If you tell it to favour a high HTT, a low multiplier will be needed for that to make the cpu frequency.

Or do you want it to use higher multipliers?

agenda2005
05-15-2005, 06:25 AM
Actually, yes.. Indirectly through the HTT. :)

If you tell it to favour a high HTT, a low multiplier will be needed for that to make the cpu frequency.

Thanks. Using HTT of 1080 and 90% priority, I figured that 271X10 will be my best, but I need a BIOS that will stabilize this 10X multi. 271 X 10 gave an error of 7.2 compared to the others that are 45 and up to 321. My stable HTT is 1080, RAM is 285 and CPU 2710. Good job m8!


I was hoping it'd give me a combo that would let me get the last few stable Mhz out of my ram, but it seems the current settings I use for benching is the best one. It's a useful too though and will be very useful for everyone, thanks.

Not so fast m8 :nono: . The purpose of the optimizer is for you to figure out your max for all the parameters

RAM/HTT
CPU
Multi
HT
and then priortize them according to what you feel is more important to you.
For example if you want to run an application that is bandwith intensive. You need a higher HTT/RAM Speed. But you might also want the HT (Hypertansport) speed to be as high as you can. The question this optimizer will answer is if you are better of running a divider on your ram or not and what will using half multi will have on performance. You need to isolate each componet, stress them out and priotize them in percentage and let the optimize do the rest. This is a good tool m8.

GazC
05-15-2005, 08:07 AM
Not so fast m8 :nono: . The purpose of the optimizer is for you to figure out your max for all the parameters

RAM/HTT
CPU
Multi
HT
and then priortize them according to what you feel is more important to you.
For example if you want to run an application that is bandwith intensive. You need a higher HTT/RAM Speed. But you might also want the HT (Hypertansport) speed to be as high as you can. The question this optimizer will answer is if you are better of running a divider on your ram or not and what will using half multi will have on performance. You need to isolate each componet, stress them out and priotize them in percentage and let the optimize do the rest. This is a good tool m8.

Erm, yeah I know. All I was saying is that the best combination it suggested was the one I was running, what is wrong with me saying that?
:stick:

Pjotr
05-15-2005, 01:18 PM
HAH! All your Base if you are screwing up (I typed in 2.55 for the mhz instead of 2550)
I like it makes it so I don't have to think (which hurts at times)

If you had to enter 2.55 it would have said "GHz", now it says "MHz", I don't see how you can have to think *less*? Just enter what it says and don't think!
:stick:

Gogar
05-18-2005, 02:59 PM
Anybody got any ideas for new features? I'm kind of wondering if i can make it optimize for specific applications. Or even find you a set of hardware that will produce the highest scores for a specific application.

I.L.F. 3004
05-20-2005, 05:49 AM
Nice job Gocar.. handige tool :)

^don.k's^
05-21-2005, 04:21 AM
I wondered (some time ago) about some maths helps to maximize out my OC's, i couldn't do it, but you could! Very good work man! :toast:

IYP
05-24-2005, 09:40 AM
:slapass:

daddy_fizz
05-25-2005, 08:27 AM
so is there any way you could compile this like some other people were saying? would be nice to fiddle around with this while i'm offline...

thanks

~Fizz

Gogar
05-27-2005, 09:53 AM
I have a calculus exam coming up soon (which i failed before :( coz.. err.... DOOM3 came out :D) so i'm quite busy studying for about another two weeks, then i'll look into making it an app. (after June 14th)
I didn't think there would be any people who aren't online anymore these days though :-P

Edit; Just added a htt field to the memory divider table, check it out.

MrSeanKon
05-29-2005, 01:14 PM
Look attach photo:

Of course I had a 3200+ 754 socket....
But I choose 3500+ cos of I set 11 multiplier.

I see best choice 9.5X260 --> 2470MHz (9th line)... :confused:
5th line shows 10.5X240 --> 2520MHz...

If I run my system as you suggest it will run slower.....
Cos my main applications (video encoding) needs FPU performance thus MHz speed is the main factor not FSB....
OK I know other applications (Maths + large arrays) which use too much memory and the total amount is changing during execution...

The important thing for optimizing any system (Intel, AMD , 286, 386 etc) is different in my opinion.
RAM Optimizer is available for more info...
Anyway if I think wrong please be specific. :)

Gogar
05-31-2005, 06:42 AM
Of course I have a 3200+ 754 socket....
But I choose 3500+ cos of I set 11 multiplier.
That's good. Sorry that it assumes you have socket 939, but i wanted to make it easier to understand for people with socket 939 (most are, right?), and so i put 939 model numbers next to the multipliers.

If I run my system as you suggest it will run slower...
Well it's not surprising entries lower in the table are bad choices. You should always look at the top row of the table first, if you don't like that combination (or if it's impossible to use on your mainboard) then look at the second row etc.
If you look at the top row it says 10*255 = 2550 1:1(200) x 255 = 255
That's not a bad choice at all, your memory runs only 5MHz lower than it could while the cpu runs at max.
Perhaps you could try to get your cpu stable at 2600MHz with a small vcore bump, then your memory can run at 260 :)


Cos my main applications (video encoding) needs FPU performance thus MHz speed is the main factor not FSB....
As long as FSB is set to "0" in "Importance Weighting" it's not part of the equation, in other words: it won't try to make the FSB high. (on A64 the FSB has NO influence on performance)


The important thing for optimizing any system (Intel, AMD , 286, 386 etc) is different in my opinion.
I think i know what you mean, but you can control it's behaviour with Importance Weighting.
If this were for Athlon-XP you would probably want to set FSB higher than 0 in Importance Weighting.

MrSeanKon
05-31-2005, 01:23 PM
OK I understand cos I do not use RAM dividers.
If my RAM cannot run 1:1 I prefer to relax timings or FSB.
Your approach is different.
Thanks. :)

agenda2005
06-22-2005, 02:15 PM
OK I understand cos I do not use RAM dividers.
If my RAM cannot run 1:1 I prefer to relax timings or FSB.
Your approach is different.
Thanks. :)

You still need to look cearfully at your table. It said your best combination is 255 X10 = 2500MHz with RAM at 1:1. This gives the lowest error, memory running at 1:1, you have to decide what timming is stable for your ram and you also get the highest possible CPU MHz that you asked for.

ImportantAwareness89
06-28-2005, 01:20 PM
So you wrote this program having just taken Calculus. Brilliant. This uses some stats? Some least squares stuff? (Linear alg)... Wow.

*frowns at D+ in Diff eq./Linear alg.* so much for acing calculus.

Gogar
07-06-2005, 01:58 AM
Added another page which lets you browse the frequencies, multipliers and dividers.

Just click on the select boxes, and it'll show all possibilities from there.
http://www.gogar.com/a64ocbrowser.html

Gogar
07-11-2005, 12:08 AM
Added Rev E memory dividers, it was kind of a big change as some stuff was hardcoded so be careful with the results ;) Everything seems fine so far, but i have no way of testing. Please let me know if anything is wrong with it. :)

Oh and another thing, i'm looking for bugs in the A64 itself.
If you look at the table
http://math.gogar.com/athlon64.cgi?showtable=1&htt=200

The fields in red are where the actual memory speed is different than what you'd expect.

I suspect some bugs might be among the new memory dividers as well, especially the 13:12 divider looks like a good candidate. But i have no way to test.. so if anyone finds any differences between the real memory frequency they get and what my table says, then please tell me about it.
Thanks

red_dragon
07-18-2005, 06:24 PM
hmmm wow. thx I'll give it a try

MrSeanKon
09-20-2005, 04:05 AM
It said your best combination is 255 X10 = 2500MHz with RAM at 1:1.I knew this.


You still need to look cearfully at your tableOK I was not very carefull :( while I was looking this large table but I became confused cos of many choices.
I think no reason for second line (10 X 255 = 2550 MHz RAM 9:10) cos fourth line (11 X 231 = 2541 MHz RAM 1:1) is prefered by me.
As I said above I follow a different approach --> A64 o/c suggester thread is here at XS (http://www.xtremesystems.org/forums/showthread.php?t=74711)

snq
12-06-2005, 05:20 PM
I was bored tonight and made a little exe that does the same as Gogars optimizer :)
I'm not sure if the math is 100% correct but the results seem to match pretty good.. It's a massive 3 kilobytes large, so even on modem it shouldn't take more than 1 second to download :banana:

Update!
v0.2 fixes 2 bugs and adds some new features :)
http://www.radeonx.com/dump/a64_oc_calculator_v0.2.zip

http://img505.imageshack.us/img505/3868/a64oc029te.gif

Revv23
12-18-2005, 05:12 PM
hey this has helped me out TONS....

thanks guys!!!

g0dM@n
01-16-2006, 08:22 AM
Does anyone have the math for the memory divider calculation? I used to have it, but lost it. I'm curious to know... If I missed it, sry.

Thanks!

*EDIT*
Nevermind, after an hour of search, I finally got it.

Gogar
01-17-2006, 06:53 PM
I was bored tonight and made a little exe that does the same as Gogars optimizer :)
I'm not sure if the math is 100% correct but the results seem to match pretty good.. It's a massive 3 kilobytes large, so even on modem it shouldn't take more than 1 second to download :banana:

Update!
v0.2 fixes 2 bugs and adds some new features :)
http://www.radeonx.com/a64_oc_calculator_v0.2.zip

http://img505.imageshack.us/img505/3868/a64oc029te.gif

Wow, nice work! i'll have to give it some close scrutiny though ;) haha there's some bugs in the A64 that you should be careful of.. But anyways keep it up.. people have been hounding me for an executable version for a while.. nice to see someone step up and make one.. I'll let you know if i find any errors.
:clap:

phalkon30
02-21-2006, 08:57 AM
Registered to post about this. I noticed gogars site has been down for a few days (don't know exactly how long), and the program above does not have a valid link (that site is gone too). Any word on why or when they will be back up?

I found this tool to be one of the greatest finds I've ever had for overclocking, I don't think I would have hit 2.6 from 1.8 without your help on the math. I would hate to see it go down.

termix
04-19-2006, 06:13 AM
Maybe upload it to Rapidshare or somewhere? Would like to test it. Looks like a nice utility...

daddy_fizz
04-25-2006, 09:51 PM
anybody want to upload this to rapidshare or somewhere else? i would really like to try it out :)

thanks

~Fizz

snq
03-02-2007, 04:02 PM
Sorry, haven't checked the XS forums in a *long* time :)
Here's a link in case anyone wants it, feel free to rehost it.
http://www.radeonx.com/dump/a64_oc_calculator_v0.2.zip

phalkon30
03-03-2007, 08:29 AM
Thanks SNQ. Works great!

xploit
07-25-2007, 08:31 PM
BUMP!!! thanks man!!It works wonderfull!! this should be a STICKY! :) Now im getting the best performance.

Husky42
07-27-2007, 10:20 AM
wrong thread

vyaw2003
08-01-2007, 04:01 PM
what do these numbers mean and what should i change from looking at this table??

Friday~13rd
08-08-2007, 09:54 PM
I was bored tonight and made a little exe that does the same as Gogars optimizer :)
I'm not sure if the math is 100% correct but the results seem to match pretty good.. It's a massive 3 kilobytes large, so even on modem it shouldn't take more than 1 second to download :banana:

Update!
v0.2 fixes 2 bugs and adds some new features :)
http://www.radeonx.com/dump/a64_oc_calculator_v0.2.zip



Thank You, It's very nice.

:D

cbjaust
08-11-2007, 10:54 PM
math.gogar.com is down for me at the moment. Anyone else still using this site had problems?

sssf
08-12-2007, 12:45 AM
tnx for doing the effort, i did this some times manually for my PC.

GOOD WORK !

boonie2
10-11-2007, 03:59 PM
Hi everybody i've been reading these forums for a while now but i've never actually posted here so first of all: greetings to everyone :)

I've recently made a script that allows you to fill in your maximum cpu, memory and htt speed, and it will try to find the best combinations of multipliers and dividers to run everything as close as possible to their maximum speed.

I've improved it a lot over the last few days since i read about how the memory clock is derived from the cpu frequency, it should now work correctly with half multipliers and memory dividers!

Update: I've added Rev E memory dividers to the script, the memory divider table, and the OC Browser. Hope everything is correct. :toast:

Athlon64 Overclocking Optimizer (http://math.gogar.com/athlon64.cgi)

Instructions:

1) Finding Maximum Values
First of all you should find out how far each component can overclock individually. You'll need to know your maximum HTT/FSB, CPU, RAM and optionally also the Hypertransport bus. People who don't know how to do this should have a read at this thread: :)
http://forums.anandtech.com/messageview.aspx?catid=28&threadid=1497607&frmKeyword=&STARTPAGE=1&FTVAR_FORUMVIEWTMP=Linear

2) Fill Them In
Once you know all the maximum speeds that your hardware can do you simply fill them in in the form called "Known Maximum Values" on the page and hit " GO! ".
A table with HTT, multiplier and divider combinations should appear. The table is sorted according to how close the values are to your maximums, the best options should at the top.

3) Importance Weighting
The table Importance Weighting is where you can de define how important it is to you that the specific component runs close to it's maximum. It will make the trade-offs based on those settings.
Generally the importance weighting is fine on the default setting.

cpu 100 (cpu is king)
ram 10 (also take the memory into consideration)
ht 0 (not important)
htt 0 (not important)

When a weight is set to 0 it will still favour the highest possible multi or divider, so for example it won't suggest to run your HT bus at 2x while it could run at 3x.

In most situations you shouldn't have to change the weights.

4) Important Notes

To get a large number of results to choose from, it is important that you enter a high HTT value. Please do actually test what it's maximum is, instead of just entering the HTT that you're currently using.

Some memory dividers aren't available on all motherboards, if a memory divider is suggested in the table that isn't available on your board, you will have to look further down in the table for combinations that do work with your motherboard.
Another option could be to look for a hacked bios.

Use of my script or it's results is completely at your own risk.

what do you think gives you the right to post this YOURS??? this calculator has been out for years , id watch my step if i were you before someone sues you :D