Hardware Overview

HPC Overview

Source: https://www.rc.virginia.edu/userinfo/hpc/#hardware-configuration

Partitions:

  • Standard (no GPUs)
  • Largemem (no GPUs)
  • GPU (compute node with NVIDIA GPU(s))
  • Interactive (compute node with NVIDIA GPU(s))

Visit our documentation on HPC hardware configuration for more information.

GPU General Overview

  • Graphics Processing Units (GPUs), originally developed for accelerating graphics rendering, can dramatically speed up any simple but highly parallel computational processes (General Purpose GPU).

CPU vs. GPU:

CPU GPU
Several Cores (100-1) Several Cores (103-4)
Low Latency High Throughput
Generic Workload (Complex & Serial Processing) Specific Workload (Simple & Highly Parallel)
Up to 1.5 TB / node on Rivanna Up to 80 GB /device on Rivanna
  • Integrated GPU vs Discrete GPUs:
    • Integrated GPUs are used mostly for graphics rendering and gaming
    • Dedicated GPUs are designed for intensive computations

Vendors and Types:

  • NVIDIA, AMD, Intel
  • Datacenter : K80, P100, V100, A100, H100 (NVIDIA); MI300A, MI300X (AMD)
  • Workstations: A6000, Quadro (NVIDIA)
  • Gaming: GeForce RTX 20xx, 30xx, 40xx (NVIDA), Radeon (AMD)
  • Laptops and desktops: GeForce (NVIDIA), Radeon (AMD), Iris (Intel)

Programming GPUs

Several libraries and programming models have been developed to program GPUs.

  • CUDA
    • CUDA is a parallel computation platform, developed by NVIDIA, for general-purpose programming on NVIDIA hardware.
  • HIP
    • HIP is a programming interface from AMD that allows developers to target either NVIDIA or AMD hardware.
  • OpenCL
    • OpenCL is a more general parallel computing platform, developed by Apple. It allows software to access CPUs, GPUs, FPGAs, and other devices.
  • SYCL
    • SYCL started as an outgrowth of OpenCL but is now independent of it.
  • Kokkos
    • Kokkos is another programming model that attempts to be device-independent. It can target multicore programming (OpenMP), CUDA, HIP, and SYCL.

Most of these programming paradigms can be used from Python, but nearly all machine learning/deep learning packages are based on CUDA and will only work with NVIDIA GPUs.

Previous
Next