BabelSTREAM

Follow this procedure to run BabelSTREAM and measure GPU memory bandwidth.

  • Operating system: Ubuntu* 22.04

  • Hardware: Intel® Data Center Max GPUs

  • Software: Intel® oneAPI Base toolkit, Intel® oneAPI HPC toolkit

  • Time to complete: 15 minutes

  1. Check whether the driver stack is installed.

    $ xpu-smi discovery
    

    The command should return at least one Intel® Data Center GPU Max device.

  2. Check whether the oneAPI toolkit is installed.

    $ apt list intel-basekit intel-hpckit
    

    Expected output:

    Listing... Done
    intel-basekit/all,now 2023.2.0-49384 amd64 [installed]
    intel-hpckit/all,now 2023.2.0-49438 amd64 [installed]
    
  3. If you previously have not configured your environment, install the Ubuntu 22.04 graphics driver. See dgpu-docs for details.

    Note

    Access to Ubuntu repositories, such as https://repositories.intel.com and https://apt.repos.intel.com, is required for installation. If proxy settings involve changes to environment variables such as http_proxy or https_proxy, small modifications are required in the following steps, such as adding -E (preserve environment) to sudo commands.

  4. If you previously have not configured your environment, enable access to the Intel repo serving the oneAPI packages and install the oneAPI Base toolkit and HPC toolkit for Ubuntu 22.04.

    wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \ | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
    echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo  tee /etc/apt/sources.list.d/oneAPI.list
    sudo apt update
    
    sudo apt install -y intel-basekit intel-hpckit
    
  5. Install build dependencies.

    sudo apt install -y git build-essential cmake
    
  6. Build BabelSTREAM.

    git clone https://github.com/UoB-HPC/BabelStream
    cd BabelStream
    source /opt/intel/oneapi/setvars.sh
    mkdir build && cd build
    cmake .. -DMODEL=sycl2020-acc -DSYCL_COMPILER=ONEAPI-ICPX
    make
    
  7. Identify the number of GPUs presented in the system and their IDs.

    clinfo -l 
    
    Platform #0: Intel(R) OpenCL Graphics 
     +-- Device #0: Intel(R) Data Center GPU Max 1550 
      -- Device #1: Intel(R) Data Center GPU Max 1550 
    

    A device 0 should be available on any system with an Intel GPU with a GPU stack correctly installed, such as in this example:

    ONEAPI_DEVICE_SELECTOR=level_zero:0 ./sycl2020-acc-stream -s 134217728
    

    If additional devices are available, they can be selected by device number, as in the following example for a device number 1.

    ONEAPI_DEVICE_SELECTOR=level_zero:1 ./sycl2020-acc-stream -s 134217728
    

The following result snapshot is from Intel® Data Center GPU Max 1550:

BabelStream
Version: 5.0
Implementation: SYCL2020 accessors
Running kernels 100 times
Precision: double
Array size: 1073.7 MB (=1.1 GB)
Total size: 3221.2 MB (=3.2 GB)
Using SYCL device Intel(R) Data Center GPU Max 1550
Driver: 1.3.26516
...