May 6, 2026

Goals

  • Learn about the how LLVM IR is converted to PTX.

What I worked on

  • Upgraded by dev-env setup to support GPU accelerated containers.
  • I learnt about the gpus option in docker-compose files. Also learnt about overiding docker-compose files.
  • I learnt a few things about how how LLVM IR instructions are mapped to ptx via the llc compiler.
  • The mapping table is stores as raw bytes in the llc binary.
  • Started the simulations for ideal L1 and L2 to compare the performance of my BoS prefetcher and measure the performance gap that still needs to be filled.

Key Insights

  • I learnt that the gpus option in docker-compose file only accepts all as input and cannot be left null, so when I was trying pass an empty string to the gpus option, the docker compose build run failed.
  • I also learnt about the c++filt binary utility which is used to demangle C++ and Java symbols.
  • Learnt a few things about binary inspection using readelf, nm and xxd.

Questions / Confusions

  • I have figure out which portion of LLVM code is responsible for mapping LLVM IR to ptx so that I can change some instructions according to my choosing.

Ideas / Hypotheses

  • Since the llc is binary and not a shared library, I do not need shared libraries for this attack.

Papers / Resources

Next Steps

  • Go deeper into LLVM code generation.

Introspection

  • With each new day my anger keeps growing, but I don’t even know what it’s for.