本项目为英伟达CUDA C/C++认证中N体模拟器任务的实现文件(nbody.cu),旨在通过CUDA技术对大规模天体物理系统进行高效的并行计算和性能优化。
异步流及 CUDA C/C++ 应用程序的可视化性能分析最后的任务是加速和优化 N 体模拟器。N 体模拟器可以预测一组物体在引力相互作用下的运动情况,01-nbody.cu 文件中包含了一个简单的且有效的 N 体模拟器,适用于三维空间中的移动物体。我们可以通过向应用程序传递一个命令行参数来调整系统中物体的数量。
当前仅使用 CPU 情况下,该程序大约需要5秒钟处理4096个物体,并需20分钟才能运行65536个物体。任务是用 GPU 加速此程序,同时保持仿真的准确性。
在开始这项任务之前,请注意以下几点:第一次重构时要特别关注应用程序的逻辑部分(尤其是 bodyForce 函数)并且尽量不要做大的改动;主要目标是在不改变现有功能的前提下尽可能地加速应用。代码库中包含了一个位于 main 函数内的“for 循环”,用于将 bodyForce 函数计算出的物体间的引力集成到系统内每个物体的位置上,这一过程不仅需要在 bodyForce 函数执行后完成,在下一次调用该函数之前也必须进行。因此,请务必考虑到这一点来选择并行处理的方式和程序位置。