●GPU和现在的CPU的差异
由于GPU的构造,程序员不需要对GPU内部并列化硬件进行了解。比如在写入一个像素的时候,在GPU中因为并列化的缘故而不需要进行识别。比如在写入一个像素的时候,GPU会自动适用几百万个像素程序。因此隐藏SIMD构成是程序员处理GPU编程时最大的特点。
其实这个就与目现的CPU中的SIMD有很大地不同。象SSE一样的,这个其实是面向PC CPUSIMD单元的,NVIDIA公司为了与CPU的SIMD区别开来,从GT200“SIMT(Single Instruction, Multiple Thread)”开始就使用了所谓的SIMT,就是在SPMD(Single Program, Multiple Data)程序编制模型中使用SIMD。这里NVIDIA故意不使用SIMD这个单词。这里顺便介绍一下的是AMD(ATI)的职员称呼其公司的SPMD模型为“SIMI(Single Instruction, Multiple Instance)”。SIMT和SIMI在意义上基本上是一样的。不过AMD(ATI)GPU的各个处理器为VLIW(Very Long Instruction Word)处理器。如果要严格定义NVIDIA的用语SIMT的话,那么基于SPMD的scalar处理器就是SIMD。
CPU和GPU在指令执行上的差别