-
Notifications
You must be signed in to change notification settings - Fork 27
Getting Started
This guide will help you set up your environment, install necessary dependencies, and run your first benchmark using our tool.
Before you begin, ensure that your system meets the following requirements:
- Ubuntu 22.04 or newer
- g++ version 11.0 or newer
- glibc version 2.34 or newer
- Python 3
- CUDA Toolkit version 11.8 or newer
Note: The PIMeval simulator itself does not require Python or CUDA compatibility. These dependencies are only necessary if you intend to run the benchmarks.
Important: The repository has not been tested on Windows or macOS. While you can attempt to run it on these systems, compatibility is not guaranteed. Please report any issues you encounter.
Follow these steps to set up PIMeval-PIMbench on your system.
Ensure that all essential dependencies are installed on your system.
-
Update Package Lists:
sudo apt update
-
Install Python 3 and pip (Optional, required for benchmarks):
sudo apt install python3 python3-pip
Verify the installation:
python3 --version
-
Install g++:
sudo apt install <g++>
Verify the installation:
g++ --version
-
Install glibc:
glibc is typically installed by default on Ubuntu systems. To verify:
ldd --version
Ensure that the version is 2.34 or newer.
-
Install CUDA Toolkit (Optional, required for benchmarks):
Follow the official CUDA Toolkit installation guide for detailed instructions.
Verify the installation:
nvcc --version
Clone the repository to your local machine:
git clone https://github.com/UVA-LavaLab/PIMeval-PIMbench.git
cd PIMeval-PIMbenchOnce the installation is complete, you can start using the simulator and running benchmarks. This section provides detailed instructions on how to build PIMeval and PIMbench, as well as how to execute the benchmarks.
To build both PIMeval and PIMbench simultaneously, follow these steps:
-
Navigate to the Root Directory:
cd PIMeval-PIMbench/ -
Build the Project:
Replace
<n_proc>with the number of processor cores you want to utilize for the build process (e.g.,4).make -j<n_proc>
Example:
make -j4
Tip: Using the
-jflag withmakeallows parallel compilation, significantly speeding up the build process on multi-core systems.
If you prefer to build PIMeval independently, follow these steps:
-
Navigate to the PIMeval Directory:
cd PIMeval-PIMbench/libpimeval/ -
Build PIMeval:
Replace
<n_proc>with the desired number of processor cores.make -j<n_proc>
Example:
make -j4
Before building PIMbench, ensure that PIMeval has been successfully built, as PIMbench depends on it.
To build all available benchmarks within PIMbench:
cd PIMeval-PIMbench/PIMbench
make -j<n_proc>If you want to focus on a particular benchmark, building it individually is recommended. This approach is useful for testing or experimenting with specific benchmarks without compiling the entire suite.
cd PIMeval-PIMbench/PIMbench/<benchmark_directory>
make -j<n_proc>Replace <benchmark_directory> with the name of the benchmark you wish to build.
cd PIMeval-PIMbench/PIMbench/axpy
make -j4To build CPU or GPU baseline versions of a specific benchmark, follow these steps:
-
Navigate to the Baseline Directory:
Replace
<benchmark_directory>with the benchmark name and<CPU/GPU>with the desired baseline.cd PIMeval-PIMbench/PIMbench/<benchmark_directory>/baselines/<CPU|GPU>
Example (CPU):
cd PIMeval-PIMbench/PIMbench/axpy/baselines/CPUExample (GPU):
cd PIMeval-PIMbench/PIMbench/axpy/baselines/GPU -
Build the Baseline Version:
Replace
<n_proc>with the number of processor cores.make -j<n_proc>
Example:
make -j4
After successfully building PIMeval and PIMbench, you can proceed to run the simulator and execute benchmarks. Depending on the benchmark's configuration and your specific needs, you might have different scripts or executables to run. Refer to each benchmark's README for detailed instructions.
Note: Ensure that any required environment variables or configurations are set before running the benchmarks.
If you need to clean up build artifacts or perform a fresh build, you can use the make clean command within the respective directories.
Example: Cleaning a Specific Benchmark
cd PIMeval-PIMbench/PIMbench/<benchmark_directory>
make cleanIf you need further assistance, feel free to reach out through the following channels:
- GitHub Issues: Open an Issue
- Discussion Forum: Join the Discussion
- Reach Out via Email!
Happy PIMming!