Giter Site home page Giter Site logo

Comments (11)

qwahzi avatar qwahzi commented on July 28, 2024 3

Wow, thank you so much for the detailed research and workaround @adrianegraphene! That indeed resolved this issue for me! I am now able to run with the -g flag and get >2,000,000 keys/second 🙌

from nano-vanity.

adrianegraphene avatar adrianegraphene commented on July 28, 2024 2

Ok, so I figured out the issue for myself using a 3070 GPU on a Lenovo Legion 7 2021 AMD model and I'm convinced I can get it to work for you too.

I simply rolled-back my GPU drivers to the dates that I recall it was working for me... So I downloaded and installed this set of driver from Aug. 2021. I didn't even have to restart my laptop, it just worked after that.

image

Now, for yours... you'll want to try version 471.96 below.
I found your 1080 TI drivers released on the same dates here.
Can you try making a backup of your system, then downloading & running the 1080 TI drivers linked above?

Once installed, you'll want to cargo uninstall nano-vanity and cargo install nano-vanity --features gpu again.

I imagine you're running the most recent branch of nano-vanity... I have a slightly modified version, so if you still get issues after downloading / installing / runnning with the August 31st 2021 drivers, let me know and I'll pass the cleaned version of my modified branch to you for further testing.

Edit: If you're using a different Windows version like 8... you'll want to use this.

from nano-vanity.

qbbt avatar qbbt commented on July 28, 2024 1

Something in the 40xx series release broke this. The last driver 517.48 before that date still works.

from nano-vanity.

qwahzi avatar qwahzi commented on July 28, 2024

Part 2 of error:

curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                                       ^
<kernel>:1879:17: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_add(r->y, r->x, a);
                       ^~~~
