文件名称:nbody:便携式自动矢量化n体基准
文件大小:99KB
文件格式:ZIP
更新时间:2024-06-13 12:24:22
Cuda
n体 这是的快速且可移植的实现。 它可以有选择地利用编译器提供的用于单线程吞吐量的自动矢量化以及用于并行性的 ,甚至支持 。 关于 其中包含多种不同的算法,它们具有不同的性能水平。 它们分为两个基本设计:SOA(阵列结构)和AOS(阵列结构)。 您可以和阅读有关这两种方法之间差异的更多信息。 两者之间存在一个关键的权衡:编译器自动矢量化SOA实现的难度要小得多,但是AOS实现对于程序员来说更容易读写。 看到AOS算法应用于实际应用程序的情况并不少见(例如,考虑如何构造大多数面向对象的程序)。 该项目中的大多数代码是普通的C ++ 11,并添加了一些实用程序,以向编译器提供适当的提示,以正确地矢量化/并行化代码。 建造 在构建环境中安装 ,然后配置项目: $ meson . build 还有一些其他选项可用于启用或禁用构建中的某些功能: 要启用CUDA支持,您可以在介子命令行上指
【文件预览】:
nbody-master
----.gitignore(33B)
----src()
--------nbody_CPU_AOS_tiled.cpp(3KB)
--------nbody_GPU_Shared.cu(4KB)
--------.gitignore(141B)
--------chThread.h(3KB)
--------chError.h(4KB)
--------nbody_util.h(4KB)
--------nbody_GPU_SOA_tiled.h(2KB)
--------nbody_CPU_SSE.cpp(4KB)
--------nbody_CPU_NEON.cpp(3KB)
--------nvcc-flags.sh(1KB)
--------nbody_CPU_AOS_tiled.h(2KB)
--------nbody_multiGPU.cu(4KB)
--------nbody_CPU_SIMD.h(2KB)
--------openmp-test.cpp(1007B)
--------nbody_CPU_SOA.cpp(3KB)
--------nbody_GPU_AOS_tiled.cu(6KB)
--------bodybodyInteraction_AltiVec.h(4KB)
--------nbody_GPU_AOS_tiled_const.h(2KB)
--------nbody_GPU_AOS.h(2KB)
--------bodybodyInteraction_SSE.h(3KB)
--------nbody_CPU_AVX.cpp(3KB)
--------nbody_GPU_SOA_tiled.cu(8KB)
--------bodybodyInteraction.cuh(2KB)
--------nbody_GPU_Shuffle.cu(4KB)
--------nbody_GPU_AOS.cu(3KB)
--------nbody_GPU_AOS_const.h(2KB)
--------nbody.h(3KB)
--------nbody_GPU_Shuffle.h(2KB)
--------nbody_GPU_AOS_tiled_const.cu(7KB)
--------bodybodyInteraction_AVX.h(3KB)
--------nbody_render_gl.h(2KB)
--------nbody_CPU_AltiVec.cpp(3KB)
--------nbody_CPU_SOA_tiled.h(2KB)
--------nbody_multiGPU_shared.cuh(3KB)
--------nbody_GPU_Atomic.h(2KB)
--------msvc()
--------openmp-detect.sh(846B)
--------nbody_CPU_SOA_tiled.cpp(4KB)
--------nbody_render_gl.cpp(7KB)
--------nbody_CPU_AOS.h(2KB)
--------nbody.cu(36KB)
--------nbody_CPU_AOS.cpp(3KB)
--------bodybodyInteraction_NEON.h(4KB)
--------nbody_GPU_AOS_const.cu(4KB)
--------nbody_GPU_AOS_tiled.h(2KB)
--------nbody_util.cpp(6KB)
--------nbody_CPU_SOA.h(2KB)
--------nbody_GPU_Atomic.cu(3KB)
--------nbody_GPU_Shared.h(2KB)
--------chCUDA.h(3KB)
----.travis.yml(1KB)
----.gitmodules(0B)
----.github()
--------install.sh(48B)
--------install-nvidia-cuda.sh(17B)
--------script.sh(901B)
--------install-post.sh(139B)
--------workflows()
--------install-fedora.sh(232B)
--------install-ubuntu.sh(470B)
----.travis-run-local.py(5KB)
----meson.build(5KB)
----scripts()
--------nbody-stats.py(1KB)
--------compare-compilers(2KB)
----README.md(12KB)
----meson_options.txt(579B)