Skip to content

rempferg/gpu_poisson_solver

Repository files navigation

Compile with

    nvcc -l cufft gpu_poisson_solver.cu
    
Output at various stages of the computations can be enabled by defining any 
combination of the precompiler constants

    OUTPUT
    OUTPUT_GF
    OUTPUT_CHARGE
    OUTPUT_CHARGE_FFT
    OUTPUT_CHARGE_FFT_GF
    OUTPUT_POTENTIAL

There also is a stripped down version gpu_poisson_solver_barebone.cu, which
contains only the absolutely necessary code for easier understanding.


Scaling:

    There is an automatic benchmarking script 'benchmark.sh' that runs 
    calculations on many grid sizes and produces a plot 'scaling.pdf' of the 
    calculation times using Gnuplot. The plot shows that the effort delicately 
    depends on the grid size. The FFTs are most efficient if the side length can
    be decomposed into prime factors 2, 3, 5 and 7, which gives rise to the odd 
    scaling patterns. For example, a run on a 384^3 grid takes less than 50 ms
    on a GeForce GTX 680 (384 = 2^7 * 3), while a run on a 373^3 grid takes over
    530 ms on the same device (373 is prime).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published