Bitcoin Forum
June 20, 2024, 04:45:19 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 [24] 25 26 27 »
461  Bitcoin / Development & Technical Discussion / Re: VanitySearch (Yet another address prefix finder) on: March 17, 2019, 03:47:15 PM
I committed a new Makefile with debug option.

Code:
make clean
make gpu=1 debug=1 all

In debug mode no inlining is done.

But, obviously it is much slower.
So launch

Code:
pons@linpons:~/VanitySearch$ ./VanitySearch -g 1 -check
462  Bitcoin / Development & Technical Discussion / Re: VanitySearch (Yet another address prefix finder) on: March 17, 2019, 03:05:11 PM
Could you try this:
Code:
pons@linpons:~/VanitySearch$ /usr/local/cuda/bin/cuda-memcheck --tool memcheck VanitySearch -g 1 -check

On my Linux it does not work (too old hardware) but on windows it ends like this.

Code:
C:\C++\VanitySearch\x64\ReleaseSM30>cuda-memcheck --tool memcheck VanitySearch.exe -g 1 -check
...
Check Calc PubKey (odd) 18aPiLmTow7Xgu96msrDYvSSWweCvB9oBA:OK
GPU: GPU #0 GeForce GTX 645 (3x192 cores) Grid(1x128)
Endianness: Little
Seed: 1006346800
401.220 KiloKey/sec
ComputeKeys() found 46 items , CPU check...
GPU/CPU check OK
========= ERROR SUMMARY: 0 errors
463  Bitcoin / Development & Technical Discussion / Re: VanitySearch (Yet another address prefix finder) on: March 17, 2019, 01:14:52 PM
Just to try.
Try to reduce the number of thread  per block from 128 to 64.
And if it works to double the number of block per grid using -g

GPUEngine.h:28

Code:
#define NB_TRHEAD_PER_GROUP 64

There is a typo in the code Wink
464  Bitcoin / Development & Technical Discussion / Re: VanitySearch (Yet another address prefix finder) on: March 17, 2019, 11:12:47 AM
OK it confirms what I'm thinking.
It seems that this code is now near the limit of what CUDA (or nvcc) can do.
May be CUDA SDK 10 can help.
I'll try (for other users also) to make things work for CUDA 10 under Linux.
I'll try also to reduce the code size.
465  Bitcoin / Development & Technical Discussion / Re: VanitySearch (Yet another address prefix finder) on: March 17, 2019, 09:48:34 AM
After the mark, calculation are 50% wrong.
On my 2 configs, all is working fine.
It really looks like the weird problem I had last time.

The _GetHash160Comp is ok, it is also tested alone by the check function.
The _ModMult is heavily used during ecc calculation.
The CHECK_POINT() works 100% the in first case.

I would try:
 __noinline__ _ModMult,
__noinline__  ModNeg256
Remove the whole lookup32 test in CheckPoint() (not used here)

I will add more info...


Code:
__device__ __noinline__ void CheckHashComp(prefix_t *prefix, uint64_t *px, uint64_t *py,
  int32_t incr, uint32_t tid, uint32_t *lookup32, uint32_t *out) {

  uint32_t   h[20];
  uint64_t   pe1x[4];
  uint64_t   pe2x[4];

  _GetHash160Comp(px, py, (uint8_t *)h);
  CHECK_POINT(h, incr, 0);    <-- 100% Ok up to here, means that (px,py) is good
  _ModMult(pe1x, px, _beta);
  _GetHash160Comp(pe1x, py, (uint8_t *)h); <-- 50% Wrong from here
  CHECK_POINT(h, incr, 1);
  _ModMult(pe2x, px, _beta2);
  _GetHash160Comp(pe2x, py, (uint8_t *)h);
  CHECK_POINT(h, incr, 2);

  ModNeg256(py);

  _GetHash160Comp(px, py, (uint8_t *)h);
  CHECK_POINT(h, -incr, 0);
  _GetHash160Comp(pe1x, py, (uint8_t *)h);
  CHECK_POINT(h, -incr, 1);
  _GetHash160Comp(pe2x, py, (uint8_t *)h);
  CHECK_POINT(h, -incr, 2);

}
466  Bitcoin / Development & Technical Discussion / Re: VanitySearch (Yet another address prefix finder) on: March 17, 2019, 08:14:12 AM
Ok Thanks i will investigate.
That's quite strange the point seems OK but all sym and endo are sometimes right sometimes wrong.
Funny bug Smiley
467  Bitcoin / Development & Technical Discussion / Re: VanitySearch (Yet another address prefix finder) on: March 17, 2019, 07:47:36 AM
Try also with -g option to reduce the number of GPU thread.
The -g option must be placed before the -check option in the command line.
468  Bitcoin / Development & Technical Discussion / Re: VanitySearch (Yet another address prefix finder) on: March 17, 2019, 07:46:16 AM
The result are constant ?
I mean, for instance,  GPU: point   correct [252/252] is always at 100% ?
469  Bitcoin / Development & Technical Discussion / Re: VanitySearch (Yet another address prefix finder) on: March 17, 2019, 04:39:22 AM
Hello,

I added more details in the check function.
I also enabled the #define FULLCHECK (GPUEngine.cu:1163) which will perform individual test on hash function and ModularMult.
470  Bitcoin / Development & Technical Discussion / Re: VanitySearch (Yet another address prefix finder) on: March 16, 2019, 07:38:29 PM
771 lines of "Expected item not found"