<kernel>:1136:28: note: passing argument to parameter 'out' here
curve25519_add(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                           ^
<kernel>:1879:23: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_add(r->y, r->x, a);
                             ^~~~
<kernel>:1136:51: note: passing argument to parameter 'a' here
curve25519_add(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                  ^
<kernel>:1880:17: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_sub(r->x, r->x, a);
                       ^~~~
<kernel>:1191:28: note: passing argument to parameter 'out' here
curve25519_sub(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                           ^
<kernel>:1880:23: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_sub(r->x, r->x, a);
                             ^~~~
<kernel>:1191:51: note: passing argument to parameter 'a' here
curve25519_sub(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                  ^
<kernel>:1881:20: error: passing 'const __generic uint32_t *' (aka 'const __generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_mul(c, p->t, q->t2d);
                          ^~~~
<kernel>:1258:51: note: passing argument to parameter 'a' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                  ^
<kernel>:1881:26: error: passing 'const __generic uint32_t *' (aka 'const __generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_mul(c, p->t, q->t2d);
                                ^~~~~~
<kernel>:1258:72: note: passing argument to parameter 'b' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                                       ^
<kernel>:1882:17: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_mul(r->t, p->z, q->z);
                       ^~~~
<kernel>:1258:28: note: passing argument to parameter 'out' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                           ^
<kernel>:1882:23: error: passing 'const __generic uint32_t *' (aka 'const __generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_mul(r->t, p->z, q->z);
                             ^~~~
<kernel>:1258:51: note: passing argument to parameter 'a' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                  ^
<kernel>:1882:29: error: passing 'const __generic uint32_t *' (aka 'const __generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_mul(r->t, p->z, q->z);
                                   ^~~~
<kernel>:1258:72: note: passing argument to parameter 'b' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                                       ^
<kernel>:1883:24: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_add_reduce(r->t, r->t, r->t);
                              ^~~~
<kernel>:1166:35: note: passing argument to parameter 'out' here
curve25519_add_reduce(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                  ^
<kernel>:1883:30: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_add_reduce(r->t, r->t, r->t);
                                    ^~~~
<kernel>:1166:58: note: passing argument to parameter 'a' here
curve25519_add_reduce(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                         ^
<kernel>:1883:36: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_add_reduce(r->t, r->t, r->t);
                                          ^~~~
<kernel>:1166:79: note: passing argument to parameter 'b' here
curve25519_add_reduce(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                                              ^
<kernel>:1884:18: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_copy(r->z, r->t);
                        ^~~~
<kernel>:1121:29: note: passing argument to parameter 'out' here
curve25519_copy(bignum25519 out, const bignum25519 in) {
                            ^
<kernel>:1884:24: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_copy(r->z, r->t);
                              ^~~~
<kernel>:1121:52: note: passing argument to parameter 'in' here
curve25519_copy(bignum25519 out, const bignum25519 in) {
                                                   ^
<kernel>:1885:17: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_add(rb[2+signbit], rb[2+signbit], c); /* z for +, t for - */
                       ^~~~~~~~~~~~~
<kernel>:1136:28: note: passing argument to parameter 'out' here
curve25519_add(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                           ^
<kernel>:1885:32: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_add(rb[2+signbit], rb[2+signbit], c); /* z for +, t for - */
                                      ^~~~~~~~~~~~~
<kernel>:1136:51: note: passing argument to parameter 'a' here
curve25519_add(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                  ^
<kernel>:1886:17: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_sub(rb[2+(signbit^1)], rb[2+(signbit^1)], c); /* t for +, z for - */
                       ^~~~~~~~~~~~~~~~~
<kernel>:1191:28: note: passing argument to parameter 'out' here
curve25519_sub(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                           ^
<kernel>:1886:36: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_sub(rb[2+(signbit^1)], rb[2+(signbit^1)], c); /* t for +, z for - */
                                          ^~~~~~~~~~~~~~~~~
<kernel>:1191:51: note: passing argument to parameter 'a' here
curve25519_sub(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                  ^
<kernel>:1914:20: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_sub(a, r->y, r->x);
                          ^~~~
<kernel>:1191:51: note: passing argument to parameter 'a' here
curve25519_sub(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                  ^
<kernel>:1914:26: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_sub(a, r->y, r->x);
                                ^~~~
<kernel>:1191:72: note: passing argument to parameter 'b' here
curve25519_sub(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                                       ^
<kernel>:1915:20: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_add(b, r->y, r->x);
                          ^~~~
<kernel>:1136:51: note: passing argument to parameter 'a' here
curve25519_add(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                  ^
<kernel>:1915:26: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_add(b, r->y, r->x);
                                ^~~~
<kernel>:1136:72: note: passing argument to parameter 'b' here
curve25519_add(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                                       ^
<kernel>:1916:23: error: passing 'const __generic uint32_t *' (aka 'const __generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_mul(a, a, q->ysubx);
                             ^~~~~~~~
<kernel>:1258:72: note: passing argument to parameter 'b' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                                       ^
<kernel>:1917:23: error: passing 'const __generic uint32_t *' (aka 'const __generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_mul(e, b, q->xaddy);
                             ^~~~~~~~
<kernel>:1258:72: note: passing argument to parameter 'b' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                                       ^
<kernel>:1920:20: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_mul(c, r->t, q->t2d);
                          ^~~~
<kernel>:1258:51: note: passing argument to parameter 'a' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                  ^
<kernel>:1920:26: error: passing 'const __generic uint32_t *' (aka 'const __generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_mul(c, r->t, q->t2d);
                                ^~~~~~
<kernel>:1258:72: note: passing argument to parameter 'b' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                                       ^
<kernel>:1921:20: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_add(f, r->z, r->z);
                          ^~~~
<kernel>:1136:51: note: passing argument to parameter 'a' here
curve25519_add(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                  ^
<kernel>:1921:26: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_add(f, r->z, r->z);
                                ^~~~
<kernel>:1136:72: note: passing argument to parameter 'b' here
curve25519_add(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                                       ^
<kernel>:1924:17: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_mul(r->x, e, f);
                       ^~~~
<kernel>:1258:28: note: passing argument to parameter 'out' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                           ^
<kernel>:1925:17: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_mul(r->y, h, g);
                       ^~~~
<kernel>:1258:28: note: passing argument to parameter 'out' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                           ^
<kernel>:1926:17: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_mul(r->z, g, f);
                       ^~~~
<kernel>:1258:28: note: passing argument to parameter 'out' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                           ^
<kernel>:1927:17: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_mul(r->t, e, h);
                       ^~~~
<kernel>:1258:28: note: passing argument to parameter 'out' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                           ^
<kernel>:1934:20: error: passing 'const __generic uint32_t *' (aka 'const __generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_sub(a, p->y, p->x);
                          ^~~~
<kernel>:1191:51: note: passing argument to parameter 'a' here
curve25519_sub(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                  ^
<kernel>:1934:26: error: passing 'const __generic uint32_t *' (aka 'const __generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_sub(a, p->y, p->x);
                                ^~~~
<kernel>:1191:72: note: passing argument to parameter 'b' here
curve25519_sub(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                                       ^
<kernel>:1935:20: error: passing 'const __generic uint32_t *' (aka 'const __generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_add(b, p->y, p->x);
                          ^~~~
<kernel>:1136:51: note: passing argument to parameter 'a' here
curve25519_add(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                  ^
<kernel>:1935:26: error: passing 'const __generic uint32_t *' (aka 'const __generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_add(b, p->y, p->x);
                                ^~~~
<kernel>:1136:72: note: passing argument to parameter 'b' here
curve25519_add(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                                       ^
<kernel>:1936:23: error: passing 'const __generic uint32_t *' (aka 'const __generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_mul(a, a, q->ysubx);
                             ^~~~~~~~
<kernel>:1258:72: note: passing argument to parameter 'b' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                                       ^
<kernel>:1937:23: error: passing 'const __generic uint32_t *' (aka 'const __generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_mul(x, b, q->xaddy);
                             ^~~~~~~~
<kernel>:1258:72: note: passing argument to parameter 'b' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                                       ^
<kernel>:1940:20: error: passing 'const __generic uint32_t *' (aka 'const __generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_mul(c, p->t, q->t2d);
                          ^~~~
<kernel>:1258:51: note: passing argument to parameter 'a' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                  ^
<kernel>:1940:26: error: passing 'const __generic uint32_t *' (aka 'const __generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_mul(c, p->t, q->t2d);
                                ^~~~~~
<kernel>:1258:72: note: passing argument to parameter 'b' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                                       ^
<kernel>:1941:20: error: passing 'const __generic uint32_t *' (aka 'const __generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_mul(t, p->z, q->z);
                          ^~~~
<kernel>:1258:51: note: passing argument to parameter 'a' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                  ^
<kernel>:1941:26: error: passing 'const __generic uint32_t *' (aka 'const __generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_mul(t, p->z, q->z);
                                ^~~~
<kernel>:1258:72: note: passing argument to parameter 'b' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                                       ^
<kernel>:1945:17: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_mul(r->xaddy, x, t);
                       ^~~~~~~~
<kernel>:1258:28: note: passing argument to parameter 'out' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                           ^
<kernel>:1946:17: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_mul(r->ysubx, y, z);
                       ^~~~~~~~
<kernel>:1258:28: note: passing argument to parameter 'out' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                           ^
<kernel>:1947:17: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_mul(r->z, z, t);
                       ^~~~
<kernel>:1258:28: note: passing argument to parameter 'out' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                           ^
<kernel>:1948:17: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_mul(r->t2d, x, y);
                       ^~~~~~
<kernel>:1258:28: note: passing argument to parameter 'out' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                           ^
<kernel>:1949:21: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_copy(y, r->ysubx);
                           ^~~~~~~~
<kernel>:1121:52: note: passing argument to parameter 'in' here
curve25519_copy(bignum25519 out, const bignum25519 in) {
                                                   ^
<kernel>:1950:17: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_sub(r->ysubx, r->ysubx, r->xaddy);
                       ^~~~~~~~
<kernel>:1191:28: note: passing argument to parameter 'out' here
curve25519_sub(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                           ^
<kernel>:1950:27: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_sub(r->ysubx, r->ysubx, r->xaddy);
                                 ^~~~~~~~
<kernel>:1191:51: note: passing argument to parameter 'a' here
curve25519_sub(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                  ^
<kernel>:1950:37: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_sub(r->ysubx, r->ysubx, r->xaddy);
                                           ^~~~~~~~
<kernel>:1191:72: note: passing argument to parameter 'b' here
curve25519_sub(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                                       ^
<kernel>:1951:17: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_add(r->xaddy, r->xaddy, y);
                       ^~~~~~~~
<kernel>:1136:28: note: passing argument to parameter 'out' here
curve25519_add(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                           ^
<kernel>:1951:27: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_add(r->xaddy, r->xaddy, y);
                                 ^~~~~~~~
<kernel>:1136:51: note: passing argument to parameter 'a' here
curve25519_add(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                  ^
<kernel>:1952:23: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_mul_const(r->t2d, r->t2d, ge25519_ec2d);
                             ^~~~~~
<kernel>:1355:34: note: passing argument to parameter 'out' here
curve25519_mul_const(bignum25519 out, const bignum25519 a, constant uint32_t *b) {
                                 ^
<kernel>:1952:31: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_mul_const(r->t2d, r->t2d, ge25519_ec2d);
                                     ^~~~~~
<kernel>:1355:57: note: passing argument to parameter 'a' here
curve25519_mul_const(bignum25519 out, const bignum25519 a, constant uint32_t *b) {
                                                        ^
<kernel>:2025:23: error: passing 'const __generic uint32_t *' (aka 'const __generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_recip(zi, p->z);
                             ^~~~
<kernel>:1984:53: note: passing argument to parameter 'z' here
curve25519_recip(bignum25519 out, const bignum25519 z) {
                                                    ^
<kernel>:2026:21: error: passing 'const __generic uint32_t *' (aka 'const __generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_mul(tx, p->x, zi);
                           ^~~~
<kernel>:1258:51: note: passing argument to parameter 'a' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                  ^
<kernel>:2027:21: error: passing 'const __generic uint32_t *' (aka 'const __generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_mul(ty, p->y, zi);
                           ^~~~
<kernel>:1258:51: note: passing argument to parameter 'a' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                  ^
<kernel>:2052:20: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_expand(r->y, p);
                          ^~~~
<kernel>:1604:31: note: passing argument to parameter 'out' here
curve25519_expand(bignum25519 out, const unsigned char in[32]) {
                              ^
<kernel>:2053:18: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_copy(r->z, one);
                        ^~~~
<kernel>:1121:29: note: passing argument to parameter 'out' here
curve25519_copy(bignum25519 out, const bignum25519 in) {
                            ^
<kernel>:2054:25: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_square(num, r->y); /* x = y^2 */
                               ^~~~
<kernel>:1453:54: note: passing argument to parameter 'in' here
curve25519_square(bignum25519 out, const bignum25519 in) {
                                                     ^
<kernel>:2056:34: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_sub_reduce(num, num, r->z); /* x = y^1 - 1 */
                                        ^~~~
<kernel>:1223:79: note: passing argument to parameter 'b' here
curve25519_sub_reduce(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                                              ^
<kernel>:2057:27: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_add(den, den, r->z); /* den = dy^2 + 1 */
                                 ^~~~
<kernel>:1136:72: note: passing argument to parameter 'b' here
curve25519_add(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                                       ^
<kernel>:2063:20: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_square(r->x, d3);
                          ^~~~
<kernel>:1453:31: note: passing argument to parameter 'out' here
curve25519_square(bignum25519 out, const bignum25519 in) {
                              ^
<kernel>:2064:17: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_mul(r->x, r->x, den);
                       ^~~~
<kernel>:1258:28: note: passing argument to parameter 'out' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                           ^
<kernel>:2064:23: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_mul(r->x, r->x, den);
                             ^~~~
<kernel>:1258:51: note: passing argument to parameter 'a' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                  ^
<kernel>:2065:17: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_mul(r->x, r->x, num);
                       ^~~~
<kernel>:1258:28: note: passing argument to parameter 'out' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                           ^
<kernel>:2065:23: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_mul(r->x, r->x, num);
                             ^~~~
<kernel>:1258:51: note: passing argument to parameter 'a' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                  ^
<kernel>:2066:26: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_pow_two252m3(r->x, r->x);
                                ^~~~
<kernel>:2002:37: note: passing argument to parameter 'two252m3' here
curve25519_pow_two252m3(bignum25519 two252m3, const bignum25519 z) {
                                    ^
<kernel>:2066:32: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_pow_two252m3(r->x, r->x);
                                      ^~~~
<kernel>:2002:65: note: passing argument to parameter 'z' here
curve25519_pow_two252m3(bignum25519 two252m3, const bignum25519 z) {
                                                                ^
<kernel>:2069:17: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_mul(r->x, r->x, d3);
                       ^~~~
<kernel>:1258:28: note: passing argument to parameter 'out' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                           ^
<kernel>:2069:23: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_mul(r->x, r->x, d3);
                             ^~~~
<kernel>:1258:51: note: passing argument to parameter 'a' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                  ^
<kernel>:2070:17: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_mul(r->x, r->x, num);
                       ^~~~
<kernel>:1258:28: note: passing argument to parameter 'out' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                           ^
<kernel>:2070:23: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_mul(r->x, r->x, num);
                             ^~~~
<kernel>:1258:51: note: passing argument to parameter 'a' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                  ^
<kernel>:2073:23: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_square(t, r->x);
                             ^~~~
<kernel>:1453:54: note: passing argument to parameter 'in' here
curve25519_square(bignum25519 out, const bignum25519 in) {
                                                     ^
<kernel>:2082:24: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
                curve25519_mul_const(r->x, r->x, ge25519_sqrtneg1);
                                     ^~~~
<kernel>:1355:34: note: passing argument to parameter 'out' here
curve25519_mul_const(bignum25519 out, const bignum25519 a, constant uint32_t *b) {
                                 ^
<kernel>:2082:30: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
                curve25519_mul_const(r->x, r->x, ge25519_sqrtneg1);
                                           ^~~~
<kernel>:1355:57: note: passing argument to parameter 'a' here
curve25519_mul_const(bignum25519 out, const bignum25519 a, constant uint32_t *b) {
                                                        ^
<kernel>:2085:29: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_contract(check, r->x);
                                   ^~~~
<kernel>:1649:62: note: passing argument to parameter 'in' here
curve25519_contract(unsigned char out[32], const bignum25519 in) {
                                                             ^
<kernel>:2088:22: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
                curve25519_copy(t, r->x);
                                   ^~~~
<kernel>:1121:52: note: passing argument to parameter 'in' here
curve25519_copy(bignum25519 out, const bignum25519 in) {
                                                   ^
<kernel>:2089:18: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
                curve25519_neg(r->x, t);
                               ^~~~
<kernel>:1240:28: note: passing argument to parameter 'out' here
curve25519_neg(bignum25519 out, const bignum25519 a) {
                           ^
<kernel>:2091:17: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_mul(r->t, r->x, r->y);
                       ^~~~
<kernel>:1258:28: note: passing argument to parameter 'out' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                           ^
<kernel>:2091:23: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_mul(r->t, r->x, r->y);
                             ^~~~
<kernel>:1258:51: note: passing argument to parameter 'a' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                  ^
<kernel>:2091:29: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_mul(r->t, r->x, r->y);
                                   ^~~~
<kernel>:1258:72: note: passing argument to parameter 'b' here
curve25519_mul(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                                                       ^
<kernel>:2130:20: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_expand(t->ysubx, packed +  0);
                          ^~~~~~~~
<kernel>:1604:31: note: passing argument to parameter 'out' here
curve25519_expand(bignum25519 out, const unsigned char in[32]) {
                              ^
<kernel>:2131:20: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_expand(t->xaddy, packed + 32);
                          ^~~~~~~~
<kernel>:1604:31: note: passing argument to parameter 'out' here
curve25519_expand(bignum25519 out, const unsigned char in[32]) {
                              ^
<kernel>:2132:20: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_expand(t->t2d  , packed + 64);
                          ^~~~~~
<kernel>:1604:31: note: passing argument to parameter 'out' here
curve25519_expand(bignum25519 out, const unsigned char in[32]) {
                              ^
<kernel>:2135:30: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_swap_conditional(t->ysubx, t->xaddy, sign);
                                    ^~~~~~~~
<kernel>:1765:41: note: passing argument to parameter 'a' here
curve25519_swap_conditional(bignum25519 a, bignum25519 b, uint32_t iswap) {
                                        ^
<kernel>:2135:40: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_swap_conditional(t->ysubx, t->xaddy, sign);
                                              ^~~~~~~~
<kernel>:1765:56: note: passing argument to parameter 'b' here
curve25519_swap_conditional(bignum25519 a, bignum25519 b, uint32_t iswap) {
                                                       ^
<kernel>:2136:22: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'const uint32_t *' (aka 'const unsigned int *') changes address space of pointer
        curve25519_neg(neg, t->t2d);
                            ^~~~~~
<kernel>:1240:51: note: passing argument to parameter 'a' here
curve25519_neg(bignum25519 out, const bignum25519 a) {
                                                  ^
<kernel>:2137:30: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_swap_conditional(t->t2d, neg, sign);
                                    ^~~~~~
<kernel>:1765:41: note: passing argument to parameter 'a' here
curve25519_swap_conditional(bignum25519 a, bignum25519 b, uint32_t iswap) {
                                        ^
<kernel>:2155:24: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_sub_reduce(r->x, t.xaddy, t.ysubx);
                              ^~~~
<kernel>:1223:35: note: passing argument to parameter 'out' here
curve25519_sub_reduce(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                  ^
<kernel>:2156:24: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_add_reduce(r->y, t.xaddy, t.ysubx);
                              ^~~~
<kernel>:1166:35: note: passing argument to parameter 'out' here
curve25519_add_reduce(bignum25519 out, const bignum25519 a, const bignum25519 b) {
                                  ^
<kernel>:2160:18: error: passing '__generic uint32_t *' (aka '__generic unsigned int *') to parameter of type 'uint32_t *' (aka 'unsigned int *') changes address space of pointer
        curve25519_copy(r->t, t.t2d);
                        ^~~~
<kernel>:1121:29: note: passing argument to parameter 'out' here
curve25519_copy(bignum25519 out, const bignum25519 in) {
                            ^
\0")))', C:\Users\pj\.cargo\registry\src\github.com-1ecc6299db9ec823
ano-vanity-0.4.14\src\main.rs:406:10
stack backtrace:
   0:     0x7ff6d5d8ca82 - <unknown>
   1:     0x7ff6d5da3f2b - <unknown>
   2:     0x7ff6d5d8990a - <unknown>
   3:     0x7ff6d5d8ec84 - <unknown>
   4:     0x7ff6d5d8e8ba - <unknown>
   5:     0x7ff6d5d8f471 - <unknown>
   6:     0x7ff6d5d8f37d - <unknown>
   7:     0x7ff6d5d8d4af - <unknown>
   8:     0x7ff6d5d8f040 - <unknown>
   9:     0x7ff6d5dae695 - <unknown>
  10:     0x7ff6d5dae7a3 - <unknown>
  11:     0x7ff6d5cfe8bf - <unknown>
  12:     0x7ff6d5d026c7 - <unknown>
  13:     0x7ff6d5d076a6 - <unknown>
  14:     0x7ff6d5d03a6c - <unknown>
  15:     0x7ff6d5d84d7e - <unknown>
  16:     0x7ff6d5d0383c - <unknown>
  17:     0x7ff6d5daa7e4 - <unknown>
  18:     0x7ffa9a5e74b4 - BaseThreadInitThunk
  19:     0x7ffa9abc26a1 - RtlUserThreadStart

from nano-vanity.

adrianegraphene avatar adrianegraphene commented on July 28, 2024

So, I had this working fine about a year ago. Something either in the Rust version or windows update, has ruined this. I can't figure out what it is either. I can no longer get what used to work for me.... to work anymore.
Edit: I was getting the exact same set of errors (or close enough). I found that rolling back my GPU drivers to August 31st, 2021 worked. See next comment for details.

from nano-vanity.

adrianegraphene avatar adrianegraphene commented on July 28, 2024

You're welcome. Glad to hear you got it working!

from nano-vanity.

FlatBananoTheory avatar FlatBananoTheory commented on July 28, 2024

Any chance for a fix for this? 3000 series cards and older have the option to downgrade their driver version, but 4000 series and anything after will be unable to use the GPU flag going forward.

Thanks for supporting this software for so long!

from nano-vanity.

PlasmaPower avatar PlasmaPower commented on July 28, 2024

I was kind of hoping nvidia would fix it, since it definitely seems to be a bug in their drivers. IIRC you can patch the OpenCL kernel a bit to make it work. I'll take a look.

from nano-vanity.

PlasmaPower avatar PlasmaPower commented on July 28, 2024

The kernel compilation is currently just hanging on my system, so I'm afraid I can't really build that alternative kernel. I think if you change const to const __generic in the bignum25519 definition and a few other places it might work, but I'm not sure. It's been a while since I last looked at this.

Perhaps you could try opening a bug report with nvidia.

from nano-vanity.

bbedward avatar bbedward commented on July 28, 2024

This solved it for me: #56

No idea if it's the right way to do it per what @PlasmaPower suggested - or how it impacts AMD, etc. But it works fine for me on latest nvidia driver.

from nano-vanity.

PlasmaPower avatar PlasmaPower commented on July 28, 2024

This is fixed with #56. My guess is AMD is (still?) not working though

from nano-vanity.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.