architects and developers need not only embrace a new programming model, but must also understand the underlying hardware architecture of each accelerator platform to produce efficient code.