(git:6a2e663)
pw_gpu Module Reference

Functions/Subroutines

subroutine, public pw_gpu_init ()
 Allocates resources on the gpu device for gpu fft acceleration. More...
 
subroutine, public pw_gpu_finalize ()
 Releases resources on the gpu device for gpu fft acceleration. More...
 
subroutine, public pw_gpu_r3dc1d_3d (pw1, pw2, scale)
 perform an fft followed by a gather on the gpu More...
 
subroutine, public pw_gpu_c1dr3d_3d (pw1, pw2, scale)
 perform an scatter followed by a fft on the gpu More...
 
subroutine, public pw_gpu_r3dc1d_3d_ps (pw1, pw2, scale)
 perform an parallel fft followed by a gather on the gpu More...
 
subroutine, public pw_gpu_c1dr3d_3d_ps (pw1, pw2, scale)
 perform an parallel scatter followed by a fft on the gpu More...
 

Detailed Description

Note
This module contains routines necessary to operate on plane waves on GPUs
History
BGL (06-Mar-2008) : Created AG (18-May-2012) : Refacturing:
  • added explicit interfaces to C routines
  • enable double precision complex transformations AG (11-Sept-2012) : Modifications:
  • use pointers if precision mapping is not required
  • use OMP for mapping MT (Jan 2022) : Modifications
  • use a generic interface for fft calls to GPUs
  • Support both Nvidia and AMD GPUs. Other GPUs manufacturers can be added easily.
    Author
    Benjamin G. Levine

Function/Subroutine Documentation

◆ pw_gpu_init()

subroutine, public pw_gpu::pw_gpu_init

Allocates resources on the gpu device for gpu fft acceleration.

Author
Ole Schuett

Definition at line 62 of file pw_gpu.F.

Here is the caller graph for this function:

◆ pw_gpu_finalize()

subroutine, public pw_gpu::pw_gpu_finalize

Releases resources on the gpu device for gpu fft acceleration.

Author
Ole Schuett

Definition at line 81 of file pw_gpu.F.

Here is the caller graph for this function:

◆ pw_gpu_r3dc1d_3d()

subroutine, public pw_gpu::pw_gpu_r3dc1d_3d ( type(pw_r3d_rs_type), intent(in)  pw1,
type(pw_c1d_gs_type), intent(inout)  pw2,
real(kind=dp), intent(in)  scale 
)

perform an fft followed by a gather on the gpu

Parameters
pw1...
pw2...
scale...
Author
Benjamin G Levine

Definition at line 103 of file pw_gpu.F.

◆ pw_gpu_c1dr3d_3d()

subroutine, public pw_gpu::pw_gpu_c1dr3d_3d ( type(pw_c1d_gs_type), intent(in)  pw1,
type(pw_r3d_rs_type), intent(inout)  pw2,
real(kind=dp), intent(in)  scale 
)

perform an scatter followed by a fft on the gpu

Parameters
pw1...
pw2...
scale...
Author
Benjamin G Levine

Definition at line 161 of file pw_gpu.F.

◆ pw_gpu_r3dc1d_3d_ps()

subroutine, public pw_gpu::pw_gpu_r3dc1d_3d_ps ( type(pw_r3d_rs_type), intent(in)  pw1,
type(pw_c1d_gs_type), intent(inout)  pw2,
real(kind=dp), intent(in)  scale 
)

perform an parallel fft followed by a gather on the gpu

Parameters
pw1...
pw2...
scale...
Author
Andreas Gloess

Definition at line 219 of file pw_gpu.F.

Here is the call graph for this function:

◆ pw_gpu_c1dr3d_3d_ps()

subroutine, public pw_gpu::pw_gpu_c1dr3d_3d_ps ( type(pw_c1d_gs_type), intent(in)  pw1,
type(pw_r3d_rs_type), intent(inout)  pw2,
real(kind=dp), intent(in)  scale 
)

perform an parallel scatter followed by a fft on the gpu

Parameters
pw1...
pw2...
scale...
Author
Andreas Gloess

Definition at line 391 of file pw_gpu.F.

Here is the call graph for this function: