The initial release of A3PIM is described in the following paper:
[DATE'2024] Qingcai Jiang, Shaojie Tan, Junshi Chen and Hong An. A3PIM: An Automated, Analytic and Accurate Processing-in-Memory Offloader, 27th Design, Automation and Test in Europe Conference (DATE), 2024.
You need have installed python3-venv with sudo permissions
python3 -m venv curPy
source curPy/bin/active
pip install -r requirements.txtpip install virtualenv
virtualenv myenv
source myenv/bin/activatePrior to execution, it is necessary to properly configure the src/config.py file.
In addition to setting the conventional paths, the most crucial aspects involve specifying the application to be tested and its corresponding execution commands.
Given the highly uneven temporal distribution of data collection by Sniper, it is highly recommended to split main.py into multiple files and run them in stages.
The dependencies among steps are as follows: STEP3 and STEP4 require the completion of the preceding three parts (STEP1, STEP2.1, STEP2.2), with no dependencies among the initial three parts.
source curPy/bin/active
python3 preScaTest.pyParallel execution can be attempted; however, employing a single command for each application proves to be a more manageable approach.
To obtain the individual Sniper collection commands for each application, please utilize the following instructions.
python ./src/printPIMcommand.pyThe relevant code can be found in main.py.
source curPy/bin/active
python3 preParallelPimMode.pysource curPy/bin/active
python3 preAnalyse.pyWe are developing and testing a truly compile-time-scheduling framework using the following scripts:
python3 CTS.py If you wish to train your own XGB parameters, you can utilize the following command. Reviewing the ./training.sh file will assist in understanding the file dependencies for the training process.(The entire XGBoost training method has been deprecated and is currently in an incompatible state that cannot be executed.)
python src/trainning/main.py raise FileNotFoundError(
FileNotFoundError: Matplotlib's TeX implementation searched for a file named 'cmr10.tfm' in your texmf tree, but could not find it 0 is global 1 is main
BBLID Decision ctsDecision scaDecision Parallelism bbCount CPU PIM Difference Hash(hi) Hash(lo)
0 C C C 32 2 11007 6.30947e+07 -6.30837e+07 0 0
1 P C C 1 1312156 1.13788e+06 4.01082e+06 -2.87294e+06 1 1Qingcai Jiang: jqc9707@gmail.com