I tested this python compare script. I only added the time output. Here are the results:
start = 2022-09-27 16:58:32.784093
1000 2022-09-27 17:01:12.165173
2000 2022-09-27 17:03:50.849176
3000 2022-09-27 17:06:31.387720
4000 2022-09-27 17:09:12.735062
5000 2022-09-27 17:11:53.893209
6000 2022-09-27 17:14:32.976817
7000 2022-09-27 17:17:07.546195
8000 2022-09-27 17:19:46.752069
9000 2022-09-27 17:22:27.578180
10000 2022-09-27 17:25:03.305788
11000 2022-09-27 17:27:38.671975
12000 2022-09-27 17:30:17.019777
13000 2022-09-27 17:32:57.495925
14000 2022-09-27 17:35:35.705045
15000 2022-09-27 17:38:13.914685
16000 2022-09-27 17:40:52.500355
17000 2022-09-27 17:43:34.293753
18000 2022-09-27 17:46:18.734021
19000 2022-09-27 17:48:56.165592
20000 2022-09-27 17:51:35.212564
21000 2022-09-27 17:54:26.738358
22000 2022-09-27 17:57:09.514139
23000 2022-09-27 17:59:47.929463
24000 2022-09-27 18:02:22.697234
25000 2022-09-27 18:05:00.128646
26000 2022-09-27 18:07:41.784672
27000 2022-09-27 18:10:22.883876
28000 2022-09-27 18:13:03.262512
29000 2022-09-27 18:15:41.925345
30000 2022-09-27 18:18:21.313147
31000 2022-09-27 18:21:06.744216
32000 2022-09-27 18:23:49.502670
33000 2022-09-27 18:26:32.710866
34000 2022-09-27 18:29:16.496636
35000 2022-09-27 18:32:00.074711
36000 2022-09-27 18:34:43.907887
37000 2022-09-27 18:37:28.137582
38000 2022-09-27 18:40:07.641310
39000 2022-09-27 18:42:52.397884
40000 2022-09-27 18:45:52.935812
41000 2022-09-27 18:48:32.099146
42000 2022-09-27 18:51:11.315534
43000 2022-09-27 18:53:49.433403
44000 2022-09-27 18:56:31.338416
45000 2022-09-27 18:59:13.230555
46000 2022-09-27 19:01:54.819965
47000 2022-09-27 19:04:34.469577
48000 2022-09-27 19:07:12.553220
49000 2022-09-27 19:09:56.293709
end = 2022-09-27 19:10:23.538917
aprox 2 hours 15 minutes for 50k pubkey comparison , script generate addition in 200 pubkeys, total 10 million keys generate from 50k pubkeys, to verify
remember its simple addition, but for each key from 50k pubkeys,
here problem is python, uses 1 by 1 thread,
if this same tool in cuda would be done in 2 seconds
or maybe tool in c maybe do it less then 10 minutes
any c or cuda developer can help us to write such tools, for further research
thankx
Hello i wrote a custom Cuda library for point addition , multiplication etc (adapted from Jean-Luc Pons one)...the use of pycuda (python) to launch the kernel is possible
But can you explain what the purpose of the script you want to made?
Because that's right, that the speed of point addition will be around 1Gigakeys/sec on a RTX3070, only if you work with pubkey loaded in ram.
The main problem of what you want to do will be the speed bottleneck of reading the input file and writing the result in the output file on the HDD (1Giga Key are more than 32GB of size on the HDD )
So you can compute 1Giga Key in one sec with the GPU.but you will spend a long time to convert your keys sequentially in hexed-ASCII and write the result (work done by the cpu) because a gpu can't write or read a file.
To resume
Convert input file to chunks of block in a grid of threads-> lauch kernel on the GPU -> return and convert the result
SLOW FAST SLOW
example
File B :
039d1abaec9f5715a15c7628244170951e0f85e87f68ca5393d3f9fc3fa23a69c8
0370b55404702ffa86ecfa4e88e0f354004a0965a5eea5fbbd297436001ae920df
031fb966918db3af46c37234b6a4b043719886d6a05859ba32f72742d6141f7ae6
027dda7bb4a07894280993cb04ba269905446cfee186833dc6cb46d02979bb4147
0322d9e364b9274dab098bcb23e0428e8a416d54f05a781281ee221db69e1ec7b8
03354a9e0deb417e0a447d8b8d23dd5e98d0ae3e70186eca8cde809c4b8fa8331f
03625fa450aed083fb30166766d5874131adb168c0247cbff83987297bf873e45d
03102c56fc72cbe8d908c4c2dd498df4e92719187cf9c3ef4c59f111bd4ff36ede
0324acb1c19b6dfc25defb01c2e2681ae82deacc0ff21ae8ff01f82f37a6a2147f
028ed5001a40f95405950a8d53420e32009824c636792e16626e12e24027269fa9
File A
0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798
02c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5
02f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9
02e493dbf1c10d80f3581e4904930b1404cc6c13900ee0758474fa94abe8c4cd13
022f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4
03fff97bd5755eeea420453a14355235d382f6472f8568a18b2f057a1460297556
025cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc
022f01e5e15cca351daff3843fb70f3c2f0a1bdd05e5af888a67784ef3e10a2a01
03acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe
03a0434d9e47f3c86235477c7b1ae6ae5d3442d49b1943c2b752a68e2a47e247c7
above 2 files are
file A is start dec of hex 1 to 10 (pubkeys) 10 pubkeys
file B is start dec of hex 1000 to 1010 (pubkeys) 10 pubkeys
load file B in memory
load file A and start process with addition point 1 (0279be667...) till first match from File B (loaded in memory), as found match first print and break process
above example all match will be 10 pubkeys print to file
039d1abaec9f5715a15c7628244170951e0f85e87f68ca5393d3f9fc3fa23a69c8
039d1abaec9f5715a15c7628244170951e0f85e87f68ca5393d3f9fc3fa23a69c8
039d1abaec9f5715a15c7628244170951e0f85e87f68ca5393d3f9fc3fa23a69c8
039d1abaec9f5715a15c7628244170951e0f85e87f68ca5393d3f9fc3fa23a69c8
039d1abaec9f5715a15c7628244170951e0f85e87f68ca5393d3f9fc3fa23a69c8
039d1abaec9f5715a15c7628244170951e0f85e87f68ca5393d3f9fc3fa23a69c8
039d1abaec9f5715a15c7628244170951e0f85e87f68ca5393d3f9fc3fa23a69c8
039d1abaec9f5715a15c7628244170951e0f85e87f68ca5393d3f9fc3fa23a69c8
039d1abaec9f5715a15c7628244170951e0f85e87f68ca5393d3f9fc3fa23a69c8
039d1abaec9f5715a15c7628244170951e0f85e87f68ca5393d3f9fc3fa23a69c8