|
说到通用并行计算,其实amd走的比nvidia早至少2年,可为什么nvidia现在成绩远超amd呢,就是nvidia完全跳出x86架构另辟蹊径搞出完全为通用并行计算原生设计的cuda架构。
在cuda上,可以吸纳各路程序员,无论是opencl,还是dx,还是cuda自己的c语言,无论是针对底层硬件API编程,还是高级编程,不同的编程人员都可以直接在这个平台上实现自己的目的。为什么呢,因为cuda是为gpu的流处理器量身定制的指令集架构,通过cuda下的编程接口,就可以通过cuda来最大效率的调用gpu的性能。这是最吸引各类编程人员的地方。
而amd虽然有stream,stream近似于cuda也有自己的指令集,但鉴于amd目前的gpu芯片架构并不是专为并行计算量身定做,缺少一些必须的内部寄存等机制,所以虽然sp数量多,理论浮点性能高,但实际执行效率低(可参见nvidia在Folding@home上的成绩早已超越最早推广它的amd可见一斑)。同时,他旗下的编程接口要么是汇编(让绝大多数程序员**的语言),要么是一种类C语言,这个无论说开发难度,还是可扩展性等等,都无法于基于C的cuda c语言相提并论。没有好的执行效率,更没有广泛的程序员支持,那么这种架构自然缺乏生命力。
amd和intel目前需要做的是运用自己的x86整体架构优势,制程优势,研发更强大的cpu+gpu架构,让cpu和gpu突破性的走的更近,更协同,让应用程序充分同时的发挥两者的运算机能,而不是一个很忙,一个很闲。更不是现在这样各自为政,非常原始的去争夺所谓最高核心地位。让cpu和gpu成为完全的左膀右臂吧。 |
|