I have a much larger program but I cannot put the code here so I just created a very simple winform program which mimics the flow of the program / behaviour.
Basically the button1_click procedure will be run 2 to 10 times a second automatically by some call backs event from the server, and the i7 CPU cannot handle the procedure as there are lots of data in the dictionary and too many call backs in a gigantic procedure so we are trying to move the procedure to GPU instead of CPU. There are some calculations with numbers involved, such as sorting and addition but mostly on the list find / dictionary / filtering etc. This is not a C# program optimisation / re-write task but C# on GPU task.
As your PC and my PC are different so I created a simple stop watch for benchmark - i.e. your GPU program which runs the procedure will need to beat the stop watch elapsed in the original program. We are interested in the percentage of ticks saved to run on sample button1_click vs your gpu program.
Ideally you don't modify the loops inside - again the task is to run the code on GPU not rewrite (the original program was 40k lines of code so there is no point for you to re-write my sample dummy program attached). I don't know if your GPU program can accommodate the parallel foreach loop so I commented it out and replaced it with a normal foreach loop. At the end of the procedure it will replace the datasource for devexpress gridview/control so that the UI will show the numbers. I didn't put anything about the UI here as I don't know if I will end up putting my license on the web for free.
The user PC is on graphics card Sapphire Radeon (AMD) RX 580 however my laptop has Nvidia so I can test your solution on both AMD & Nvidia. We are happy to replace the user PC with any graphics card although we will appreciate solution that is graphics card independent. You can use any graphics card C# GPU library out there.
5 фрилансеров(-а) в среднем готовы выполнить эту работу за £162
Hello, I have experienced with C#.NET winforms. I wetnt through our code and tried to bind your lMyQuote object in gridview than speed of stopwatch time elapsed.