In general there is no way to contact me, only this forum, so just ask here if you think that I'm the right person for your question.
Thank you very much for your attention.
I though that e-mail or PM could be more appropriate instead of spamming offtopics here but anyway.
Our university group develops a project for real-time automotive modeling.
One of the stages require search and evaluate of vector similarity trough 60K to 6M candidates in real time. Unfortunately the CPU makes the search for 2 sec. up to 200 sec. - too far from realtime.
I have no any experience of GPU-programing but a colleague of mine hint me that the GPUs are tremendously effective especially in such kind of simple but massive calculations.
So the search involves:
all our values are single precision float (32-bit)
search vector a[30] - with 10 to 30 float32 values, could be 32 values padded with 2 "0"s
search space b[6,000,000][30] - 6M vectors similar to a[30]
we need to calculate
c[p][j] = 100 - abs((a[j] - b[p][j]) / abs(b[p][j]) * 100) // p changes from 0 to 6M, j changes from 0 to 30
c[p] = sum(c[p][j]) over j / 30
if c[p] > 50 then put "p" in the list of returned b[] indexes to CPU
These "100 -" and "* 100" are in order to make the result having a sense of percent similarity/difference respectively.
The constant "> 50" have to be selectable (meaning "percent similarity"), i.e. not hard-coded but sent as argument.
Also "p" could change to 60K or to 6M or something in between, also "j' could change to 10 or to 32 or something in between.
The task is all that search to be made in optimal and fastest possible way (in a part of second) instead of 2-200 seconds on CPU...
On my calcs 6M * 32 point each float32 vectors are about 768MB so even on a little card like Radeon R7 370 (Pitcairn) with 2GB of memory it could be executable.
Because you coding closed-source, we even do not need to know the source code. We need let say a linkable .dll with only 3 functions:
1) Upload b[p][j] array in the GPU memory (I suppose it is similar to DAG-file in Ethereum)
2) give the a[] searching vector and the "percent variable" to GPU, perform full search through all b[]s and return a list of indexes pointing to every b[] which fulfils the percent condition
3) add a new member to array b[] (in order next time to search through N+1 b[] vectors)
About a payment - I'm not sure. My salary is about 1-2 ETH/month (depending of its price). Have another about 10 ETH mined (thanks to your miners). Eventually we will "earn" about 10K € if win the project, for all the development + expenses. If you are interested of any of that - please write.
P.S. Now I noticed - the forum screws the indexing of the arrays - missing "i" in [] so I replaced it with "p"