IR2Vec
Loading...
Searching...
No Matches
Experiments

Note

The results mentioned in the experiment's scripts/the published version are not updated for this branch. The experimental results for this branch would be different when compared to the published version. For comparison, use the release corresponding to v0.1.0.

Requirements

  • Create a new conda env using the given exp_requirements.yaml file
    • conda env create --file exp_requirements.yaml for the first time.
    • Use conda activate IR2Vec for subsequent uses.

Heterogeneous Device Mapping

  • The aim of this experiment is to map a given kernel to a CPU or GPU
  • We use the same dataset described by NCC (see source code, paper)

Steps to Run

  • To generate embeddings run
    • bash generate_IR2Vec_embeddings.sh DM SYM to use Symbolic encodings, or
    • bash generate_IR2Vec_embeddings.sh DM FA to use Flow-Aware encodings
  • Open the DevMap.ipynb file in jupyter notebook and execute it.

Directory structure

Following would be the structure of the directory on successful completion of the experiment.

Device_Mapping
|-- data
| |-- kernels_ir
| | |-- *.ll
| |-- prior_art_results
| | |-- *.results
| |-- all.txt
| |-- cgo17-amd.csv
| |-- cgo17-nvidia.csv
|-- output
| |-- embeddings
| | |-- Device_Mapping_Symbolic_llvm17.txt
| | |-- Device_Mapping_FlowAware_llvm17.txt
|-- DevMap.ipynb

Thread Coarsening

  • The aim of this experiment is to predict the optimal thread coarsening factor for a kernel on a GPU
  • We use the same dataset described by NCC (see source code, paper)

Steps to Run

  • To generate embeddings run
    • bash generate_IR2Vec_embeddings.sh TC SYM to use Symbolic encodings, or
    • bash generate_IR2Vec_embeddings.sh TC FA to use Flow-Aware encodings
  • Open the ThreadCoarsening.ipynb file in jupyter notebook and execute it.

Directory structure

Following would be the structure of the directory on successful completion of the experiment.

Thread_Coarsening
|-- data
| |-- kernels_ir
| | |-- *.ll
| |-- prior_art_results
| | |-- *.results
| |-- all.txt
| |-- pact-2014-oracles.csv
| |-- pact-2014-runtimes.csv
|-- output
| |-- embeddings
| | |-- Thread_Coarsening_Symbolic_llvm17.txt
| | |-- Thread_Coarsening_FlowAware_llvm17.txt
|-- ThreadCoarsening.ipynb

Out_Of_Vocabulary

  • Shows the comparsion of #OOV cases encountered by our work and NCC
  • Experiementation is done on the set of 71 programs given in src/test-suite/PE-benchmarks
    • These programs are taken from geeksforgeeks.org

Time Taken

  • Shows the time taken to generate Symbolic and Flow-Aware embeddings
  • This experiment is also carried out on the same set of 71 programs