GPGPU通用计算发展的现在早已过了萌芽期,新一代TOP500超级计算机状元“Titan”使用的就是NVIDIA的Tesla K20加速卡作为运算主力。专业领域离消费者很远,而我们之前做过的测试也显示GPU通用计算也能在图像处理、视频编码这样的日常应用中给消费者带来性能提升。
GPU编程性能确实有提高,但是没有这么神奇
如今的显卡一年半左右升级一次,Tesla K20相比上一代Fermi有三倍双精度浮点性能提升,使用GPU加速的代码也有100或者200倍的性能提升,NVIDIA以及AMD展示的代码已经证明了这一前景,不过理念是好的,但是GPU加速真的有这么强大的加速效果吗?
NVIDIA Tesla事业部总监Sumit Gupta在接受INQ采访时称GPU带来的上百倍性能提升是被现实中未优化的代码打败了。他说:“我们见到的100倍、200倍甚至更高的代码性能提升主要来自大学,NVIDIA已经跟许多大学合作,展示了GPU加速代码有100倍的性能提升。”
“他们主要来自学术研究机构,如果你仔细看一下为什么这些代码有100倍的性能提升,你就会发现主要原因是他们编写的CPU代码太烂,因为他们中很多并不是专业的计算机科学家,而是生物学家、化学家以及物理学家,他们写的C代码对CPU来说也不够好,所以他们发现在GPU上使用CUDA或者CUDA Fortran编程要比在多核CPU上使用MPI或者多线程编程要容易的多。”
按照Gupta的说法,其实很多人在GPU编程环境下获得上百倍或更高的代码性能提升的原因并不是GPU编程性能太强大了,而是因为原始的代码太烂,对多核CPU支持都不够好,所以一旦用在了超多核心的GPU上性能就会大幅提升。
Gupta称在HPC领域中如果代码对多核CPU优化的足够好,那么在GPU加速环境中代码性能提升也就只有5-10倍了,有些情况下还会更少,甚至只有2倍。不过2倍代码加速也很不错了,因为这样的情况下CPU优化已经没有空间了。
NVIDIA早前在宣传GPGPU通用计算时曾经举过例子,PPT上展示的通常都是使用GPU编程性能可以提升数百倍,令人兴奋不已。如今他们自己也公布实情了,这样的情况通常是因为原始的代码对多核优化不足,连CPU性能也不能充分发挥,所以在GPU上表现出更多的性能提升。
如果原始的代码已经优化到位,那么在GPU加速环境下性能提升通常只有几倍,甚至只有2倍。不过2倍的提升也算是一个满意的结果了,因为CPU核心数量有限,此时已经没有太多的优化空间了。
游客 2012-12-01 23:16
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
3#
游客 2012-11-27 19:29
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
2#
游客 2012-11-26 10:32
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
1#