The key difference here is that if you need a different compiler to support new hardware, using a mix of hardware gets really complicated. Do you have to use multiple compilers to compile a project that uses both GPUs and mulit-threading? That seems like a really annoying build process to configure.