This time all wrong.
471  Bitcoin / Development & Technical Discussion / Re: VanitySearch (Yet another address prefix finder) on: March 16, 2019, 07:37:13 PM
Tomorrow, I will add more details in the check function in order to try to understand what is going wrong.
As on my 2 config all is going fine, it is very difficult to debug.

472  Bitcoin / Development & Technical Discussion / Re: VanitySearch (Yet another address prefix finder) on: March 16, 2019, 07:24:08 PM
OK. That means that 1545 - 549 are ok.
An idea would also to noline the _ModInvGrouped (Line 594 GPUEngine.cu)
I committed GPUEngine.cu (I just removed unused functions) so the line number may be incorrect.
473  Bitcoin / Development & Technical Discussion / Re: VanitySearch (Yet another address prefix finder) on: March 16, 2019, 06:42:13 PM
What you can try is to remove the endomorphism for checking.

Comment the following code in GPUEngine.cu around line 1843 (in the Check() function)

Code:
      /*
      secp.GetHash160(p1, searchComp, h);
      pr = *(prefix_t *)h;
      if (pr == 0xFEFE || pr == 0x1234) {
        nbFoundCPU++;
        ok &= CheckHash(h, found);
      }
      secp.GetHash160(p2, searchComp, h);
      pr = *(prefix_t *)h;
      if (pr == 0xFEFE || pr == 0x1234) {
        nbFoundCPU++;
        ok &= CheckHash(h, found);
      }
      */

      // Symetrics
      pt.y.ModNeg();
      p1.y.ModNeg();
      p2.y.ModNeg();

      secp.GetHash160(pt, searchComp, h);
      pr = *(prefix_t *)h;
      if (pr == 0xFEFE || pr == 0x1234) {
        nbFoundCPU++;
        ok &= CheckHash(h, found);
      }
      /*
      secp.GetHash160(p1, searchComp, h);
      pr = *(prefix_t *)h;
      if (pr == 0xFEFE || pr == 0x1234) {
        nbFoundCPU++;
        ok &= CheckHash(h, found);
      }
      secp.GetHash160(p2, searchComp, h);
      pr = *(prefix_t *)h;
      if (pr == 0xFEFE || pr == 0x1234) {
        nbFoundCPU++;
        ok &= CheckHash(h, found);
      }
      */

And the following in GPUCompute.h around line 78 (jn the CheckHashComp() function)

Code:
  _GetHash160Comp(px, py, (uint8_t *)h);
  CHECK_POINT(h, incr, 0);
  /*
  _ModMult(pe1x, px, _beta);
  _GetHash160Comp(pe1x, py, (uint8_t *)h);
  CHECK_POINT(h, incr, 1);
  _ModMult(pe2x, px, _beta2);
  _GetHash160Comp(pe2x, py, (uint8_t *)h);
  CHECK_POINT(h, incr, 2);
  */

  ModNeg256(py);

  _GetHash160Comp(px, py, (uint8_t *)h);
  CHECK_POINT(h, -incr, 0);
  /*
  _GetHash160Comp(pe1x, py, (uint8_t *)h);
  CHECK_POINT(h, -incr, 1);
  _GetHash160Comp(pe2x, py, (uint8_t *)h);
  CHECK_POINT(h, -incr, 2);
  */


And then make gpu=1 clean and make gpu=1 all
474  Bitcoin / Development & Technical Discussion / Re: VanitySearch (Yet another address prefix finder) on: March 16, 2019, 06:31:06 PM
At the end of the list you have the number of items found by the CPU if this number is equal to 549, that means that all are wrong.
475  Bitcoin / Development & Technical Discussion / Re: VanitySearch (Yet another address prefix finder) on: March 16, 2019, 06:05:18 PM
They are not compile errors, it is the verbose ouput of nvcc, the _Z10CheckPointPjiiPtjS_S_ is a mangled name of the function CheckPoint in GPUCompute.h that I added in the last release.

476  Bitcoin / Development & Technical Discussion / Re: VanitySearch (Yet another address prefix finder) on: March 16, 2019, 05:43:02 PM
The check works flawlessly on my configs, both linux and windows. It should work.
There is something wrong somewhere but where...
477  Bitcoin / Development & Technical Discussion / Re: VanitySearch (Yet another address prefix finder) on: March 16, 2019, 04:14:48 PM
I found out an illegal memory access.
I committed a fix on git source.
Thanks to test if it is better or not...
478  Bitcoin / Development & Technical Discussion / Re: VanitySearch (Yet another address prefix finder) on: March 16, 2019, 03:10:39 PM
Good news.
But restoring the group size, and get back in my linux git repo the problem appears.
I will try to debug this.
479  Bitcoin / Development & Technical Discussion / Re: VanitySearch (Yet another address prefix finder) on: March 16, 2019, 03:06:26 PM
The 1111 is not a problem difficult to solve.
But the other concerning the GPU, f...ing hell !

And all work fine on my 8 years old quadro 600 !
480  Bitcoin / Development & Technical Discussion / Re: VanitySearch (Yet another address prefix finder) on: March 16, 2019, 02:37:51 PM
I confirm that there is a problem with difficulty calculation when searching prefix like 1111something...
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 [24] 25 26 27 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!