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
gpusoption 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
ptxvia thellccompiler.- The mapping table is stores as raw bytes in the
llcbinary.- 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
gpusoption in docker-compose file only acceptsallas input and cannot be leftnull, so when I was trying pass an empty string to thegpusoption, the docker compose build run failed.- I also learnt about the
c++filtbinary utility which is used to demangle C++ and Java symbols.- Learnt a few things about binary inspection using
readelf,nmandxxd.
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
llcis 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.