Author

Topic: OFFICIAL CGMINER mining software thread for linux/win/osx/mips/arm/r-pi 4.11.0 - page 686. (Read 5805728 times)

-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
Hmm there's a lot of info in that string and the status line is already fairly cluttered. I'll have to investigate some reasonable compromise if suitable.

Also, it could possibly be used to help choose optimal vectors and worksize. However with the kernels under massive flux at the moment, there's not much point choosing anything at the moment.

I'm thinking adding it to verbose info at startup at least will help diagnose it.
In the git tree, I added it to verbose mode, and also to --ndevs which will allow us to ask people "what does --devs show?"

Something like this:
[2012-01-29 00:37:48] CL Platform vendor: Advanced Micro Devices, Inc.
[2012-01-29 00:37:48] CL Platform name: ATI Stream
[2012-01-29 00:37:48] CL Platform version: OpenCL 1.0 ATI-Stream-v2.1 (145)
[2012-01-29 00:37:48] 6 GPU devices detected
donator
Activity: 1218
Merit: 1079
Gerald Davis
woot woot.  Since SDK has an effect on performance it may be useful to include that in version.
-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
On the other hand, I may have to eat my words...

A little debugging found this:
[2012-01-28 22:43:25] PLATFORM OpenCL 1.0 ATI-Stream-v2.1 (145)                   
-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
I wish it were only that bad  Roll Eyes

AMD:

donator
Activity: 1218
Merit: 1079
Gerald Davis
-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
I'll check but not as far as I'm aware it doesn't.
donator
Activity: 1218
Merit: 1079
Gerald Davis
Hey ckolivas?  Does the AMD API expose the SDK version?  If so then the program could check at runtime and display it with miner version.

Quote
cgminer 2.20 (SDK 2.5)

It might help in troubleshooting users who show bad performance and swear they haven't upgraded drivers.  "Well cgminer says it is running on v2.6 so Smiley ".
-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
Some people say the 5xxx cards were faster with SDK 2.1, however this changed with the phatk2+ kernel in cgminer, where 2.1, 2.4 and 2.5 are pretty much equal. 2.2 and 2.3 have various problems with various kernels and various hardware, the details of which I don't know. 2.6 is basically crap for everything but 7970, where it's mandatory.
donator
Activity: 1218
Merit: 1079
Gerald Davis
Since this topic is hot right now - let me pop this question

Which SDK is best for 5xxx and which SDK is best for 6xxx

can we get a point of reference here? Thanks!

I think this is less of an issue now.  In my experience 2.1, 2.3, & 2.4 all perform the same for 5000 series cards.  Now when the CPU bug existed the 5000 series cards could use older DRIVER to escape it and they came w/ 2.1 SDK.  However w/ CPU bug fixed that is less of an issue.

2.6 significantly (15%+) underperforms 2.1, 2.3, 2.4. I never used 2.5 simply because I stopped upgrading when things weren't broke.  AMD taught me to fear new driver & SDK versions. Smiley

Since cgminer will use the SDK in local directory you can test them all yourself if you want by copying DLL for each SDK one at a time into locally directory and running cgminer for say a couple hours.
donator
Activity: 1218
Merit: 1079
Gerald Davis
A totally monster update.  Kudos.
Donation heading your way as soon as I earn some coins. 

BTW:  BAMT + cgminer (w/ RPC) = hashing farm wonderland. Smiley
hero member
Activity: 896
Merit: 1000
Buy this account on March-2019. New Owner here!!
How is 2.1 better than 2.4?

2.1 seems to be the "common wisdom" as best SDK for 5000 series but I don't see any difference between 2.4 and 2.1 w/ my 5970s. 

Actually the rig w/ 2.4 produced 0.7% more shares over last week but that likely is just variance.  Lets call it a tie.

Now 2.5 is garbage.  Super garbage.  If you have a 7000 series rig it should only have 7000 series because you need the crap 2.5. 
I assume you mean 2.6 is garbage. 2.5 worked identically to 2.4 in my experience.

