Skip to content

Repository files navigation

Represetative warp selector for nvidia GPU. Using instruction distribution as warp features and using Kmean algorithm from sklearn to cluster.

Input: dir contains .gz trace files from Accel-sim Tracer

Output: .bin boost file, the data struct(defined in trace_parser.h) is below

// Data structure shared with external warp selector
struct KernelRepWarp {
    int kernelNumber;
    int repWarpIdx;

    template <class Archive>
    void serialize(Archive &ar, const unsigned int version) {
        ar &kernelNumber;
        ar &repWarpIdx;
    }
};

How to use
Install and replace gzstream and boost path in makefile

pip install numpy scikit-learn
make clean && make

./trace_processor.out /path/to/benchmark/traces outputs

python cluster_and_select_warp.py outputs benchmark.txt

./txt_to_boost_bin.out benchmark.txt rptv_warp_selector.bin

The warp index is across threadblock. For example:

TB 0 0 0 
warp 0 warp 1 warp 2 warp 3
TB 1 0 0
warp 0 warp 1 warp 2 warp 3

then warpIdx 5 mean warp 1 in TB 1 0 0

About parse_result.py after run gcom like

./bin/GCoM -w 1 -r represetative_warp_selector/rep_warp_out.bin -C configs/RTX2060.config -t ~/Benchmarks/GCoM_trace_samples/rtx2060/11.0/gemm_bench-tencore/inference_half_7680_1_2560_0_0/traces | tee result.txt

then run

python parse_result.py result.txt deepbench_gemm_gcom.csv

Not official support for GCoM [ISCA '22], GCStack+GCScaler [ISCA '25], Accel-sim [ISCA '20]
See more details in:
https://github.com/yonsei-hpcp/gcom
https://github.com/yonsei-hpcp/gcstack_gcscaler
https://github.com/accel-sim/accel-sim-framework

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages