New version: Version 2.3.0 - February 23, 2012Human readable summary:
New kernels across the board, including Diablo kernel. Selection is carefully designed to be optimal by default according to device and SDK combination.
Much better coping with SDK 2.6 so it no longer warns excessively about it, but note it's STILL faster with most cards on earlier SDKs.
Fixed the huge dip in hashrate with all the extra longpolls.
Fixed the number of extra longpolls during pool switch.
Hopefully fixed the device OFF problem.
Added Icarus FPGA support.
Can set kernel, vector and worksize per device now with -k diablo,phatk,phatk,poclbm -v 2,2,2,1 -w 128,256,256,64 for example
Hashrate at startup should be more meaningful sooner.
New --benchmark feature to test hashrate. Leave it running for ~3 mins to get reliable results, then quit and check the summary! Great for testing multiple same devices with different kernels, vectors etc. Produces NO HASHES so don't leave it running
Engine clock speed should ramp up instantly after a period of network outage which drops the profile to low power.
New API commands for pool management.
Fixes to API code to shut down cleanly.
Full changelog:
- Consider extra longpoll work items as staged_extra so as to make sure we queue
more work if queueing regular work items as longpolls.
- Use diablo kernel on all future SDKs for Tahiti and set preferred vector width
to 1 on poclbm kernel only.
- Explicitly type the constants in diakgcn kernel as uint, to be in line with
poclbm kernel.
- Reset all hash counters at the same time as resetting start times to get
accurate hashrates on exiting which is mandatory for benchmarking.
- Report thread out before it starts to avoid being flagged as sick when waiting
for the first work item.
- Don't disable and re-enable devices as they may recover and in the meantime
have their status set to OFF.
- API new commands enablepool and disablepool (version already incremented)
- Tolerate new-format temperature readings for bitforce
- Modify cgminer.c pool control to allow API to call it
- Bugfix: Fix BitFORCE driver memory leak in debug logging
- Extra byte was being unused in poclbm leading to failure on some platforms.
- Explicitly type the constants in poclbm kernel as uint.
- Don't save 'include' when saving the configuration
- Allow configuration file to include another recursively
- Use the SDK and hardware information to choose good performing default
kernels.
- Move phatk kernel to offset vector based nonce bases as well.
- Add a --benchmark feature which works on a fake item indefinitely to compare
device performance without any server or networking influence.
- Allow writing of multiple worksizes to the configuration file.
- Allow writing of multiple vector sizes to the configuration file.
- Allow writing of multiple kernels to the configuration file.
- Allow multiple different kernels to be chosen per device.
- Allow the worksize to be set per-device.
- Allow different vectors to be set per device.
- If we're well below the target temperature, increase gpu engine speed back to
maximum in case we have gotten lost between profiles during an idle period.
- We should be setting the value of fan_optimal, not its address.
- As all kernels will be new versions it's an opportunity to change the .bin
format and make it simpler. Specifying bitalign is redundant and long can be l.
- Use any() in kernel output code.
- Put the nonce for each vector offset in advance, avoiding one extra addition
in the kernel.
- Reset times after all mining threads are started to make estimating hashrates
easier at startup.
- Bugfix: allow no-exec (NX) stack
- Fix minor warning.
- fix the bitforce.c code style follow 1TBS
- fix icarus.c compile warning
- small changes to speedup no vec for AMD 898.1 OCL runtime
- Update licensing to GPL V3.
- Reset the longpoll flag after it's been used once to prevent it restarting
work again.
- Begin import of DiabloMiner kernel.
- Modify API debug messages to say API instead of DBG
- When API shuts down cgminer don't kill itself
- Don't make rolled work from the longpoll be seen as other longpoll work items.
- API add 'privileged' command so can verify access level
- Set the lp_sent variable under lock since there will almost always be a race
on setting this variable, potentially leading to multiple LPs being sent out.
- API restrict access to all non display commands by default
- Update API version to 1.2 for new 'Log Interval'
- API add --log Interval to 'config' reply
- --api-allow special case 0/0 means all