Skip to content

GainSite: Documentation and Artifacts for the GainSight Profiler Framework

GainSight Project Logo Banner

Latest Release

Abstract

As AI workloads drive soaring memory requirements, there is a need for higher-density on-chip memory for domain-specific accelerators that goes beyond what current SRAM technology can provide. We motivate that algorithms and application behavior should guide the composition of heterogeneous on-chip memories. However, there has been little work in factoring dynamic application profiles into such design decisions. We present GainSight, a profiling framework that analyzes fine-grained memory access patterns and computes data lifetimes in domain-specific accelerators. By combining instrumentation and simulation across retargetable hardware backends, GainSight aligns heterogeneous memory designs with workload-specific traffic and lifetime metrics. GainSight can be used to better understand the design spaces of both emerging on-chip memories and software algorithmic optimizations for the next generation of AI accelerators.

Quick Start

Running with Docker

Docker is the preferred method of running this project. Pull and run the Docker image using the following commands. You can find more information about the Docker image in the Container Registry.

1
2
docker pull scr.svc.stanford.edu/tambe-lab/gainsight:latest
docker run --gpus all -it --rm scr.svc.stanford.edu/tambe-lab/gainsight:latest

You can then run a sample CUDA program using the GPU simulator backend by running the following command within the Docker container:

1
2
cd /gainsight && conda activate gainsight
bash scripts/pipe_cleaner.sh

After the script finishes, you can view the output in the logs/render directory. You can refer to the data format wiki page for more information about what each of the output files means.

Contact

For questions about the project or this website, please contact the primary authors and maintainers:

Peijing Li - peli@stanford.edu

Thierry Tambe - ttambe@stanford.edu