... | ... | @@ -81,3 +81,44 @@ Since FullMonte does not have `main()` function, you now need to setup your IDE |
|
|
* Set environment variables `LD_LIBRARY_PATH` and `TCLLIBPATH`
|
|
|
* `LD_LIBRARY_PATH = /:/home/fynn/native_build/FullMonteSW/Build/DebugGCC/lib:/usr/lib/x86_64-linux-gnu`
|
|
|
* `TCLLIBPATH = /home/fynn/native_build/FullMonteSW/Build/DebugGCC/lib/tcl`
|
|
|
|
|
|
## Setup for FullMonte for HW (Simulation/Acceleration)
|
|
|
|
|
|
### Run/Test Synthesized Hardware
|
|
|
If you want to run/develop the Bluespec FPGA accelerator for FullMonte, there are a few prerequisites that need to be fulfilled first.
|
|
|
|
|
|
* The synthesized hardware currently only runs on our native IBM Power8 machine. If you don't have access to it, you won't be able to test/run the synthesized hardware.
|
|
|
* FullMonte should handle all dependencies to it's submodules. But just to make sure, the synthesized version of the hardware requires the following submodules
|
|
|
* BDPIDevice
|
|
|
* CAPICMake (Sets up the CAPI interface libraries from IBM)
|
|
|
* BlueLink
|
|
|
* libcxl (Library for HW/SW interface to CAPI)
|
|
|
|
|
|
The cmake build environment currently does not automatically detect if the synthesized hardware should be run. This has to be specified by the user. This can be done with the Flag `CAPI_SYN`.
|
|
|
|
|
|
```shell
|
|
|
cmake -G Ninja \
|
|
|
-DCMAKE_MODULE_PATH=~/FullMonteSW/Build/ReleaseGCC/cmake \
|
|
|
-DARCH=P8 \
|
|
|
-DCMAKE_CXX_COMPILER=/usr/bin/g++ \
|
|
|
-DCMAKE_C_COMPILER=/usr/bin/gcc \
|
|
|
-DBOOST_ROOT=/usr/include/boost \
|
|
|
-DWRAP_TCL=ON \
|
|
|
-DWRAP_VTK=OFF \
|
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
|
-DNonSSE=OFF \
|
|
|
-DCAPI_SYN=ON \
|
|
|
../..
|
|
|
```
|
|
|
|
|
|
* `cmake -G Ninja`: -G Ninja is not required. If you just delete it, you can compile the project with `make`.
|
|
|
|
|
|
* `-DCMAKE_MODULE_PATH=~/FullMonteSW/Build/ReleaseGCC/cmake`: All other paths should be predefined in the `CMakeLists.txt` of FullMonte. This is the path of your own Build environment. If you want to build FullMonte in any other location, you have to change this variable.
|
|
|
|
|
|
* `-DARCH=P8`: This defines the architecture for which FullMonte should be built. This is also detected automatically
|
|
|
|
|
|
* `-DNonSSE=OFF`: This variable must be set, otherwise you won't be able to compile FullMonte and run the software because Power8 does not support AVX/AVX2 instructions
|
|
|
|
|
|
* `-DCAPI_SYN=ON`: This specifies that we want to run the synthesized version of the hardware. This will load the hardware version of libcxl
|
|
|
|
|
|
After cmake configured the project successfully, you can compile the FullMonte either with `ninja` if you used the `-G Ninja` option or with `make`. |