GPU VS CPU



  • GPU加速计算这个概念已经很久了并且很多人也用在了CFD上,但是主流CFD求解器还是没有完全的支持。

    ANSYS Discovery Live这个革命性的产品使用GPU来进行计算,是否会推广GPU的应用?大家对GPU计算有什么经验可以共享么?



  • @李东岳 普通的显卡作为GPU的话算直接的浮点运算效率回高很多,LES的求解器很多时间步长很小,可以直接进行时间推进,这种算起来就快,还有波尔兹曼方法,也是显式的时间推进方法。这种情况下一个GTX1080显卡,计算速度比7700k的cpu跑起来快100倍。看过固体力学也有算这类问题的,他们说能快到200倍。
    但是如果用SIMPLE算法这种需要迭代循环的,还有求解压力伯松方程要算方程组问题的,会跑得非常慢。我朋友测试过大概1080就比普通的7700k快个一两倍。集群上的E5 E7这种核心比较多对比的话那么单纯用GPU似乎没有什么优势了,毕竟一个1080也不便宜。
    不过苹果最早开发了新的架构,把浮点运算交给GPU把逻辑运算交给CPU,这种计算速度就特别快。现在超算中心好多都配置了这种加速卡。无锡太湖之光的也是用这种思路进行计算的。
    但总体来说还是觉得编程上太困难了,我听天河中心的专家说现在CFD计算用加速卡的好像不多。



  • 感觉GPU只是另一个层次和规模的并行计算,而并行计算的问题本质上还是算法的数据依赖问题,不管是Cache命中率还是显式隐式算法的问题其实都可以归结到数据依赖。

    再放长远一些,到exa-scale之后内存效率反而是最重要的,GPU的内存和计算核心间的物理距离一般比CPU到主存要小,今后可以提高的空间会更多。



  • @一二 显式时间推进?确认一下,你是说欧拉显性求解NS方程构成的对角阵用GPU求解效率非常大?

    @程迪

    GPU的内存和计算核心间的物理距离一般比CPU到主存要小

    …,
    硬件上的距离么…



  • @李东岳
    嗯,铜导线距离。3GHz时每个时钟周期电场才走了10cm.你看看内存到cpu的距离?

    显式的数据依赖太明显了,把要用的往cache一送,搞定,cache离核心特别近。隐式的得回头修改这个自由度那个自由度,好麻烦。

    网上好多视频讲未来exa-scale的计算,反正最后内存和容错是最大的限制。总核数上去了,移动数据相对于计算数据来说会特别慢,单个核可靠性不变的话整体可靠性也随着核数增加急剧下降。


登录后回复
 

与 CFD中文网 的连接断开,我们正在尝试重连,请耐心等待