10-30-2015, 07:39 AM
You could try, but my experience of trying to get GPU code working last time was that you have two major problems: Code base size and latency.
Reimplementation is a real challenge, and basically equivalent to the initial implementation resulting in separate dedicated subsystems. Maintaining the subsystems would require someone to be willing to take up all the work xoft has done and replace it. The other problem is latency, sending a job to the GPU takes time, and if that time is longer than the amount of time saved by running the job on the GPU it isn't worth it. You would not be able to run the entire server on a GPU without significant performance costs.
If you want to look into it I suggest you ignore the main core and start with the lighting subsystem. Its a nice simple piece of code, that is heavily parallel, but also extremely control flow dependent in its current version. It is also independent enough that batching it would be relatively simple compared to other subsystems.
And regarding OpenGL ES, that made most sense for the pi at the time, but for a Proof of Concept branch covering multiplatform implementation, OpenCL offered numerous advantages, particularly a better pipeline model.
Reimplementation is a real challenge, and basically equivalent to the initial implementation resulting in separate dedicated subsystems. Maintaining the subsystems would require someone to be willing to take up all the work xoft has done and replace it. The other problem is latency, sending a job to the GPU takes time, and if that time is longer than the amount of time saved by running the job on the GPU it isn't worth it. You would not be able to run the entire server on a GPU without significant performance costs.
If you want to look into it I suggest you ignore the main core and start with the lighting subsystem. Its a nice simple piece of code, that is heavily parallel, but also extremely control flow dependent in its current version. It is also independent enough that batching it would be relatively simple compared to other subsystems.
And regarding OpenGL ES, that made most sense for the pi at the time, but for a Proof of Concept branch covering multiplatform implementation, OpenCL offered numerous advantages, particularly a better pipeline model.