Skip to content

MorphBC/LTPV

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LTPV: Light Temporal Performance Viewer

LTPV is a light and generic profiler for High Performance Computing applications. It can be used as an OpenCL profiler.

Click here to see an online demonstration (only compatible with recent versions of Firefox, Chrome/Chromium)

LTPV is a light and generic profiler for High Performance Computing applications. It aims at easily profile C/C++ application using or not the OpenCL library. It results from the lack of an easy-to-use profiler for OpenCL applications.

https://raw.githubusercontent.com/wiki/LTPV/LTPV/inc/workflow_simple.png

Download

Installation

Until now, this project was only used on Unix platform. Any help to make this profiler work with other architectures is welcomed.

Unix

Note that you will need administrator privileges to complete the installation.

  • Open a terminal in ltpv/:
    cd ltpv/
    ./waf configure -m release
    ./waf
    sudo ./waf install

the library will be installed in /usr/local/ folder.

Usage

Profile OpenCL kernels and data transfer

Since LTPV overwrite OpenCL function calls, you have nothing particular to do appart launching your program with :

ltpv ./my_gpu_program # this version will launch firefox when your program ends

or

LD_PRELOAD=/path/to/libltpv.so ./my_gpu_program

Profile CPU functions

In order to profile CPU function you have to include ltpv header into your project :

#include <ltpv.h>

and compile you code with the libdl library

gcc ... -ldl ...

Now, you can track CPU function by surrounding your code with:

LTPV(my_function_to_track());

or

LTPV(my_function_to_track(), "My GPU function");

or

LTPV(my_function_to_track(), "My GPU function", [id of the displayed queue on the viewer] );

Note : ltpv.h contains only macros and functions relying on dynamic linking mecanisms. you don't need to link your program with libltpv at compilation time. however you should link with -ldl.

Gather OpenCL profiling data before the end of the program.

If you want to gather profiling infos. before the program ends (for example to get profiling information from intel OpenCL implementation)

LTPV_OPENCL_FINISH();

Viewer

Once your program terminate, a firefox window would popup with all profiling informations inside. Here some key features.

Zoom in

You can zoom in with [F2] key or with a left click-and-drag:

Zoom out

You can zoom in with [F1] key or by right-clicking.

go left/go right

  • Zoom out, then zoom in somewhere else
  • Use arrow keys: ⇦/⇨

Get information about a task

You can either:

  • Move you mouse over the task
  • Click on it Furthermore, the advanced view gives you more detailed informations and a raw array of the XML provided informations.

Other resources

License

This project is under GNU LGPL 2.1 See LICENSE for more information.

Contributor

(Alphabetic order)

  • Simon Denel (Thales SA)
  • ixeft

You can contact us by filling in a new issue ! (nobody bites ;) )

About

LTPV: Light Temporal Performance Viewer

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 46.3%
  • C++ 42.3%
  • CSS 3.8%
  • Python 3.0%
  • C 2.2%
  • HTML 2.1%
  • Other 0.3%