Skip to content

Commit 191f36e

Browse files
committed
Prep 1.0.0 release. Install OpenCL support by default.
1 parent 7ab8775 commit 191f36e

File tree

4 files changed

+49
-30
lines changed

4 files changed

+49
-30
lines changed

README.md

Lines changed: 45 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,42 @@
11
# apoclypsebm - The ApoCLypse Bitcoin Miner
22
## Background
3-
This hobby project undertakes the quixotic task of maintaining a modern Bitcoin miner for programmable compute
3+
This hobby project maintained by [Justin T. Arthur](https://github.com/JustinTArthur) undertakes the quixotic task of maintaining a modern Bitcoin miner for programmable compute
44
devices like GPUs. It was forked from the PyOpenCL Bitcoin Miner (poclbm), a project authored by
5-
[m0mchil](https://github.com/m0mchil/) and contributors.
5+
[m0mchil](https://github.com/m0mchil) and contributors.
66

77
It features an OpenCL Kernel that has incorporated ideas or code from:
8-
* [diapolo](https://github.com/diapolo/)
9-
* [m0mchil](https://github.com/m0mchil/)
8+
* [diapolo](https://github.com/diapolo)
9+
* [m0mchil](https://github.com/m0mchil)
1010
* [neurobox](https://bitcointalk.org/index.php?action=profile;u=106397)
1111
* [phataeus](https://sourceforge.net/u/phateus/)
1212
* [rethaw](https://bitcointalk.org/index.php?action=profile;u=18618)
1313

1414
If your work is represented herein and I didn't give you credit, please let me know. At the moment, I reserve no rights
1515
to the mining driver or the OpenCL kernel. They were derived from public domain works.
1616

17+
## New in Version 1.0.0
18+
* First release following the fork from [m0mchil/poclbm](https://github.com/m0mchil/poclbm). ([diff](https://github.com/m0mchil/poclbm/compare/master...JustinTArthur:v1.0.0))
19+
* Migrated code to Python 3. Requires Python 3.5+
20+
* Fix kernel compilation error in clang-based OpenCL compilers like macOS OpenCL and
21+
AMD ROCm.
22+
* Fix for not submitting shares to stratum servers reporting pdifficulty when server-side pdifficulty is below 1. By [luke-jr](https://github.com/luke-jr).
23+
* Minor performance improvements
24+
1725
## Economy
18-
At the time of this writing, on-chip implementations of the Bitcoin mining solution algorithm will outperform this
19-
software in time and joules expended. Under most economic conditions, mining blocks on a Bitcoin chain where
20-
on-chip implementations are competing would be at tremendous waste of expended resources.
26+
At the time of writing, on-chip implementations of the Bitcoin mining algorithm will outperform this
27+
software in both time and joules expended. Under most conditions, mining blocks on a Bitcoin chain where
28+
on-chip implementations are competing would be at a tremendous waste of expended resources.
2129

2230
## Installation
23-
pip3 install git+git://github.com/JustinTArthur/apoclypsebm.git[OpenCL]
31+
Python 3.5+ must be installed first. To install latest from master branch on GitHub:
32+
33+
pip3 install git+git://github.com/JustinTArthur/apoclypsebm.git
2434

2535
## Usage
2636
apoclypse [OPTION]... SERVER[#tag]...
2737

28-
`SERVER` is one or more [http[s]|stratum://]user:pass@host:port (required)
29-
[#tag] is an optional per server user friendly name displayed in stats (optional)
38+
`SERVER` is one or more [http[s]|stratum://]user:pass@host:port (required)
39+
[#tag] is an optional per server user-friendly name displayed in stats.
3040

3141
### Options
3242
```
@@ -37,6 +47,12 @@ on-chip implementations are competing would be at tremendous waste of expended r
3747
--proxy=PROXY specify as
3848
[[socks4|socks5|http://]user:pass@]host:port (default
3949
proto is socks5)
50+
--no-ocl don't use OpenCL
51+
--no-bfl don't use Butterfly Labs
52+
--stratum-proxies search for and use stratum proxies in subnet
53+
-d DEVICE, --device=DEVICE
54+
comma separated device IDs, by default will use all
55+
(for OpenCL - only GPU devices)
4056
4157
Miner Options:
4258
-r RATE, --rate=RATE
@@ -45,36 +61,40 @@ on-chip implementations are competing would be at tremendous waste of expended r
4561
-e ESTIMATE, --estimate=ESTIMATE
4662
estimated rate time window in seconds, default 900 (15
4763
minutes)
48-
-a ASKRATE, --askrate=ASKRATE
49-
how many seconds between getwork requests, default 5,
50-
max 10
5164
-t TOLERANCE, --tolerance=TOLERANCE
5265
use fallback pool only after N consecutive connection
5366
errors, default 2
5467
-b FAILBACK, --failback=FAILBACK
5568
attempt to fail back to the primary pool after N
5669
seconds, default 60
57-
--cutoff_temp=CUTOFF_TEMP
58-
(requires github.com/mjmvisser/adl3) temperature at
59-
which to skip kernel execution, in C, default=95
60-
--cutoff_interval=CUTOFF_INTERVAL
61-
(requires adl3) how long to not execute calculations
62-
if CUTOFF_TEMP is reached, in seconds, default=0.01
70+
--cutoff-temp=CUTOFF_TEMP
71+
AMD GPUs, BFL only. For GPUs requires
72+
github.com/mjmvisser/adl3. Comma separated
73+
temperatures at which to skip kernel execution, in C,
74+
default=95
75+
--cutoff-interval=CUTOFF_INTERVAL
76+
how long to not execute calculations if CUTOFF_TEMP is
77+
reached, in seconds, default=0.01
6378
--no-server-failbacks
6479
disable using failback hosts provided by server
6580
66-
Kernel Options:
81+
OpenCL Options:
82+
Every option except '-p' and '-v' can be specified as a
83+
comma separated list. If there aren't enough entries specified, the
84+
last available is used. Use --vv to specify per-device vectors usage.
85+
6786
-p PLATFORM, --platform=PLATFORM
68-
use OpenCL platform by id
69-
-d DEVICE, --device=DEVICE
70-
use device by id, by default asks for device
87+
use platform by id
7188
-w WORKSIZE, --worksize=WORKSIZE
72-
work group size, default is maximum returned by opencl
89+
work group size, default is maximum returned by OpenCL
7390
-f FRAMES, --frames=FRAMES
7491
will try to bring single kernel execution to 1/frames
7592
seconds, default=30, increase this for less desktop
7693
lag
7794
-s FRAMESLEEP, --sleep=FRAMESLEEP
7895
sleep per frame in seconds, default 0
79-
-v, --vectors use 2-attempts-wide vectors on all devices
96+
--vv=VECTORS Specifies size of SIMD vectors per selected device.
97+
Only size 0 (no vectors) and 2 supported for now.
98+
Comma separated for each device. e.g. 0,2,2
99+
-v, --vectors Use 2-item vectors for all devices.
80100
```

apoclypsebm/command.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,8 @@ def __init__(self, family=socket.AF_INET, type=socket.SOCK_STREAM, proto=0):
7474
help='will try to bring single kernel execution to 1/frames seconds, default=30, increase this for'
7575
' less desktop lag')
7676
group.add_option('-s', '--sleep', dest='frameSleep', default=[], help='sleep per frame in seconds, default 0')
77-
group.add_option('--vv', dest='vectors', default=[], help='use vectors, default false')
78-
group.add_option('-v', '--vectors', dest='old_vectors', action='store_true', help='use vectors')
77+
group.add_option('--vv', dest='vectors', default=[], help='Specifies size of SIMD vectors per selected device. Only size 0 (no vectors) and 2 supported for now. Comma separated for each device. e.g. 0,2,2')
78+
group.add_option('-v', '--vectors', dest='old_vectors', action='store_true', help='Use 2-item vectors for all devices.')
7979
parser.add_option_group(group)
8080

8181

apoclypsebm/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
VERSION = '0.1.0'
1+
VERSION = '1.0.0'

setup.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@
1616
'author': 'Justin T. Arthur',
1717
'author_email': 'justinarthur@gmail.com',
1818
'url': 'https://github.com/JustinTArthur/apoclypsebm/',
19-
'install_requires': ('pyserial>=2.6', 'PySocks>=1.6.0'),
20-
'extras_require': {'OpenCL': ("pyopencl>=2017.2",)},
19+
'install_requires': ("pyopencl>=2017.2", 'pyserial>=2.6', 'PySocks>=1.6.0'),
2120
'entry_points': {
2221
'console_scripts': (
2322
'apoclypse = apoclypsebm.command:main',

0 commit comments

Comments
 (0)