User Guide

Intel® VTune™ Profiler User Guide

ID 766319
Date 11/07/2023
Public
Document Table of Contents

Error Message: Cannot Collect GPU Hardware Metrics

Possible error messages:

  • Cannot collect GPU hardware metrics because neither libigdmd.so nor libmd.so was found.

  • Cannot collect GPU hardware metrics because neither libigdmd.so nor libmd.so can be initialized. Make sure you have installed Metrics Discovery API from https://github.com/intel/metrics-discovery correctly.

  • Cannot collect GPU hardware metrics because libmd.so cannot be loaded. Make sure you have installed Metrics Discovery API from https://github.com/intel/metrics-discovery correctly.

  • Cannot collect GPU hardware metrics because libmd.so was not found. Make sure you have installed Metrics Discovery Application Programming Interface from https://github.com/intel/metrics-discovery.

  • Cannot collect GPU hardware metrics because your version of the Metrics Discovery API is obsolete.

Cause

To collect GPU hardware metrics and GPU utilization data on Linux, VTune Profiler uses the Intel® Metric Discovery API library distributed with the product. If VTune cannot access the library, one of the aforementioned error messages display.

Solution

Depending on the version of VTune Profiler you use, choose one of these solutions and follow the steps.

Version of VTune Profiler Step 1 Step 2
Upgrade to the latest version of VTune Profiler Install as part of the Intel® oneAPI Base Toolkit

No further actions necessary. Product versions starting with 2021.1 automatically select the latest libstdc++ available in runtime to satisfy the GPU analysis requirements, so no additional configuration is required.

Install as a standalone component

Install the Intel Metric Discovery API library ver. 1.12.148 (or newer) from the official repository at https://github.com/intel/metrics-discovery.

Use VTune Profiler versions 2020, 2021.1.0 beta04 or an older version

Install the Intel Metric Discovery API library ver. 1.12.147 (or older) from the official repository at https://github.com/intel/metrics-discovery.

Ensure that the API library meets the following requirements:

  • To enable VTune Profiler to successfully load the library, it should be linked to libstdc++ (version GLIBCXX_3.4.20 or older) or statically linked to libstd++. If libmd.so (renamed to libigdmd.so starting with MD API 1.12.148) is dynamically linked to a newer version of libstdc++, make sure to have it loaded to the process before loading libmd.so. You can do this, for example, by re-defining the environment variable LD_PRELOAD:

    LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6 vtune -c gpu-hotspots.

  • If you use su or sudo command to run the VTune Profiler, you need to redefine LD_PRELOAD directly in the command, for example:

    sudo LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6 vtune -c gpu-hotspots

  • In case of remote target profiling, remove or rename the following file in the VTune Profiler package installed on the remote target:

    <vtune-target-install-dir>/lib64/libstdc++.so.6