Automatic PIM offloads in a funcX environment.
Vector Addition Yes Reduction Yes Yes BFS Yes Yes
Basic pipeline:
- program.py -> cython -> program.c -> gcc -> program.out
- program.out -> memgaze -> trace
- trace -> anlyzer -> memory-intensity?
- based on previous step we make offload decision
Environment:
- run
nix-shell
MemGaze Pipeline:
- <MEMGAZE_PATH>/install/bin/memgaze-inst va
- <MEMGAZE_PATH>/install/bin/memgaze-run -p 100000 memgaze-va/va-memgaze 10000000
- <MEMGAZE_PATH>/install/bin/memgaze-xtrace -i va-memgaze-trace-b8192-p100000/
Graph Cluster Analysis:
- Get the trace file
- Generate basic-blocks.json file (scripts/ directory)
- Place tracefile and basic-blocks.json in a directory
- Run cluster analysis using
cluster-anlys
tool (https://github.com/nandavelugoti/cluster-anlys)
References: