Code Monkey home page Code Monkey logo

dpcpp_tools's Introduction

Performance analysis tools for DPC++

Overview

This repository contains following tools for performance analysis DPC++ applications:

  1. hotspots. This tool shows hottest PI API calls and devices activities (e.g. kernels execution time).
  2. dump_exec_graph. This tool dumps DPC++ execution graph for target application and shows hottest nodes.

Requirements

  • cmake >= 3.24
  • Compiler with С++ 17 support
  • DPC++ built with XPTI support

How to build

  1. Since XPTI has several issue on master branch, at first you must apply patches and rebuild DPC++
  2. mkdir build && cd build
  3. cmake -DXPTI_INCLUDE=<path_to_xpti_include> -DXPTIFW_DISPATHER=<path_to_libxptifw.so> -DSYCL_INCLUDE=<path_to_sycl_include> ..

e.g. cmake -DXPTI_INCLUDE=<path_to_llvm>/build/install/include -DXPTIFW_DISPATHER=<path_to_llvm>/build/install/lib/libxptifw.so -DSYCL_INCLUDE=<path_to_llvm>/build/install/include ..

  1. cmake --build .

How to use

You can use runners:

./hotspots <target_app> <target_app_args>

./dump_exec_graph <target_app> <target_app_args>

or manually set following environment variables:

  • XPTI_TRACE_ENABLE=1
  • XPTI_FRAMEWORK_DISPATCHER=<path_to_libxptifw.so>
  • XPTI_SUBSCRIBERS=<path_to_subscriber>

and launch target application.

Note: for dump_exec_graph tool you can specify path (set GRAPH_DUMP_PATH environment variable) to directory where execution graph will be saved.

Validated

  • OS: Ubuntu 18.04
  • DPC++ hash commit: 4043dda356af59d3d88607037955a0728dc0f466
  • Intel UHD Graphics 630, Intel Graphics Compute Runtime version: 20.52.18783
  • NVIDIA GeForce GTX 1650, CUDA version: 11.0

dpcpp_tools's People

Contributors

and7mw avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.