<commit_before>## gem5 Tips & Tricks
### **Tips and tricks for the ARM architecture**

Here you'll find tips and tricks for the ARM architecture.

Before running the scripts below make sure everything else is setup! You're all done if you followed [**the steps described here**](../../README.md).

* [**build_llvm_test_suite_apps.sh**](build_llvm_test_suite_apps.sh): builds some benchmark programs from the LLVM test-suite for arm.
* [**build_parsec_apps.sh**](build_parsec_apps.sh): builds some benchmark programs from the parsec-3.0 benchmark suite for arm.
* [**run_arm_fs_parsec.sh**](run_arm_fs_parsec.sh): builds gem5 and runs some benchmarks in full-system mode.
* [**run_arm_fs_android_ics.sh**](run_arm_fs_android_ics.sh): builds gem5 and runs android ics (full-system simulation).
* [**run_arm_se_hmc.sh**](run_arm_se_hmc.sh): builds gem5 and runs it using HMC as main memory (syscall emulation).
* [**run_arm_se_benchmarks.sh**](run_arm_se_benchmarks.sh): builds gem5 and runs some of the above-mentioned benchmarks (system call emulation).

#### **Run the scripts.**

A suggestion on how to run the scripts follows:

Build some benchmark programs:
```bash
bash get_arm_se_benchmarks.sh
```

Execute benchmarks:
```bash
bash run_arm_se_benchmarks.sh
```

Build some full-system benchmark programs:
```bash
bash get_arm_fs_benchmarks.sh
```

Execute some full-system benchmarks (note that this one requires **sudo** to
perform some actions):
```bash
sudo bash run_arm_fs_benchmarks.sh
```

### **The Arm Research Starter Kit: System Modeling using gem5**

The [**Arm Research Starter Kit**](https://github.com/arm-university/arm-gem5-rsk) will guide you through Arm-based system modeling using the gem5 simulator.
<commit_msg>Doc updated<commit_after>## gem5 Tips & Tricks
### **Tips and tricks for the ARM architecture**

Here you'll find tips and tricks for the ARM architecture.

Before running the scripts below make sure everything else is setup! You're all done if you followed [**the steps described here**](../../README.md).

* [**build_llvm_test_suite_apps.sh**](build_llvm_test_suite_apps.sh): builds some apps from LLVM test-suite.
* [**build_parsec_apps.sh**](build_parsec_apps.sh): builds some apps from parsec-3.0 benchmark suite.
* [**build_stream_app.sh**](build_stream_app.sh): builds stream app.
* [**build_stride_apps.sh**](build_stride_apps.sh): builds stride v1.1 apps.
* [**create_images.sh**](create_images.sh): builds disk images containing the benchmark programs. Run it with **sudo**.
* [**run_arm_fs_android_ics.sh**](run_arm_fs_android_ics.sh): Full-system mode executing android ics.
* [**run_arm_fs_parsec.sh**](run_arm_fs_parsec.sh): Full-system mode executing parsec-3.0 apps.
* [**run_arm_fs_stream.sh**](run_arm_fs_stream.sh): Full-system mode executing stream app.
* [**run_arm_fs_stride.sh**](run_arm_fs_stride.sh): Full-system mode executing stride v1.1 apps.
* [**run_arm_fs_test_suite.sh**](run_arm_fs_test_suite.sh): Full-system mode executing some apps from LLVM test-suite.
* [**run_arm_se_8_cores_with_different_workloads.sh**](run_arm_se_8_cores_with_different_workloads.sh): System call emulation mode, 8 cores with different workloads (experimental).
* [**run_arm_se_benchmarks.sh**](run_arm_se_benchmarks.sh): System call emulation mode executing some apps.
* [**run_arm_se_hbm_eltrace.sh**](run_arm_se_hbm_eltrace.sh): System call emulation mode HBM as main memory using elastic traces as stimuli.
* [**run_arm_se_hmc.sh**](run_arm_se_hmc.sh): System call emulation mode HMC as main memory.

#### **Run the scripts.**

A suggestion on how to run the scripts follows:

Build some benchmark programs:
```bash
./build_llvm_test_suite_apps.sh
./build_parsec_apps.sh
./build_stream_app.sh
./build_stride_apps.sh
```

Create disk images with the benchmark programs inside:
```bash
sudo ./create_images.sh
```

Execute benchmarks:
```bash
./run_arm_fs_test_suite.sh
./run_arm_se_benchmarks.sh
```

### **The Arm Research Starter Kit: System Modeling using gem5**

The [**Arm Research Starter Kit**](https://github.com/arm-university/arm-gem5-rsk) will guide you through Arm-based system modeling using the gem5 simulator.

{'fraction_non_alphanumeric': 0.12338284619070436, 'fraction_numerical': 0.005989458552946814, 'mean_word_length': 5.8894389438943895, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '721043', 'n_tokens_mistral': 1406, 'n_tokens_neox': 1316, 'n_words': 402}