Skip to content
This repository has been archived by the owner on Jul 19, 2024. It is now read-only.

Latest commit

 

History

History
25 lines (19 loc) · 1.32 KB

ReadMe.md

File metadata and controls

25 lines (19 loc) · 1.32 KB

分子动力学模型

  1. 将静态函数放在头文件中,则该函数就有可能被编译为内联函数,从而提高效率。 适用于于需要被多个编译单元反复调用的函数。
    开发cuda程序时,也应该尽量优化对应的c++程序。

  2. 半步长推进。 粒子在t+dt时刻的坐标仅依赖t时刻的坐标、速度和力;但是t+dt时刻的速度依赖
    t时刻的坐标、速度和t+dt时刻的力。
    所以首先,以t时刻的状态计算t+dt/2时刻的速度;然后计算t+dt时刻的坐标,同时
    更新t时刻的力到t+dt时刻;最后,以t+dt/2时刻的速度和t+dt时刻的力计算t+dt
    时刻的速度。

  3. 常量内存比全局内存高速。 如果数据量在编译期就确定且不大(明显小于4KB),在核函数中仅被读取,而且
    一个线程束中的所有线程在某个时刻访问同一个地址,
    则该数据适合用传参的方式使用常量内存。

  4. 逐步分析程序的性能瓶颈,逐步优化。 将一个c++程序用cuda加速时,一般首先确定其中最耗时的部分并将其用cuda加速,从而
    快速提高程序性能。
    要得到最好的加速效果,需要尽可能多的将程序中可并行的计算用cuda加速。当然,
    在大数情况下,我们需要在付出和收获间找到一个平衡点。