Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
hdminer - Bitcoin GPU miner in ATI CAL IL

- 21 Dec 2010: first fully working version is completed, I start mining with it
- 28 Dec 2010: I advertise hdminer on IRC and sell the first copy (with source
  code, but license prohibits redistribution)
- 24 Jan 2011: I advertise hdminer more broadly on the forums at
- mid-2011: hdminer becomes obsolete as the performance of open-source cgminer
  catches up with my implementation
- 04 Apr 2017: I release and place the code in the public domain, mostly as
  a historical artifact

Author: Marc Bevand, m.bevand at
License: hdminer is hereby placed in the public domain

For installation instructions, see file "INSTALL".

Performance modelling.
    48 steps doing 13 ops each:
      5 ops to compute s0
      5 ops to compute s1
      3 adds to compute a word
    64 steps of 20 ops each:
      5 ops to compute s0
      2 ops to compute maj (optimized with BFI_INT to replace 5 ops)
      1 op to compute t2
      5 ops to compute s1
      1 op to compute ch (optimized with BFI_INT to replace 4 ops)
      4 ops to compute t1
      2 adds to update intermediate hash values
    8 adds to compute intermediate values
    3*20 because the last 3 steps of the second hash are not executed
    7 adds are not necessary in second hash because only H needs to be computed
Expected and measured bitcoin hash/sec:
  HD 6990@sw1 2703e9/((48*13+64*20+8)*2-3*20-7)/1e6 = 720M, measured 746M
  HD 6990@sw2 2550e9/((48*13+64*20+8)*2-3*20-7)/1e6 = 679M, measured 708M
  HD 5970     2320e9/((48*13+64*20+8)*2-3*20-7)/1e6 = 618M, measured 569M
  HD 6970     1352e9                                = 360M, est.     375M
  HD 5870     1360e9                                = 362M, measured 333M
  HD 6950     1127e9                                = 300M, measured 315M
  HD 5850     1044e9                                = 278M, est.     256M

- pick a merkle root so that its last word + s0[timestamp] = 0 to allow
  precomputing most of the blending
- precompute as much of the blending as possible for 1st SHA-256
- most of the blending for 2nd SHA-256 can be precomputed (zero words)
- getwork at least every 6sec 

00000001 [---                         previous hash                 ---
--- ---] [---                         merkle root                   ---
--- ---] [tstamp] [tgtbit] [nonce-] 00000080 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 80020000


(Historical) Bitcoin GPU miner






No releases published


No packages published