Codegen for custom Accelerators


I have spent some time looking into ways to generate and optimize code for custom accelerators. I stumbled over two different things that seem to be related to this: UMA and BYOC. I wanted to ask what the difference between these two components is and how they are related (if they are at all)?