Skip to content
This repository has been archived by the owner on Apr 24, 2022. It is now read-only.

stratix v ethash rate #2140

Open
wants to merge 10,000 commits into
base: master
Choose a base branch
from
Open

stratix v ethash rate #2140

wants to merge 10,000 commits into from

Conversation

backrobot
Copy link

fix the stratix v ethash rate,the previous is unbelievable

chfast and others added 30 commits January 11, 2018 18:31
Former-commit-id: 31e80dca1e5a12e076e070aba82bfd65198ab331
Former-commit-id: 080558d0b966146bb7c007682b97ca39e2534057
When it gets new work the farm calls setWork for each
GPU’s miners.

For an nvidia GPU miner, setWork:

- Sets a flag for the miner to stop. The miner will not
  acknowledge this flag till it completes its current
  calculation pass, on average half of one hash
  calculation’s time.

- Wait for the miner to stop (blocks).

- Reset the miner with new work.

This has performance and cost consequences. Since the
farm calls setWork sequentially over all miners, a miner
will not be stopped and informed of new work, till the
previous has completed the reset. It also means that
because of this, the laer a miner restarts the more
likely to provide a stale share working on old work
instead of getting started new work.

To mittigate this we break up the setWork process in
two parts: setWork and waitReady.

setWork

- Sets a flag for the miner to stop.

waitReady

- Wait for the miner to stop (blocks).

- Reset the miner with new work.

With this partitioning we can now restart the GPUs in
parallel by first iterating over miners with setWork
(which can’t block), then doing a second pass calling
waitReady.

Actual measuments - Ubuntu - 4X1060 - time from start
of farm setWork to completion of last GPU reset):

- Sequential GPU resets – avg. farm setWork time 180-200ms.
  (yes, it’s that slow!!!)

- Parallel GPU resets – avg. farm setWork time 70-90ms.

These are averages since, at least for nvidia, switch
time is highly dependent on when new work arrives during
a hash calculation, so it fluctuates a lot per job.


Former-commit-id: 04aef40af3266833713742836d69bd258aa6ff8f
When it gets new work the farm calls setWork for each
GPU’s miners.

For an nvidia GPU miner, setWork:

- Sets a flag for the miner to stop. The miner will not
  acknowledge this flag till it completes its current
  calculation pass, on average half of one hash
  calculation’s time.

- Wait for the miner to stop (blocks).

- Reset the miner with new work.

This has performance and cost consequences. Since the
farm calls setWork sequentially over all miners, a miner
will not be stopped and informed of new work, till the
previous has completed the reset. It also means that
because of this, the laer a miner restarts the more
likely to provide a stale share working on old work
instead of getting started new work.

To mittigate this we break up the setWork process in
two parts: setWork and waitReady.

setWork

- Sets a flag for the miner to stop.

waitReady

- Wait for the miner to stop (blocks).

- Reset the miner with new work.

With this partitioning we can now restart the GPUs in
parallel by first iterating over miners with setWork
(which can’t block), then doing a second pass calling
waitReady.

Actual measuments - Ubuntu - 4X1060 - time from start
of farm setWork to completion of last GPU reset):

- Sequential GPU resets – avg. farm setWork time 180-200ms.
  (yes, it’s that slow!!!)

- Parallel GPU resets – avg. farm setWork time 70-90ms.

These are averages since, at least for nvidia, switch
time is highly dependent on when new work arrives during
a hash calculation, so it fluctuates a lot per job.


Former-commit-id: abe5ab5
Halve the nvidia farm switch time.

Former-commit-id: ee3e98aa53b346dee6be82006282ddac609b7805
Halve the nvidia farm switch time.

Former-commit-id: 08a458b
Former-commit-id: fc0a5be1109ca512a32e224216dc1ab621ac2624
Former-commit-id: 5b79264b5e60f246c7344bd2881db24cb9a7cab1
Former-commit-id: aec183e1882b6b284df6b03a42e45b70e10538a5
…eptions

Catch exceptions from execute()

Former-commit-id: 8d95a2ad92ffa1e5dc5831e0949534b9ab51675a
…eptions

Catch exceptions from execute()

Former-commit-id: b3c18d0
Fix fixes the race condition when the pool thread has a new work package already. The work package is passed along with the nonce now to make sure that the solution reported is valid.


Former-commit-id: a706e89bd0297d11d3d8f9b5100e614b4ca8bd02
Fix fixes the race condition when the pool thread has a new work package already. The work package is passed along with the nonce now to make sure that the solution reported is valid.


Former-commit-id: 9d01627
…rting

CUDAMiner: Pass work package to report()
Former-commit-id: d782306250284a46cabf2a6a2bc8c5320a0ab232
…rting

CUDAMiner: Pass work package to report()
Former-commit-id: 822358d
Former-commit-id: 7cdd3271438f4b94df2ee08eeebbaabd92bc916e
Former-commit-id: b406dfda2118eac4291f93fad9b5ade2cfabd97a
Former-commit-id: 1e0836c49d845996a84ac2f1e980487a9ae41ae5
Former-commit-id: 40885e6de6a99e5d4ef10a5007da3ac2a22fcd56
Former-commit-id: ee340d8
Former-commit-id: a62d97c00ed3a9e047c2a737ca4642b5167ada7b
Dennis and others added 30 commits January 30, 2018 12:24
Former-commit-id: 1e65459fa6e9913fad830e22fc53bcecf235b47b
Clarify license

Former-commit-id: 7d90ed4241b35e51da0c786eb562bbaeea7ecfc6
Former-commit-id: 15235dccc163754c22aceecd62601c3151d015cd
Former-commit-id: 6c0730d7fdef046b48566c1bcee9107857118638
Former-commit-id: f7d9d5d5a51acb36ad7d9311e876d03b9688f71f
Former-commit-id: a5dd0225d4fcb256f8ea9b7906fedba751a1eed4
Former-commit-id: 99f9463b836e6a74403cc14b232ee06259eeb4a8
Former-commit-id: 177f730e5e63ac4322df393ba66b0f4144fa7557
Former-commit-id: e32d36a6d948d82028d91b1d852c65d434372794
Former-commit-id: 7cacbb145f7632b6256dbc07186cc9434b30742b
Former-commit-id: 80a29f9e142900f01d35a73357cd11fcb29cfa55
Former-commit-id: 5c2f83541dbeb5660057a702fa2eaa84a3131cda
Former-commit-id: adad9d0a07c83bea9fc886ec6e20dc8bf75ca8ec
Former-commit-id: 14e65d40c7359cbdf2221f26200073f5d1d2e81d
fix
Former-commit-id: 0ebd4756ff188912aca0d12db474a5f1bf476009
Former-commit-id: 5bcf61ee5303d1d7e5ecc1fc26db4e4c4fa78551
wip
Former-commit-id: 0e855430cf9e7ec41f1f939d721221e6ea97bac6
# Conflicts:
#	CMakeLists.txt
#	ethminer/MinerAux.h
#	ethminer/main.cpp
#	libethash-cl/CLMiner.cpp
#	libethash-cl/CLMiner.h
#	libethcore/CMakeLists.txt
#	libethcore/Farm.h
#	libethcore/Miner.h
#	libstratum/EthStratumClient.cpp
#	libstratum/EthStratumClient.h
#	libstratum/EthStratumClientV2.cpp
#	libstratum/EthStratumClientV2.h
#	scripts/install-cuda-ubuntu1604.sh
#	scripts/install_cmake.sh
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.