Giter Site home page Giter Site logo

Comments (8)

PlasmaPower avatar PlasmaPower commented on July 28, 2024

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.

webmaster128 avatar webmaster128 commented on July 28, 2024

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.

PlasmaPower avatar PlasmaPower commented on July 28, 2024

I'm assuming #31 doesn't fix it?

from nano-vanity.

webmaster128 avatar webmaster128 commented on July 28, 2024

Right. I gave this ticket another try to have a solid baseline for #31. But I did not find one.

from nano-vanity.

PlasmaPower avatar PlasmaPower commented on July 28, 2024

Fixed by #31

from nano-vanity.

webmaster128 avatar webmaster128 commented on July 28, 2024

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.

PlasmaPower avatar PlasmaPower commented on July 28, 2024

Time to look into https://github.com/rust-accel/nvptx ?

I wonder how important AMD support is...

from nano-vanity.

webmaster128 avatar webmaster128 commented on July 28, 2024

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)

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.