Release v1.0.0-1.1.0
This commit is contained in:
parent
f5b60562e8
commit
ea5c2dfb13
61
README.md
61
README.md
|
@ -13,24 +13,43 @@ Hash: SHA256
|
||||||
|
|
||||||
Windows binary release checksums
|
Windows binary release checksums
|
||||||
|
|
||||||
sha1sum xmr-stak-cpu.exe
|
sha1sum xmr-stak-amd.exe opencl/*
|
||||||
32f551c891040eda2c25e18e6287665471a5a653 xmr-stak-cpu.exe
|
1fa7364af3b21dcc5f5bd54f6e862613422085d3 xmr-stak-amd.exe
|
||||||
|
5acb656005a86cad90c6327985c3795d96a96c91 opencl/blake256.cl
|
||||||
|
9e4e276afd9000945c25f6e5a5259977a29239f4 opencl/cryptonight.cl
|
||||||
|
c9fb5e4bfb137ff60063978eecd10bffb7c4deb6 opencl/groestl256.cl
|
||||||
|
361dfce776ee4a89b100d139a879af5d0f0d65e4 opencl/jh.cl
|
||||||
|
429f559190d1163335847cc08df955234051504b opencl/wolf-aes.cl
|
||||||
|
e2862a6d7094aeab21844d3155803e5da99b4a46 opencl/wolf-skein.cl
|
||||||
|
|
||||||
sha3sum xmr-stak-cpu.exe
|
sha1sum xmr-stak-amd.exe opencl/* | sha1sum
|
||||||
ed12841738c899a3eb61f51787aa670c25b64ce3c5a626717e6a8f6b xmr-stak-cpu.exe
|
ac5eadbcc557d7192ea4ba887a50ba25b040b5fa -
|
||||||
|
|
||||||
|
sha3sum xmr-stak-amd.exe opencl/*
|
||||||
|
a269811145448fbec2f763762da0c545ded76eccc88e2a55e415ab0b xmr-stak-amd.exe
|
||||||
|
a52b05548fd094e7bbb2367d7922bf19af3ed23ad5df53004fae0825 opencl/blake256.cl
|
||||||
|
a49c9da554d7b01d091eea56e8b97b943ca33cd2a64a1f3f3169e202 opencl/cryptonight.cl
|
||||||
|
13315b0a475212c92e10b7627b03a0813132437d4496b6596821b909 opencl/groestl256.cl
|
||||||
|
89548b917dbe216f5809624ebe350859c1d800048909322049f93d23 opencl/jh.cl
|
||||||
|
806eb1d4e3d7b6630a422bb42ee00faa76d31143b7c1cbde65e46938 opencl/wolf-aes.cl
|
||||||
|
052176a740a5a0bc088feea0aa7a72f0e9d96d6b6ffd00844676dd17 opencl/wolf-skein.cl
|
||||||
|
|
||||||
|
sha3sum xmr-stak-amd.exe opencl/* | sha3sum
|
||||||
|
50ff39acfdc5973014a26a2027a9fd20a9211cfee44bb61c16c235c6 -
|
||||||
|
|
||||||
date
|
date
|
||||||
Mon 16 Jan 15:13:25 GMT 2017
|
Mon 23 Jan 19:32:15 GMT 2017
|
||||||
|
|
||||||
-----BEGIN PGP SIGNATURE-----
|
-----BEGIN PGP SIGNATURE-----
|
||||||
Version: GnuPG v2
|
Version: GnuPG v2
|
||||||
|
|
||||||
iQEcBAEBCAAGBQJYfONvAAoJEPsk95p+1Bw02coH/0by+VMK76gnmpNjIxDcphkV
|
iQEcBAEBCAAGBQJYhlpbAAoJEPsk95p+1Bw0QyUH/2tIagIw60i9Gy7mICfiTy6u
|
||||||
S1GG+f0sIAYUrGpoMCJTXbr7hU3Na+grTbt6xLM2Tb0xJjX4Mc47Cixajzy7+TTx
|
AuWz+D5Zg/DEUOj6ZDBoZt+DpDvTPuwjbrCyn3Uf7jrEF+ZNI5K132Dt6Rh10v9K
|
||||||
R2+CvBRl8LG9zob6JNiohvxD1+SK7RWDKWenFyDlr9BewgE/ArqZM+16BQBrLP9H
|
JSCxUB0q2mqUYkBY1MrIW0LM7ACg6RYQBuAq/2EVNt3FSKEFC1EbWa605IiXWXMu
|
||||||
XIWy1wh/lcSYuS548tnUYdNOmEnR9TqA454M4r8PED85HSpNmvI+eG8fZ8OK471C
|
WraTY0lxefq+gJJGIlworKooSGuQFEK1d7huYOQvjjmsvZLLyr7ElVirxAmoob8g
|
||||||
3yMupjYlAbiEBT+gE6bZwLeeCH9NO2gGeBAb31w8RBsMRjy+VvhFhTOoJwZbXj9e
|
z5EFHwC1rUm12ajJbLfGfRV7vAUBct5iiVDMQMHx2QGq889BdZd0gcmzv6E0wB5L
|
||||||
sMUwNBu+fLVoilMVvp8SDpQ7Uw/WFT085N2eJiCCuEbHgFAwM3uwD6VHz3eXd0s=
|
cFUnVBC1l8+bnfyzHyk1QXEogKAYK8t0bHBUaYcRV3q1KKI+X41HokX8KTQLVp8=
|
||||||
=QJQj
|
=Rayc
|
||||||
-----END PGP SIGNATURE-----
|
-----END PGP SIGNATURE-----
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -51,14 +70,9 @@ To do a static build for a system without gcc 5.1+
|
||||||
```
|
```
|
||||||
Note - cmake caches variables, so if you want to do a dynamic build later you need to specify '-DCMAKE_BUILD_TYPE=RELEASE'
|
Note - cmake caches variables, so if you want to do a dynamic build later you need to specify '-DCMAKE_BUILD_TYPE=RELEASE'
|
||||||
|
|
||||||
#### CPU mining performance
|
#### Mining performance
|
||||||
|
|
||||||
Performance is nearly identical to the closed source paid miners. Here are some numbers:
|
Mining core is a direct port (except for sercurity fixes) of wolf9466's AMD mining code. Performance is likely to be identical.
|
||||||
|
|
||||||
* **I7-2600K** - 266 H/s
|
|
||||||
* **I7-6700** - 276 H/s (with a separate GPU miner)
|
|
||||||
* **Dual X5650** - 466 H/s (depends on NUMA)
|
|
||||||
* **Dual E5640** - 365 H/s (same as above)
|
|
||||||
|
|
||||||
#### Example reports
|
#### Example reports
|
||||||
```
|
```
|
||||||
|
@ -109,9 +123,9 @@ Network error log:
|
||||||
By default the miner will donate 1% of the hashpower (1 minute in 100 minutes) to my pool. If you want to change that, edit **donate-level.h** before you build the binaries.
|
By default the miner will donate 1% of the hashpower (1 minute in 100 minutes) to my pool. If you want to change that, edit **donate-level.h** before you build the binaries.
|
||||||
|
|
||||||
If you want to donate directly to support further development, here is my wallet
|
If you want to donate directly to support further development, here is my wallet
|
||||||
* 4581HhZkQHgZrZjKeCfCJxZff9E3xCgHGF25zABZz7oR71TnbbgiS7sK9jveE6Dx6uMs2LwszDuvQJgRZQotdpHt1fTdDhk
|
```
|
||||||
|
4581HhZkQHgZrZjKeCfCJxZff9E3xCgHGF25zABZz7oR71TnbbgiS7sK9jveE6Dx6uMs2LwszDuvQJgRZQotdpHt1fTdDhk
|
||||||
|
```
|
||||||
|
|
||||||
#### PGP Key
|
#### PGP Key
|
||||||
```
|
```
|
||||||
|
@ -153,6 +167,3 @@ c4hC0Yg9Dha1OoE5CJCqVL+ic4vAyB1urAwBlsd/wH8=
|
||||||
|
|
||||||
Download and install this [runtime package](https://www.microsoft.com/en-us/download/details.aspx?id=48145) from Microsoft. *Warning: Do NOT use "missing dll" sites - dll's are exe files with another name, and it is a fairly safe bet that any dll on a shady site like that will be trojaned. Please download offical runtimes from Microsoft above.*
|
Download and install this [runtime package](https://www.microsoft.com/en-us/download/details.aspx?id=48145) from Microsoft. *Warning: Do NOT use "missing dll" sites - dll's are exe files with another name, and it is a fairly safe bet that any dll on a shady site like that will be trojaned. Please download offical runtimes from Microsoft above.*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -34,6 +34,11 @@ static inline void port_sleep(size_t sec)
|
||||||
}
|
}
|
||||||
#endif // _WIN32
|
#endif // _WIN32
|
||||||
|
|
||||||
|
static inline long long unsigned int int_port(size_t i)
|
||||||
|
{
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
#include "gpu.h"
|
#include "gpu.h"
|
||||||
|
|
||||||
const char* err_to_str(cl_int ret)
|
const char* err_to_str(cl_int ret)
|
||||||
|
@ -201,7 +206,7 @@ size_t InitOpenCLGpu(cl_context opencl_ctx, GpuContext* ctx, char* source_code)
|
||||||
size_t MaximumWorkSize;
|
size_t MaximumWorkSize;
|
||||||
cl_int ret;
|
cl_int ret;
|
||||||
|
|
||||||
if((clGetDeviceInfo(ctx->DeviceID, CL_DEVICE_MAX_WORK_GROUP_SIZE, sizeof(size_t), &MaximumWorkSize, NULL)) != CL_SUCCESS)
|
if((ret = clGetDeviceInfo(ctx->DeviceID, CL_DEVICE_MAX_WORK_GROUP_SIZE, sizeof(size_t), &MaximumWorkSize, NULL)) != CL_SUCCESS)
|
||||||
{
|
{
|
||||||
printer_print_msg("Error %s when querying a device's max worksize using clGetDeviceInfo.", err_to_str(ret));
|
printer_print_msg("Error %s when querying a device's max worksize using clGetDeviceInfo.", err_to_str(ret));
|
||||||
return ERR_OCL_API;
|
return ERR_OCL_API;
|
||||||
|
@ -292,7 +297,7 @@ size_t InitOpenCLGpu(cl_context opencl_ctx, GpuContext* ctx, char* source_code)
|
||||||
}
|
}
|
||||||
|
|
||||||
char options[32];
|
char options[32];
|
||||||
snprintf(options, sizeof(options), "-I. -DWORKSIZE=%lu", ctx->workSize);
|
snprintf(options, sizeof(options), "-I. -DWORKSIZE=%llu", int_port(ctx->workSize));
|
||||||
ret = clBuildProgram(ctx->Program, 1, &ctx->DeviceID, options, NULL, NULL);
|
ret = clBuildProgram(ctx->Program, 1, &ctx->DeviceID, options, NULL, NULL);
|
||||||
if(ret != CL_SUCCESS)
|
if(ret != CL_SUCCESS)
|
||||||
{
|
{
|
||||||
|
@ -367,7 +372,12 @@ size_t InitOpenCL(GpuContext* ctx, size_t num_gpus, size_t platform_idx)
|
||||||
return ERR_STUPID_PARAMS;
|
return ERR_STUPID_PARAMS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*MSVC skimping on devel costs by shoehorning C99 to be a subset of C++? Noooo... can't be.*/
|
||||||
|
#ifdef __GNUC__
|
||||||
cl_platform_id PlatformIDList[entries];
|
cl_platform_id PlatformIDList[entries];
|
||||||
|
#else
|
||||||
|
cl_platform_id* PlatformIDList = _alloca(entries * sizeof(cl_platform_id));
|
||||||
|
#endif
|
||||||
if((ret = clGetPlatformIDs(entries, PlatformIDList, NULL)) != CL_SUCCESS)
|
if((ret = clGetPlatformIDs(entries, PlatformIDList, NULL)) != CL_SUCCESS)
|
||||||
{
|
{
|
||||||
printer_print_msg("Error %s when calling clGetPlatformIDs for platform ID information.", err_to_str(ret));
|
printer_print_msg("Error %s when calling clGetPlatformIDs for platform ID information.", err_to_str(ret));
|
||||||
|
@ -390,7 +400,11 @@ size_t InitOpenCL(GpuContext* ctx, size_t num_gpus, size_t platform_idx)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef __GNUC__
|
||||||
cl_device_id DeviceIDList[entries];
|
cl_device_id DeviceIDList[entries];
|
||||||
|
#else
|
||||||
|
cl_device_id* DeviceIDList = _alloca(entries * sizeof(cl_device_id));
|
||||||
|
#endif
|
||||||
if((ret = clGetDeviceIDs(PlatformIDList[platform_idx], CL_DEVICE_TYPE_GPU, entries, DeviceIDList, NULL)) != CL_SUCCESS)
|
if((ret = clGetDeviceIDs(PlatformIDList[platform_idx], CL_DEVICE_TYPE_GPU, entries, DeviceIDList, NULL)) != CL_SUCCESS)
|
||||||
{
|
{
|
||||||
printer_print_msg("Error %s when calling clGetDeviceIDs for device ID information.", err_to_str(ret));
|
printer_print_msg("Error %s when calling clGetDeviceIDs for device ID information.", err_to_str(ret));
|
||||||
|
@ -398,7 +412,11 @@ size_t InitOpenCL(GpuContext* ctx, size_t num_gpus, size_t platform_idx)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Indexes sanity checked above
|
// Indexes sanity checked above
|
||||||
|
#ifdef __GNUC__
|
||||||
cl_device_id TempDeviceList[num_gpus];
|
cl_device_id TempDeviceList[num_gpus];
|
||||||
|
#else
|
||||||
|
cl_device_id* TempDeviceList = _alloca(entries * sizeof(cl_device_id));
|
||||||
|
#endif
|
||||||
for(int i = 0; i < num_gpus; ++i)
|
for(int i = 0; i < num_gpus; ++i)
|
||||||
{
|
{
|
||||||
ctx[i].DeviceID = DeviceIDList[ctx[i].deviceIdx];
|
ctx[i].DeviceID = DeviceIDList[ctx[i].deviceIdx];
|
||||||
|
|
|
@ -80,8 +80,8 @@ int main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
printer::inst()->print_str("-------------------------------------------------------------------\n");
|
printer::inst()->print_str("-------------------------------------------------------------------\n");
|
||||||
printer::inst()->print_str("XMR-Stak-CPU mining software, CPU Version.\n");
|
printer::inst()->print_str("XMR-Stak-AMD mining software, AMD Version.\n");
|
||||||
printer::inst()->print_str("Based on CPU mining code by wolf9466 (heavily optimized by myself).\n");
|
printer::inst()->print_str("AMD mining code was written by wolf9466.\n");
|
||||||
printer::inst()->print_str("Brought to you by fireice_uk under GPLv3.\n\n");
|
printer::inst()->print_str("Brought to you by fireice_uk under GPLv3.\n\n");
|
||||||
char buffer[64];
|
char buffer[64];
|
||||||
snprintf(buffer, sizeof(buffer), "Configurable dev donation level is set to %.1f %%\n\n", fDevDonationLevel * 100.0);
|
snprintf(buffer, sizeof(buffer), "Configurable dev donation level is set to %.1f %%\n\n", fDevDonationLevel * 100.0);
|
||||||
|
|
|
@ -340,14 +340,6 @@ bool jconf::parse_config(const char* sFilename)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
if(GetSlowMemSetting() == no_mlck)
|
|
||||||
{
|
|
||||||
printer::inst()->print_msg(L0, "On Windows large pages need mlock. Please use another option.\n");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
#endif // _WIN32
|
|
||||||
|
|
||||||
printer::inst()->set_verbose_level(prv->configValues[iVerboseLevel]->GetUint64());
|
printer::inst()->set_verbose_level(prv->configValues[iVerboseLevel]->GetUint64());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
#include "jext.h"
|
#include "jext.h"
|
||||||
#include "socks.h"
|
#include "socks.h"
|
||||||
|
|
||||||
#define AGENTID_STR "xmr-stak-cpu/1.0"
|
#define AGENTID_STR "xmr-stak-amd/1.0"
|
||||||
|
|
||||||
using namespace rapidjson;
|
using namespace rapidjson;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue