sgminer-dev / sgminer

Scrypt GPU miner
GNU General Public License v3.0
629 stars 825 forks source link

Suboptimal kernel compilation #95

Open luminoso opened 10 years ago

luminoso commented 10 years ago

I spent countless hours testing configurations and it looks like the problem is spread for lots of people. Firstly I thought it was gpu problem or configuration problem to find out it's cgminer/sgminer problem. So to help to clarify the problem I have the following setup:

Computer A: Intel i7-920, running Windows 8.1

Computer B: AMD X3, running both Windows 8.1 and BAMT 1.5

All computers share same same sgminer version, same and simple startup command line (-w 256 -g 2 --thread-concurrency 8191), same pool, same gpu (sapphire 280x dual-x)

All test were done with 1 GPU plugued in. And everytime a test is done *.bin files are deleted.

What happens:

1) Run sgminer in computer A: average KH/s is 750

2) Run sgminer in computer B: average KH/s is 600 (in windows and bamt)

3) Take the *.bin file from computer A and put it in computer B: average KH/s is 750

Which leads me to conclusion that Computer-A is compiling A LOT better kernel (.bin file) than computer B, either using windows or linux, whatever kernel I test. Why is this happening? I believe that a lot of people blaming sapphire or configurations aren't just lucky as me to have a computer that compiles suck a god kernel

Interesting facts:

1) If I generate the .bin files in computer-b they lower the hash rate with overclocking2) If i generate the .bin files in computer-a the hash rate reacts in a very positive way to overclocking. even in computer-b on both windows and bamt 1.5

So what is causing this? What makes all .bin files created in computer-B be so underoptimised and underperforming so much? How can I help to diagnose this problem?

gdevenyi commented 10 years ago

You've left out the most important question, what driver versions?

luminoso commented 10 years ago

Sorry gdevenyi: computer-a is with 13.11 (64bits), computer-b with 14.1b1.6 (64bits) and bamt 1.5 according to their information is 14.1(?? bits).

humm..

Is 13.11 compiling such a better kernel than 14.1? :confused:

gdevenyi commented 10 years ago

This is a common problem and we really should do the kind of apples to apples comparisons that you're attempting. I suspect if you change your driver on computer-a that you will see the same issues, I suggest you give it a try.

If this in fact the case that 14.1 is causing issues, we should note it in the docs.

luminoso commented 10 years ago

Yep. You're right. Installed 13.12 in computer-B, windows, and there is the awesome hash rate. I just wish I haven't spend so many days digging.. Why I didn't remember this first?

Is there anything I can do to help diagnose the problem? Or help at all about this?

Zuikkis commented 10 years ago

Yes, 14.1 opencl seems to be crap. Much better results with 13.11 or 13.12.

Also what's interesting, if you have APP SDK installed, you will get different bin too. Usually worse than without SDK.

Also there is a runtime difference, sometimes sgminer and cgminer use nearly 100% cpu with the SDK libraries.. Without SDK, under 1%.

I rename my /opt/AMDAPP to AMDAPP_not when I'm not compiling anything.

veox commented 10 years ago

@luminoso thank you for testing.

sgminer -n should give a list of available OpenCL implementations (and their providers). sgminer --gpu-platform N should allow choosing between the ones available (0, 1, 2...).

On my dev machine (running Arch Linux) one is bundled with Catalyst (catalyst-utils), another with AMD APP SDK (amdapp-sdk). The versions are 1348.4 and 1214.3.

Anyway, does specifying a different --gpu-platform help?

As to the documentantation, this needs to be mentioned in:

varnav commented 10 years ago

They call 14.x branch of catalyst drivers "Beta" for a reason.

veox commented 10 years ago

Confirmed that specifying a different gpu-platform helps (1214.3 instead of 1411.4).

However, there is sometimes an issue with platform detection (both platforms shown as same version). Hard to reproduce, so no bug report.

hornswoggler commented 10 years ago

Not sure if this would be helpful but, I recently built a rig using the R9 290x with sgminer 4.1.0 (which is totally awesome by the way...), AMD Catalyst beta 14.1 running on Xubuntu 13.10 and have found an average hashrate of 905-935kh/s per card. Not bad in my opinion. Are you suggesting that 13.11 or 13.12 may give even better performance?

archenroot commented 10 years ago

@hornswoggler, I am playing with Catalyst beta 14.2 v1.3 driver, latest sgminer release and being at about 800. Will try to reinstall the 14.1 driver to see the result. Can you post your config? mine is: ./Downloads/sgminer/sgminer-4.1.153/sgminer -o stratum+tcp://hostname:port -u user -p password -d 0,1 --lookup-gap 2 --intensity 20 --gpu-threads 1 -w 256,256 --gpu-engine 1120,1120 --gpu-memclock 1500,1500 --gpu-fan 100 --auto-gpu --thread-concurrency 30464,30464 --gpu-powertune 20