Designing (New) C++ Hardware
You can run C++ on any computer you want, as long as it pretends it is an 80’s computer. Conveniently most computers pretend to be 80’s computers – with extras, but nothing too radical – because they want to run C++. This contract isn’t written down anywhere, but both sides are absolutely bound by it. In this talk we’ll walk through the adaptation of the most radical new architecture to run C++ in decades, NVIDIA Volta. The talk contents will be divided into four parts that align to these abstract machine semantics: execution agents, progress guarantees, the object model, and the consistency model. We will close on new C++ features that make it easier, not harder, for hardware to support C++.