Comments (8)
I was hoping to switch to gfx-rs, which would compile the compute code at compile time and hopefully eliminate problems like these, but unfortunately writing compute GLSL is a huge pain. If I did that I'd probably make a language with macros that compiles to GLSL, but even that would be a pain, since ed25519 is quite large and I'd have to rewrite a lot of it.
I've had problems like this before. Normally I'd look at the two functions introduced in 1feeefe, but they seem correct to me. Maybe there's another incorrect function that was previously not called, but is now called by ge25519_unpack_vartime. It could also be that calling ge25519_unpack_vartime introduces another optimization elsewhere in the entry function. You could also try throwing in some unnecessary copies in the entry function in an attempt to throw off the compiler, but that's a suboptimal solution.
from nano-vanity.
I can reproduce this result using Quadro P400 from GPUEater (default CUDA installation from the NVIDIA-410.48+CUDA9.0 Ubuntu16.04 x64 image)
export RUSTFLAGS='-L /usr/local/cuda-9.0/lib64/'
git checkout 30eedd02251ffca && git clean -xdf && git diff && cargo build --features gpu && ./target/debug/nano-vanity --gpu --gpu-threads 65536 --threads 0 --limit 3 1sim
// ok
git checkout 1feeefe2973e4e9 && git clean -xdf && git diff && cargo build --features gpu && ./target/debug/nano-vanity --gpu --gpu-threads 65536 --threads 0 --limit 3 1sim
// broken
from nano-vanity.
I'm assuming #31 doesn't fix it?
from nano-vanity.
Right. I gave this ticket another try to have a solid baseline for #31. But I did not find one.
from nano-vanity.
Fixed by #31
from nano-vanity.
Let me think loud about why I think this happened: Before #31 we overrode 30 bytes of arbitrary memory with 0s. This may have done nothing bad up to 30eedd0, so it was pure luck that 30eedd0 worked. With added code comlexity starting with 1feeefe this may have caused curruption of important memory.
from nano-vanity.
Time to look into https://github.com/rust-accel/nvptx ?
I wonder how important AMD support is...
from nano-vanity.
I really like the idea of a cross vendor solution, no matter if you need it today or not.
What I found interesting and also alarming was this:
NVIDIA, which dominates the machine learning market, provides drivers under a proprietary license so that they can modify terms and conditions freely. In fact, they changed their EULA relating GeForce/Titan to restrict the data center deployment and commercial hosting etc.
from https://www.gpueater.com/ (sorry, I want to avoid the any ads but this is the source and I have no better one)
I don't want to give up on OpenCL yet, even though it creates some headache due to not so great tooling
from nano-vanity.
Related Issues (20)
- xor ID into key_root instead of dereferencing HOT 2
- Add parameter to optionally set local work group size HOT 1
- New NVIDIA OpenCL error HOT 6
- Compilation issue with modern AMD + optimization enabled HOT 1
- nano-vanity.exe location HOT 1
- --suffix "word" simple does not work: generates incorrect seeds HOT 2
- checkpoints maybe? HOT 1
- failed to select a version for the requirement `rustc_version = "^0.1" HOT 1
- thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value HOT 5
- Seed doesn't match generated wallet HOT 1
- Cannot build on ubuntu-20.04 - failed to select a version for the requirement `crypto-mac = "^0.5"` HOT 4
- 212% but nothing found yet. HOT 2
- installing without opencl? HOT 1
- Thread overflow on AMD gpus
- Error: linking with `cc` failed: exit status: 1
- Is it possible to go 1000x faster? HOT 1
- Nano-Vanity compiles, but won't run with the gpu flag (Error passing generic uint32_t to const uint32_t) HOT 11
- "The curve point of the blinding factor"
- the parameter type `T` must be valid for the static lifetime... HOT 1
- support Apple Silicon GPU (OpenCL downgrade)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nano-vanity.