Replies: 2 comments 2 replies
|
Is it feasible to extract shared functionality into a library both Proteus/Mneme use, rather than having have one subsume the other? |
1 reply
|
I voted "no" at this time for these reasons:
That said, I think we can integrate better Proteus with Mneme especially regarding recording as the Proteus runtime already extracts LLVM IR so it. For replay, the JSON configuration interface is a good start and we can evolve it. I don't see any compelling factors for merging the codebases since we can interface them successfully and the philosophy of each tool doing "one task well" makes more sense to me. |
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Move Mneme Recording into the Proteus Repository
This proposal suggests migrating the
LD_PRELOAD_LIBRARY(librecord.so) and the standalone C++ replay tool (non-Python) from Mneme into the Proteus repository.Motivation
Over the past year, both projects have developed overlapping functionality — particularly in their LLVM instrumentation layers. Both currently embed LLVM IR into binaries and provide runtime mechanisms to retrieve and associate kernel invocations with their respective LLVM IR modules.
Consolidating these efforts into a shared implementation within Proteus would:
mneme) remaining as a separate, pip-installable component.Implementation Outline
Only a focused subset of Mneme functionality would be migrated, specifically the core recording and replay components:
Recording
JITDeviceImplT::instance()to extract the associated LLVM IR.Replay
These components (
librecordand the replay tool) would be defined as independent CMake targets within the Proteus build system.JITProteuswould remain independent, with the recording/replay modules depending on it rather than the other way around. We can further guard these tools withENABLE_MNEMEcmake functionality.2 votes ·
All reactions