Git Product home page Git Product logo

gpu-roofline-python's Introduction

Python Hierarchical Roofline Module

Module to plot hierarchical roofline model for GPU single kernel based on nvprof metrics.

Methodology can be found in the following paper:

Metrics Used

  • inst_executed_thread : number of instructions executed by kernel

  • gld/gst_transactions : total number of global transactions for L1

  • shared_load/store_transactions : total number of shared transactions for L1

  • l2_read/write_transactions : total number of L2 transactions

  • dram_read/write_transactions : total number of HBM transactions

From the above we get the following results:

  • Instruction Intensity: (inst_executed_thread/32) / (# transactions) , instructions scaled to warp-level

  • Performance: (inst_executed_thread/32) / (1e9 * run time) , kernel_time is provided in usecs

Plotting Requirements

Example with Tesla V100S

To simulate the module, a Matrix Transpose kernel from cuda-samples, transposeNaive, is run in GPU NVIDIA Tesla V100S

  • Run script.sh by modifying appropriately
./script.sh
  • It produces timing/metrics_transpose.csv in example directory and the following roofline plot


Bandwidth Ceilings

In module plot.py the ceilings for L1,L2 cache, HBM and maximum (warp-based) IPS are sourced from the above-mentioned paper. Empirical bandwidths can be calculated by running measure_bw.sh under GPU_Microbenchmarks folder (results for V100S are provided in bw_measurements.txt). The microbenchmarks used can be found here: accel-sim/gpu-app-collection

! The module plot.py was designed based on the specific transpose kernel so user must modify it according to the required kernel ( Graph titles, metrics, kernel_name, etc. )

gpu-roofline-python's People

Contributors

giotyp 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.