有关GPU计算



  • 众所周知,OpenFOAM已经有了一些第三方的GPU计算包。困惑的是,目前GPU计算并没有广泛使用,其原因是因为支持CUDA的显卡比较少?还是什么?

    粗略的看一下CUDA编程,如果GPU计算只是意味着调用GPU计算并且使用另外一种编译器的话。为什么会存在GPU计算不如CPU稳定的情况?


  • OpenFOAM教授

    因为GPU比较贵。。。



  • @cfd-china 在 有关GPU计算 中说:

    众所周知,OpenFOAM已经有了一些第三方的GPU计算包。困惑的是,目前GPU计算并没有广泛使用,其原因是因为支持CUDA的显卡比较少?还是什么?

    粗略的看一下CUDA编程,如果GPU计算只是意味着调用GPU计算并且使用另外一种编译器的话。为什么会存在GPU计算不如CPU稳定的情况?

    Nvidia的目前的GPU应该都支持CUDA吧。

    不知道楼主说的GPU计算不如CPU稳定的是否是指的桌面级(GeForce、Titan)显卡?我感觉Tesla系列(用过C1060, K20, K40)的都还挺稳定的。桌面级显卡还有另一问题是双精度浮点数计算速度远小于单精度计算速度。而目前的Tesls系列的double都是float计算速度的一半。

    使用GPU计算需要专门写在GPU执行的程序段(CUDA, OpenCL),或者使用OpenACC这种加编译指导语句到串行代码(和OpenMP很像),再或者使用别人做好的GPU加速库。前两种方法需要专门的编译器。

    @wwzhao, GPU按说也不是太贵, 一块Nvidia K40 目前两万出头都买得到(半年前就是这个价)。 跟搞两颗12 cores 的E5-2680v3 差不多的价, 要知道K40还搭载了12GB高带宽显存。


  • OpenFOAM教授

    @lhzhu 其实我想说的是GPU性价比不如CPU :lol:



  • @wwzhao有关GPU计算 中说:

    GPU性价

    :lol: 这个得看方法。不知道是不是OF里面的好多solver在GPU上加速效果不理想。

    搞LBM的可能觉得这类显式均匀笛卡尔网格方法尤其适合GPU(相对串行CPU, 单块GPU达到2个两级加速),所以性价比比较高(显存更大点就更好了)。


  • OpenFOAM教授

    @lhzhu 哈!我觉得你应该拿单块 Tesla K40 和两颗 E5-2680v3 比较 :laughing:



  • @wwzhao 有道理!!


  • OpenFOAM教授

    @lhzhu

    在计算大规模问题时,采用多个GPU进行计算,在不同的GPU之间进行数据传输是个问题。不过现在好像已经有这个技术了。

    另外还有GPU和CPU数据传输速率的限制,不过这个在Maxwell架构中似乎已经不成问题了。

    不管怎么说,GPU在高性能计算领域普及开来还有很长一段路需要走。


Log in to reply