hi, not sure if this is interesting to you but figured i'd ask.
i took the view-key scan that lws does (the per-output derive + view tag + key compare) and moved it onto the GPU with CUDA. i didn't reimplement any of the curve math, it's literally the ref10 from monero with device added to it, so the GPU output comes out identical to a plain CPU reference, and i keep a test that fails if they ever disagree.
it also handles subaddresses, including the additional pubkeys case (extra tag 0x04), so txs paying multiple subaddresses still get found.
speed wise, on my 4080 the full stagenet chain (~10M outputs) scans in about 1.3 seconds. a single threaded CPU scan of the same data takes minutes, so the speedup is big (there are more detailed numbers in the repo).
code is here if you want to look: https://github.com/Medtabka/monero-gpu-scanner
would something like this be useful for lws? i can share the kernel or the modified scanner, whatever's easier. cheers
hi, not sure if this is interesting to you but figured i'd ask.
i took the view-key scan that lws does (the per-output derive + view tag + key compare) and moved it onto the GPU with CUDA. i didn't reimplement any of the curve math, it's literally the ref10 from monero with device added to it, so the GPU output comes out identical to a plain CPU reference, and i keep a test that fails if they ever disagree.
it also handles subaddresses, including the additional pubkeys case (extra tag 0x04), so txs paying multiple subaddresses still get found.
speed wise, on my 4080 the full stagenet chain (~10M outputs) scans in about 1.3 seconds. a single threaded CPU scan of the same data takes minutes, so the speedup is big (there are more detailed numbers in the repo).
code is here if you want to look: https://github.com/Medtabka/monero-gpu-scanner
would something like this be useful for lws? i can share the kernel or the modified scanner, whatever's easier. cheers