Browse Source

PIP-0009: more fixes from previous edits

Herman Schoenfeld 6 years ago
parent
commit
edf9e75801
1 changed files with 1 additions and 1 deletions
  1. 1 1
      PIP/PIP-0009.md

+ 1 - 1
PIP/PIP-0009.md

@@ -352,7 +352,7 @@ The RandomHash algorithm is inherently biased towards CPU mining due to it's hig
 
 #### Memory Complexity
 
-RandomHash is memory-light in order to support low-end hardware.  A CPU will only need 5MB of memory to verify a hash. During mining, it will need 10MB per thread (when utilizing the 50% bias mentioned above)- an easy requirement. It's important to note that RandomHash consumes most of the memory in the initial rounds and little in the final rounds. This is deliberate in order to hinder GPU mining.  For example, suppose a GPU has 5GB of memory. A naive hasher could attempt to batch 1000 nonces for parallel evaluation (since each nonce requires 5MB). However, since each nonce depends on 30 other nonces and most of the "5MB per nonce" is consumed in the early rounds of those nonce evaluations, the GPU will run out of memory quickly. The batch size needs to be divided by 30 in order to utilize 5GB effectively, which means most of the GPU memory is wasted on partial nonce calculations in the early rounds. The GPU could only effectively compute approximately 20 nonces per 1GB of memory. Note, a CPU could easily compete with this memory requirement and implement intelligent parallel mining (by using other threads to mine less-partially calculated nonces). This would give a CPU significantly greater than 50% advantage, but this approach needs further research.
+RandomHash is memory-light in order to support low-end hardware.  A CPU will only need 5MB of memory to verify a hash. During mining, it will need 10MB per thread (when utilizing the 50% bias mentioned above) -- an easy requirement. It's important to note that RandomHash consumes most of the memory in the initial rounds and little in the final rounds. This is deliberate in order to hinder GPU mining.  For example, suppose a GPU has 5GB of memory. A naive hasher could attempt to batch 1000 nonces for parallel evaluation (since each nonce requires 5MB). However, since each nonce depends on 15 other nonces and most of the "5MB per nonce" is consumed in the early rounds of those nonce evaluations, the GPU will run out of memory quickly. The batch size needs to be divided by 15 in order to utilize the 5GB effectively, which means most of the GPU memory is wasted on partial nonce calculations from the early rounds. In that scenario, the GPU can only effectively compute 20 nonces per 1GB of memory. A CPU can easily compete with this and implement intelligent parallel mining by using other threads to mine the less-partially calculated nonces. This could potentially give a CPU significantly greater than 50% advantange, but this approach needs further research.
 
 #### GPU Resistance