什么应用不适合 GPU (What Kind of Applications GPUs Not Suit )?
▪ 并行度小的应用,如需要的线程数小于 100 个,那么使用 GPU 加速效果不明显
▪ 不规则的任务并行---尽管应用需要很多线程,但是这些线程都做不同的工作,那么 GPU 不能得到有效的利用。不过这也依赖于具体工作,多久对线程调度一次,加速的可能仍然存在。
▪ 频繁的全局同步,这要求全局的 barrier,带来很大性能开销。
▪ 在线程之间,会出现随机的点对点同步的应用。GPU 对这个的支持不好,通常需要在每次同步的时候做一个全局 barrier,如果要利用GPU,最好重构算法避免出现这个问题。
▪ 要求计算量(相比于数据传输量)少的应用。尽管在 CPU+GPU 计算结构中,GPU 可以带来计算性能的提升,但是这些提升都被向 GPU 传输数据所消耗的实践覆盖了。举个例子,对于两个向量求和运算,如果非常大的向量的话,一般都选择在 CPU 上算,否则传输到 GPU 上的时间开销很大。
问题来源