I don't think this particular problem would be well suited for a GPU. GPUs are not vector processors, they're matrix processors, and the problem that OP is describing is a vector problem. Basically this problem would be limited by the memory bandwidth of a GPU, which isn't a good thing: https://crd.lbl.gov/departments/computer-science/PAR/researc...