Multiflow still has some relevant ideas [2]
Programming on Parallel Machines: GPU, Multicore, Clusters and More. Gives you a look at some of the issues [3]
SPIRV-VM is a virtual machine for executing SPIR-V shaders [4]
NyuziRaster: Optimizing Rasterizer Performance and Energy in the Nyuzi Open Source GPU [5]
Ocelot is a modular dynamic compilation framework for heterogeneous systems, providing various backend targets for CUDA programs and analysis modules for the PTX virtual instruction set. [6]
glslang is the Khronos-reference front end for GLSL/ESSL, partial front end for HLSL, and a SPIR-V generator.
[1]: https://www.goodreads.com/book/show/83895.Computer_Organizat...
[2]: https://en.wikipedia.org/wiki/Multiflow
[3]: http://heather.cs.ucdavis.edu/parprocbook
[4]: https://github.com/dfranx/SPIRV-VM
[5]: https://www.cs.binghamton.edu/~millerti/nyuziraster.pdf