One reason I have resorted to implementing algorithms on FPGA hardware is that I am a control freak and I want to explicitly describe the memory hierarchy and communication patterns that result in high performance for my "program". I was reminded of this when I read Adam Chlipala's latest article "Why Your CPU Works So Hard" where he describes how we have gotten into an unsatisfying situation where CPUs have to rediscover information (at runtime cost) that got "lost in translation", resulting in the unnecessary death of many electrons. I agree with him that we need to rethink how we architect computing systems, and why we should make "more hardware-style software and more software-style hardware". https://stng.substack.com/p/why-your-cpu-works-so-hard