Giter Club home page Giter Club logo

autotuning_amd_vs_nvidia_gpus's Introduction

Data and Plotting scripts for "Comparing the Impact & Difficulty of Auto-Tuning on AMD and Nvidia GPUs"

This repository contains the cached GPU tuning data, the Python plotting scripts, and the kernels and kernel scripts for the paper "Comparing the Impact & Difficulty of Auto-Tuning on AMD and Nvidia GPUs" by Milo Lurati and Ben van Werkhoven.

The data for all experiments is stored as JSON files where the filenames indicate the GPU model and kernel that was run. The original scripts used to generate the data can be found in cache_scipts. In these scripts the exact search space for the parameters can be easily found.

Installation

The code makes use of the BlooPy Python package. Please ensure the latest version is installed.

pip install bloopy

To re-create the plots requires the seaborn package.

pip install seaborn

To re-create the cache files you will need Kernel Tuner with HIP.

Running the experiments

For anyone interested in repeating the experiments described in the paper the following describes how to run the experiments.

The main file for running experiments is run_experiments.py. It can be used as follows:

python run_experiments.py

In run_experiments.py by default, there are two lines of code commented out. These lines process the cache files and compute and analyze the FFGs. As these results are included by default in the repository, run_experiments.py will only plot the violin plots and centrality plots and calculate the statistical values of the search spaces.

Plot pagerank centralities

To plot FFGs proportion of PageRank centralities run:

python plot_centralities.py

Creating and plotting FFGs

To create new FFGs, run:

python compute_and_analyze_FFGs.py

By default, the script creates the FFG and computes the PageRank centralities (and saves them). By uncommenting line 180, the script will also draw the graph using networkX and save it as PDF. NOTE: Plotting FFGs is very expensive and may take a lot of RAM and time to plot.

Plot violins and calculate search space statistical values

To plot the violins and calculate the statistical values run:

python violins.py <kernel name>

Give kernel name as argument (convolution, hotspot, dedisp). For example python violins.py convolution.

autotuning_amd_vs_nvidia_gpus's People

Contributors

stijnh avatar milolurati 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.