Release v1.0.0-1.1.0

This commit is contained in:
fireice-uk 2017-01-23 20:00:33 +00:00
parent f5b60562e8
commit ea5c2dfb13
5 changed files with 59 additions and 38 deletions

View File

@ -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.*

View File

@ -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];

View File

@ -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);

View File

@ -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;
} }

View File

@ -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;