Compiling Algorithms for Heterogeneous Systems (Synthesis Lectures on Computer Architecture) [Hardcover]