Pages:
Author

Topic: SILENTARMY v5: Zcash miner, 115 sol/s on R9 Nano, 70 sol/s on GTX 1070 - page 42. (Read 209309 times)

sr. member
Activity: 438
Merit: 250
Build instructions for Windows:

1. Install AMD APP SDK for Windows from here http://developer.amd.com/tools-and-sdks/opencl-zone/amd-accelerated-parallel-processing-app-sdk/
2. Get cygwin from http://cygwin.com
3. Install cygwin with the packages:
 - Devel/git
 - Devel/make
 - Devel/gcc-core
 - Python/python3
4. Start cygwin64 terminal
5. Clone repo: git clone https://github.com/mbevand/silentarmy.git
6. cd silentarmy
7. Build: make OPENCL_HEADERS="/cygdrive/c/Program\ Files\ \(x86\)/AMD\ APP\ SDK/3.0/include/" LIBOPENCL="/cygdrive/c/Program\ Files\ \(x86\)/AMD\ APP\ SDK/3.0/lib/x86_64"
8. Copy cygwin1.dll: cp /cygdrive/c/cygwin64/bin/cygwin1.dll .
9. Get your build path by typing: cygpath . -w -a
10. Create start.bat with:
c:\cygwin64\bin\python3.4m silentarmy --instances=1 -c stratum+tcp://address -u x.x -p x --use 1,2
pause


Does the Cygwin port also have issues wit multiple instances like my MSVC port?
legendary
Activity: 1092
Merit: 1000
Build instructions for Windows:

1. Install AMD APP SDK for Windows from here http://developer.amd.com/tools-and-sdks/opencl-zone/amd-accelerated-parallel-processing-app-sdk/
2. Get cygwin from http://cygwin.com
3. Install cygwin with the packages:
 - Devel/git
 - Devel/make
 - Devel/gcc-core
 - Python/python3
4. Start cygwin64 terminal
5. Clone repo: git clone https://github.com/mbevand/silentarmy.git
6. cd silentarmy
7. Build: make OPENCL_HEADERS="/cygdrive/c/Program\ Files\ \(x86\)/AMD\ APP\ SDK/3.0/include/" LIBOPENCL="/cygdrive/c/Program\ Files\ \(x86\)/AMD\ APP\ SDK/3.0/lib/x86_64"
8. Copy cygwin1.dll: cp /cygdrive/c/cygwin64/bin/cygwin1.dll .
9. Get your build path by typing: cygpath . -w -a
10. Create start.bat with:
c:\cygwin64\bin\python3.4m silentarmy --instances=1 -c stratum+tcp://address -u x.x -p x --use 1,2
pause



Thank you Sir!!
newbie
Activity: 39
Merit: 0
Try replacing ht_store function with this
I'm getting little speed increase( 1070)

krnlx, it works for AMD (R9 NANO) as well.
thx!

P.S.
Curious how to use the HBM memory bandwidth capabilities on R9 NANO/FURY cards in order to adjust the equihash algo.

full member
Activity: 243
Merit: 105
Try replacing ht_store function with this
I'm getting little speed increase( 1070)