awesome!

Since this topic is hot right now - let me pop this question

Which SDK is best for 5xxx and which SDK is best for 6xxx

can we get a point of reference here? Thanks!
-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
New release: Version 2.2.0

NOTE: GPU Device order may change with this release with ATI GPUs as cgminer
now can enumerate them according to their Bus ID which means the values should
now correlate with their physical position on the motherboard.


Links in top post as always.

Given the number of changes in this version, I have a human readable summary of user-visible changes first. CPU mining binaries will no longer be distributed by myself:

New features:
Bitforce FPGA support
Net Delay option to not overload slow routers
Socks proxy support.
More RPC API interfaces
Preliminary GCN support
Linking of fan speed and control on dual GPU cards.

Changes:
Reordering of devices where possible to match PCI order.
Intensity support up to 14
Better damping of fanspeed with auto-fan
GPU temperature of 2nd GPU in dual GPU  cards affects fanspeed
CPU mining being deprecated and off by default
Parsing of configuration files copes much better with problems
Less false positives for network delays.

Bugfixes:
Much less likely to fail to build binaries on first startup. (completely fixed?)
Fixed potential for false positive of a dead pool.

New bugs:
Unknown  Roll Eyes

Full changelog:
- Default to poclbm kernel on Tahiti (7970) since phatk does not work, even
though performance is sub-standard so that at least it will mine successfully by
defau
- Retain cl program after every possible place we might build the program.
- Update ADL SDK URL.
- Fix potential overflow.
- Map GPU devices to virtual devices in their true physical order based on
BusNumber.
- Change the warning that comes with failure to init cl on a device to be more
generic and accurate.
- Advertise longpoll support in X-Mining-Extensions
- Detect dual GPU cards by iterating through all GPUs, finding ones without
fanspeed and matching twins with fanspeed one bus ID apart.
- Do not attempt to build the program that becomes the kernel twice. This could
have been leading to failures on initialising cl.
- Some opencl compilers have issues with no spaces after -D in the compiler
options.
- Allow intensity up to 14.
- Use calloced stack memory for CompilerOptions to ensure sprintf writes to the
beginning of the char.
- Whitelist 79x0 cards to prefer no vectors as they perform better without.
- Adjust fan speed gently while in the optimal range when temperature is
drifting to minimise overshoot in either direction.
- Detect dual GPU cards via the indirect information of - 1st card has a fan
controller. 2nd card does not have a fan controller, cards share the same device
name
- Instead of using the BFI_INT patching hack on any device reporting
cl_amd_media_ops, create a whitelist of devices that need it. This should enable
GCN architec
- Fixed API compiling issue on OS X
- Add more explanation of JSON format and the 'save' command
- Return an error if using ADL API commands when it's not available
- Read off lpThermalControllerInfo from each ADL device.
- Add ADL_Overdrive5_ThermalDevices_Enum interface.
- Add API commands: config, switchpool, gpu settings, save
- Implement socks4 proxy support.
- Fix send() for JSON strings
- Introduce a --net-delay option which guarantees at least 250ms between any
networking requests to not overload slow routers.
- Generalise locking init code.
- Allow invalid values to be in the configuration file, just skipping over them
provided the rest of the file is valid JSON. This will allow older configurat
- Allow CPU mining explicitly enable only if other mining support is built in.
- BitForce FPGA support
- Configure out building and support of all CPU mining code unless
--enable-cpumining is enabled.
- Allow parsed values to be zero which will allow 0 values in the config file to
work.
- Advertise that we can make our own midstate, so the pool can skip generating
it for us
- Refactor the CPU scanhash_* functions to use a common API. Fixes bugs.
- Don't consider a pool lagging if a request has only just been filed. This
should decrease the false positives for "pool not providing work fast enough".
- Invalidating work after longpoll made hash_pop return no work giving a false
positive for dead pool. Rework hash_pop to retry while finds no staged work u
- Remove TCP_NODELAY from curl options as many small packets may be contributing
to network overload, when --net-delay is enabled.
- Refactor miner_thread to be common code for any kind of device
- Simplify submit_nonce loop and avoid potentially missing FOUND - 1 entry.
Reported by Luke-Jr.
- Micro-optimisation in sha256_sse2 code courtesy of Guido Ascioti
- Refactor to abstract device-specific code
-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
Anyone who's ever coded crossplatform will have to laugh at this, so I just had to share it.

