within a chunk the keys are sequential, so the pubkeys are P, P+G, P+2G, and each thread jumps to the start of its slice with a small table of multiples of G, then walks the slice at one point addition per key. Affine addition needs a modular inverse, the expensive op, so each thread batches 48 points and inverts all their Z-coordinates together with Montgomery's trick: one Fermat inverse for the batch instead of 48.
Cool 🤩️
I did not hand-write the crypto; a lot of it came out of LLMs.
oh
I get about 15.3 million keys per second in Chromium on Linux with an NVIDIA GeForce GTX 1060 6GB (using the proprietary NVIDIA driver)
Cool 🤩️
oh
I get about 15.3 million keys per second in Chromium on Linux with an NVIDIA GeForce GTX 1060 6GB (using the proprietary NVIDIA driver)