学习显卡编程,是因为显卡GPU是一个DPP,用于数据敏感应用的数据并行处理器,通过显卡最底层的学习,可以加深对“计算”这个概念的理解。
矢量运算有一套风格不同于标量运算的指令系统。
熟悉SIMD和矢量运算的指令体系。这个对提高自己设计大规模数据处理程序的能力提供了最底层的理论基础。
同时通过学习CPU和GPU的协调工作的机制,也能拓宽自己对于计算的视野。了解其之间的数据交换的一些硬件机制。
包括,DMA,和command processor.
学习人类怎么根据实际需要设计硬件来达到计算的目的,使自己对计算的理解不仅仅局限于单个计算单元。
这些知识对大规模数据分析和处理很有帮助和启发意义。
因为好多巨型机也是采用了许多个CPU+GPU结合的方式来实现一般的数据处理。
现在的显卡,一般都支持可编程管线,就是程序员可以自己编写显卡的微代码,通过显卡驱动,传送到显存里,让显卡执行。这样就大大提高了灵活性。
也让程序员了解显卡芯片的体系结构,变得尤为有必要。