Code:
+#ifdef WIN32
                        if (adapters[j].iBusNumber < adapters[i].iBusNumber)
+#else
+                       if (adapters[j].iBusNumber > adapters[i].iBusNumber)
+#endif
donator
Activity: 1218
Merit: 1079
Gerald Davis
I assume you mean 2.6 is garbage. 2.5 worked identically to 2.4 in my experience.

Yes.  Embarrassed

DOH.
-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
Acknowledged and thank you. Testing latest git version right now.
Apologies, this order change did not benefit linux which usually showed the correct order, it only swapped the order around, so I'll be disabling it from linux and only using it on windows.
-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
How is 2.1 better than 2.4?

2.1 seems to be the "common wisdom" as best SDK for 5000 series but I don't see any difference between 2.4 and 2.1 w/ my 5970s. 

Actually the rig w/ 2.4 produced 0.7% more shares over last week but that likely is just variance.  Lets call it a tie.

Now 2.5 is garbage.  Super garbage.  If you have a 7000 series rig it should only have 7000 series because you need the crap 2.5. 
I assume you mean 2.6 is garbage. 2.5 worked identically to 2.4 in my experience.
donator
Activity: 1218
Merit: 1079
Gerald Davis
How is 2.1 better than 2.4?

2.1 seems to be the "common wisdom" as best SDK for 5000 series but I don't see any difference between 2.4 and 2.1 w/ my 5970s.  

Actually the rig w/ 2.4 produced 0.7% more shares over last week but that likely is just variance.  Lets call it a tie.

Now 2.5 2.6 is garbage.  Super garbage.  If you have a 7000 series rig it should only have 7000 series because you need the crap 2.5 2.6.

I think what sometimes confuses people is driver is bundled w/ an SDK version.  So for example some of the drivers which were bundled w/ SDK after 2.1 had 100% CPU bug.  It had nothing to do w/ the SDK but that whole release gets dragged down.

Still AMD does need to work on their drivers & SDKs  
legendary
Activity: 4634
Merit: 1851
Linux since 1997 RedHat 4
Nice workaround but give how crappy 2.5 is I see no reason to keep it...
Dependency hell, DAT.
2.6 is extremely crappy but necessary for running 7xxx cards.
2.5 and 2.4 are less crappy and required for 69xx cards.
2.1 is the best SDK version unless you limnit yourself to VLIW5 architecture cards.

What miners should really do is organize their GPUs in groups by required SDK version.
Mixing VLIW4 and VLIW5 cards is a waste of hash rate, adding GCN to the bunch - a criminal waste Smiley
Um ... ?

2.4 for 69xx cards - where's it "crappy"?

(unless of course you mean the entire ATI 'crappy' - well you can't avoid that no matter what you do coz every version is from them)

How is 2.1 better than 2.4? (I have no idea myself - that's just an extra question thrown in that would be worth answering since you said it)
full member
Activity: 210
Merit: 100
Acknowledged and thank you. Testing latest git version right now.
-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
The reorder branch has now been merged into the master git branch. Putting the finishing touches on the code, readme etc. to release the new version today.

WARNING
This means that the ordering of your cards will almost certainly change from here on with cgminer into the "correct" order based on physical bus ID location so if you have different settings for different GPUs, you will need to update all your configuration files accordingly.
Jump to: