Skip to content

XpuOS/picker

Repository files navigation

PICKER

A prototype tool to check the idempotence of SASS programs. It analyzes GPU kernel assembly (SASS) to determine whether repeated execution of a kernel produces the same memory state. The project includes both static analysis (from SASS/cubin) and runtime tracing.

Project Structure

picker/
├── main.py              # CLI entry point; runs checker and optional codegen
├── idem_checker/        # Python static checker: parser, executor, codegen
├── antlr4/              # ANTLR grammars and generated parsers for SASS (sm_70)
├── testdata/            # Sample SASS, CUDA sources
├── tracing/             # NVBIT-based runtime tracer for CUDA kernels (see tracing/README.md)
├── online_validation/   # C++ runtime validation / instrumentation
└── environment.yml      # Conda environment for the Python checker

Setup Conda Env

conda env create -f environment.yml

Usage

See python3 main.py --help

Example

python main.py --sass testdata/sass/sm70/vectoradd.sass -o vectoradd.cpp

Get SASS File

Currently, this tool only supports ISA of sm_70 GPUs (e.g., V100).

# Get cubin file 
nvcc -cubin -arch=sm_70  code.cu -o code.cubin

# Get sass file
cuobjdump -sass code.cubin > code.sass

License

This project is licensed under the Apache License 2.0 — see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors