Differences between revisions 20 and 21
Revision 20 as of 2011-06-01 17:56:31
Size: 4004
Comment:
Revision 21 as of 2011-06-06 10:46:52
Size: 4568
Comment:
Deletions are marked like this. Additions are marked like this.
Line 35: Line 35:
 * memory Bandwidth for unpinned memory  * Memory Bandwidth for unpinned memory
   Here the bandwidth of host to device memory copy operations is measured. The host memory areas used are allocated with common malloc() calls and are not pinned to physical page addresses - thus they are subject to page swapping. The effects of this page swapping are observed and described [[http://www.ifh.de/~boyanov/GPE/notes-gpu.pdf|here]].

synchronous / asynchronous
Line 38: Line 41:
   
   Here again the bandwidth for host to device memory copy operations is measured. This time however the memory regions of the host memory are pinned to physical addresses via using the



1. Overview

General introduciton to initial GPE project can be found here.

2. GPU Hardware

The current GPU system at DESY (Zeuthen) consists of a single server with dual nVidia Tesla C2050 GPU cards. It is hosted on gpu1 and is also used as a testbed for new developments in GPU-to-GPU networking with custom designed interconnects and InfiniBand.

3. Environment

Currently on the system the newest version of the CUDA SDK 4.0 alongside with device drivers and libraries are installed on gpu1. The Software Development Kit provides the following:

  • CUDA C/C++ Compiler
  • GPU Debugging & Profiling Tools

  • GPU-Accelerated Math Libraries
  • GPU-Accelerated Performance Primitives (Thrust library)
  • GPU-direct (under tests)

4. GPU Benchmarks

For evaluation and development a set of common benchmarks, as well as specially designed micro benchmarks were run on the gpu1 system.

4.1. Low-level benchmarks

Custom designed benchmarks use OpenMPI and OpenMP for task parallelization and allocation on the host CPUs and evaluate the following performance metrics:

  • Memory Bandwidth for unpinned memory
    • Here the bandwidth of host to device memory copy operations is measured. The host memory areas used are allocated with common malloc() calls and are not pinned to physical page addresses - thus they are subject to page swapping. The effects of this page swapping are observed and described here.

synchronous / asynchronous

  • Bandwidth of host-ot-GPU memory copy operations (for one and two devices parallel configured)
    • Here again the bandwidth for host to device memory copy operations is measured. This time however the memory regions of the host memory are pinned to physical addresses via using the

Measurement with gettimeofday() for process with rank 0 and two GPUs working in "parallel"

Measurement with RDTSC for process with rank 0 and two GPUs working in "parallel"

Measurement with RDTSC for process with rank 0 and two GPUs working "crossed"

Measurement with RDTSC for process with rank 0 and two GPUs working "crossed"

  • Bandwidth of GPU-ot-host memory copy operations (for one and two devices cross configured)

ALD

ALD

ALD

ALD

  • Bandwidth and latency of GPU-to-GPU communication
    • mpirun options and rankfiles
    • MPI send/recv vs. CUDA 4.0 peer-to-peer communication primitives
  • GPU-to-InfiniBand hardware datapath propagation delay

    • perftest measurements

5. GPU Applications

/!\ Recent applications utilizing the gpu1 system at DESY (Zeuthen) are Chroma-based LQCD munerical simulationd and applications from the field of Astro Particle Physics.

5.1. Application-level benchmarks

For ensuring consistency of performance with real-world applications, the Scalable HeterOgeneous Computing (SHOC) benchmark suite was run on the gpu1 system too. This benchmark suite gives not only benchmark results for CUDA implementations of key algorithms but also corresponding implementations of the more general OpenCL parallel programming framework.

5.2. Debugger and Profiler Tools

  • Compute Visual profiler
  • CUDA Debugger

6. Monitoring

/!\

  • gpu1 in Nagios
    • GPU cores temperature
    • host and device free and/or used memory
    • GPU core frequency
    • GPU cores utilization/load


Sections marked with /!\ need further discussion

GPU (last edited 2017-05-15 09:10:53 by GötzWaschk)