Code:
uint ht_store(uint round, __global char *ht, uint i,
ulong xi0, ulong xi1, ulong xi2, ulong xi3, __global uint *rowCounters)
{
    uint    row;
    __global char       *p;
    uint                cnt;
   uint                tid = get_global_id(0);
uint                tlid = get_local_id(0);
#if NR_ROWS_LOG == 16
    if (!(round % 2))
row = (xi0 & 0xffff);
    else
// if we have in hex: "ab cd ef..." (little endian xi0) then this
// formula computes the row as 0xdebc. it skips the 'a' nibble as it
// is part of the PREFIX. The Xi will be stored starting with "ef...";
// 'e' will be considered padding and 'f' is part of the current PREFIX
row = ((xi0 & 0xf00) << 4) | ((xi0 & 0xf00000) >> 12) |
   ((xi0 & 0xf) << 4) | ((xi0 & 0xf000) >> 12);
#elif NR_ROWS_LOG == 18
    if (!(round % 2))
row = (xi0 & 0xffff) | ((xi0 & 0xc00000) >> 6);
    else
row = ((xi0 & 0xc0000) >> 2) |
   ((xi0 & 0xf00) << 4) | ((xi0 & 0xf00000) >> 12) |
   ((xi0 & 0xf) << 4) | ((xi0 & 0xf000) >> 12);
#elif NR_ROWS_LOG == 19
    if (!(round % 2))
row = (xi0 & 0xffff) | ((xi0 & 0xe00000) >> 5);
    else
row = ((xi0 & 0xe0000) >> 1) |
   ((xi0 & 0xf00) << 4) | ((xi0 & 0xf00000) >> 12) |
   ((xi0 & 0xf) << 4) | ((xi0 & 0xf000) >> 12);
#elif NR_ROWS_LOG == 20
    if (!(round % 2))
row = (xi0 & 0xffff) | ((xi0 & 0xf00000) >> 4);
    else
row = ((xi0 & 0xf0000) >> 0) |
   ((xi0 & 0xf00) << 4) | ((xi0 & 0xf00000) >> 12) |
   ((xi0 & 0xf) << 4) | ((xi0 & 0xf000) >> 12);
#else
#error "unsupported NR_ROWS_LOG"
#endif
    xi0 = (xi0 >> 16) | (xi1 << (64 - 16));
    xi1 = (xi1 >> 16) | (xi2 << (64 - 16));
    xi2 = (xi2 >> 16) | (xi3 << (64 - 16));
    p = ht + row * NR_SLOTS * SLOT_LEN;
    uint rowIdx = row/ROWS_PER_UINT;
    uint rowOffset = BITS_PER_ROW*(row%ROWS_PER_UINT);
    uint xcnt = atomic_add(rowCounters + rowIdx, 1 << rowOffset);
    xcnt = (xcnt >> rowOffset) & ROW_MASK;
    cnt = xcnt;
    if (cnt >= NR_SLOTS)
      {
// avoid overflows
atomic_sub(rowCounters + rowIdx, 1 << rowOffset);
return 1;
      }
    p += cnt * SLOT_LEN + xi_offset_for_round(round);
    // store "i" (always 4 bytes before Xi)
//    *(__global uint *)(p - 4) = i;
    if (round == 0 || round == 1)
      {
//*(__global uint *)(p - 4) = i;
// store 24 bytes
ulong2 store;
store.x=xi1;
store.y=xi2;
//*(__global ulong *)(p + 0) = xi0;
*(__global uint *)(p - 4) = i;
*(__global ulong *)(p + 0) = xi0;
*(__global ulong2 *)(p + 8)=store;

      }
    else if (round == 2)
      {
// *(__global uint *)(p - 4) = i;
// store 20 bytes

*(__global ulong *)(p - 4) = ((ulong)i) | (xi0 << 32);
*(__global ulong *)(p + 4) = (xi0 >> 32) | (xi1 << 32);
*(__global ulong *)(p + 12) = (xi1 >> 32) | (xi2 << 32);

      }
    else if (round == 3)
      {
// *(__global uint *)(p - 4) = i;
// store 16 bytes
//8 byte align
*(__global ulong *)(p - 4) = ((ulong)i) | (xi0 << 32);
*(__global ulong *)(p + 4) = (xi0 >> 32) | (xi1 << 32);
*(__global uint *)(p + 12) = (xi1 >> 32);
      }
    else if (round == 4)
      {
// *(__global uint *)(p - 4) = i;
// store 16 bytes
*(__global uint *)(p - 4) = i;
*(__global ulong *)(p + 0) = xi0;
*(__global ulong *)(p + 8) = xi1;
      }
    else if (round == 5)
      {
//*(__global uint *)(p - 4) = i;
// store 12 bytes
// *(__global uint *)(p - 4) = i;

*(__global uint *)(p - 4) = i;
*(__global ulong *)(p + 0) = xi0;
*(__global uint *)(p + 8) = xi1;
      }
    else if (round == 6 || round == 7)
      {
// *(__global uint *)(p - 4) = i;
// store 8 bytes
*(__global ulong *)(p - 4) = ((ulong)i) | (xi0 << 32);
*(__global uint *)(p + 4) = (xi0 >> 32);
      }
    else if (round == 8)
      {
//4 byte align
*(__global uint *)(p - 4) = i;
// store 4 bytes
*(__global uint *)(p + 0) = xi0;

      }

//*(__global uint *)(p - 4) = i;
    return 0;
}

And part of xor_and_store

Code:
    else if (round == 3)
      {
// xor 20 bytes
uint one = *(__global uint *)a ^ *(__global uint *)b;



uint4 loada = *(__global uint4 *)((__global char *)a + 4);
uint4 loadb = *(__global uint4 *)((__global char *)b + 4);
uint4 stor = loada ^ loadb;


xi0 = ((ulong)one ) | ((ulong) stor.x << 32);
xi1 = ((ulong)stor.y << 32) | ((ulong)stor.z );
xi2 = stor.w;


//xi0 = half_aligned_long(a, 0) ^ half_aligned_long(b, 0);
//xi1 = half_aligned_long(a, 8) ^ half_aligned_long(b, 8);
//xi2 = well_aligned_int(a, 16) ^ well_aligned_int(b, 16);
      }
legendary
Activity: 3248
Merit: 1070
only 30sols on a 1060, does not seem right. what are others getting?

it should be over 60 sol with the last build(reported early in this thread, so maybe now it's even more) but i don't know the setting because i don't own any

zawawa you found a way to port the version on windows without all the other things that need to be installed?

thats what iam useing, latest drivers with the correct python files, but wont go over 30 sols, got me beat atm. my 970 does 43 sols and my 750ti does 25 sols, so they are working fine. is there a prefered driver version to be useing with it?

i don't know but i'm not using the last driver but the .63, you tried with different setting on msiafterburner like tweaking core and mem?
legendary
Activity: 882
Merit: 1000
only 30sols on a 1060, does not seem right. what are others getting?

it should be over 60 sol with the last build(reported early in this thread, so maybe now it's even more) but i don't know the setting because i don't own any

zawawa you found a way to port the version on windows without all the other things that need to be installed?

thats what iam useing, latest drivers with the correct python files, but wont go over 30 sols, got me beat atm. my 970 does 43 sols and my 750ti does 25 sols, so they are working fine. is there a prefered driver version to be useing with it?
newbie
Activity: 3
Merit: 0
Build instructions for Windows:

1. Install AMD APP SDK for Windows from here http://developer.amd.com/tools-and-sdks/opencl-zone/amd-accelerated-parallel-processing-app-sdk/
2. Get cygwin from http://cygwin.com
3. Install cygwin with the packages:
 - Devel/git
 - Devel/make
 - Devel/gcc-core
 - Python/python3
4. Start cygwin64 terminal
5. Clone repo: git clone https://github.com/mbevand/silentarmy.git
6. cd silentarmy
7. Build: make OPENCL_HEADERS="/cygdrive/c/Program\ Files\ \(x86\)/AMD\ APP\ SDK/3.0/include/" LIBOPENCL="/cygdrive/c/Program\ Files\ \(x86\)/AMD\ APP\ SDK/3.0/lib/x86_64"
8. Copy cygwin1.dll: cp /cygdrive/c/cygwin64/bin/cygwin1.dll .
9. Get your build path by typing: cygpath . -w -a
10. Create start.bat with:
c:\cygwin64\bin\python3.4m silentarmy --instances=1 -c stratum+tcp://address -u x.x -p x --use 1,2
pause
legendary
Activity: 1092
Merit: 1000
I just copied the newer files over the old one's without compiling it.  Basically no speed advantage there, so I think we really need a new compile for Windows.
legendary
Activity: 1151
Merit: 1001
does v5 have a windows version? I thought it was supposed to be released? if I missed it sorry, thanks! looks like great work!
Yes there is a port for windows,if you read developments here it's all there with instructions
Where is that?! :/
full member
Activity: 236
Merit: 100
How to compiler silentarmy in cygwin ?
I setup cygwin but don't know compiler it.
newbie
Activity: 6
Merit: 0
Is there any way to get paid on ZCL address? How do I create ZCL adress if I havee only windows?
You can create ZCL address on the exchange account, for example c-cex

Okay, I changed my start.bat to mine on pool.mn with my pool.mn account credentials, and set in profile for payment address that one that I got on c-cex website after registering.
I hope I'm doing that right. Kinda new to mining and all.
newbie
Activity: 3
Merit: 0
Is there any way to get paid on ZCL address? How do I create ZCL adress if I havee only windows?
You can create ZCL address on the exchange account, for example c-cex
newbie
Activity: 6
Merit: 0
Can anyone tell mee if I can use this miner for Zcash CLassic? ZCL if I'm not mistaken.
I did try to run this and it seems it's mining, but address is still from ZEC, that I created on jaxx program.

Is there any way to get paid on ZCL address? How do I create ZCL adress if I havee only windows?
sr. member
Activity: 347
Merit: 255
does v5 have a windows version? I thought it was supposed to be released? if I missed it sorry, thanks! looks like great work!
Yes there is a port for windows,if you read developments here it's all there with instructions
legendary
Activity: 3248
Merit: 1070
only 30sols on a 1060, does not seem right. what are others getting?

it should be over 60 sol with the last build(reported early in this thread, so maybe now it's even more) but i don't know the setting because i don't own any

zawawa you found a way to port the version on windows without all the other things that need to be installed?
member
Activity: 60
Merit: 10
does v5 have a windows version? I thought it was supposed to be released? if I missed it sorry, thanks! looks like great work!
sr. member
Activity: 273
Merit: 250
With the Linux binary releases I make I also included a "mine" script that will mine to my mph account.  I just checked the balance, and it's .0035 ZEC, or ~42c.  Who says open-source software work doesn't pay. :-)

I'm mining with single core to mrb's account for a few days, post your address and I'll put another core for yours Smiley

'nerdralph' is my miningpoolhub account, or with a different pool use: t1MaD62DS2bbzxCuZHnkB8g5Yc2wbeT1g9z
Thanks in advance.  Not that I need the money, but it's nice to know when someone likes the work enough to make a small donation.


Usually when testing the miner, it is run on the default setting and mined to whoever account is pre-set. It will be 1 zec later on.  Grin
sr. member
Activity: 519
Merit: 250
I am always testing some time with built-in .bat

Guys can someone tell me if i can mine with more tha 3+Nvidia cards per rig without hasrate decrease from the CPU usage problem thx in advance
hero member
Activity: 1246
Merit: 708
I am always testing some time with built-in .bat
sr. member
Activity: 728
Merit: 304
Miner Developer
If open source mining software is going to work and keep up with other fee paying mining software we must show support,I suggest with next release everyone mines to the developers zcash address for first hour at lest and show support for the great work.

Yeah, I think it's totally worth it to put up a serious open source competition against Sir. Claymore  Wink
We shall be back.
Pages:
Jump to: