Skip to content
Snippets Groups Projects
  1. Jan 22, 2019
    • Martin Bauer's avatar
      020743a1
    • Martin Bauer's avatar
      New GPU communication scheme with GPU kernels for packing · 319909f0
      Martin Bauer authored
      Features:
         - uses generated pack infos for packing & unpacking directly on GPU
         - can directly send GPU buffers if cuda-enabled MPI is available,
           otherwise the packed buffers are transfered to CPU first
         - communication hiding with cuda streams: communication can be run
           asynchronously - especially useful when compute kernel is also
           split up into inner and outer part
      
      - added RAII classes for CUDA streams and events
      - equivalence test that checks if generated CPU and GPU (overlapped)
        versions are computing same result as normal waLBerla LBM kernel
      319909f0
  2. May 30, 2018
  3. Jan 27, 2018
  4. Jan 05, 2018
  5. Dec 11, 2017
  6. Dec 08, 2017
    • João Victor Tozatti Risso's avatar
      GPUPackInfo: add asynchronous (un)packing capabilities · 6bfe8c59
      João Victor Tozatti Risso authored
      
      Changes introduced in this commit are the following:
      
      - CUDA streams: Add support for asynchronous (un)packing operations using CUDA
        streams in cuda::communication::GPUPackInfo. Through asynchronous operations
        it is possible to overlap GPU computation and MPI communication in simulations
        (e.g. LBM simulations). Asynchronous copies in CUDA require pinned memory on
        the host, and for that purpose a staging buffer is introduced (i.e.
        cuda::communication::PinnedMemoryBuffer) in the cuda module, which is used to
        stage data between the GPU and the MPI buffers.
      
      - zyxf layout: Add zyxf field layout support in GPUPackInfo through extensions
        of the functions in cuda::GPUCopy.
      
      - Extended GPUPackInfo test: Add stream and zyxf layout tests to the
        GPUPackInfoTest to test the proposed implementation.
      
      - Extended Kernel: add CUDA stream and shared memory configuration support in
        cuda::Kernel class.
      
      Signed-off-by: default avatarJoão Victor Tozatti Risso <joaovictortr@protonmail.com>
      6bfe8c59
  7. Nov 17, 2017
  8. Sep 26, 2017
  9. Aug 02, 2017