A repository containing complete experimental setup of our "Intel MPX Explained" paper:
raw_results
: complete unprocessed measurements, in the form of.csv
files.asm_measurements
: scripts used to measure MPX instruction latencies and throughput. Also, a set of scripts that prove existence of contention on Port 1.src
: sources of the tested benchmark suits and case studies. (SPEC was excluded for licencing reasons)experiments/exp_*_*/run.py
: scripts defining the experiment procedureexperiments/makefiles/
: build typesinstall
: installation scripts
UPDATE (04-02-2020): At this point, Intel MPX support is officially discontinued by GCC (Patch) and Linux (Patch). The technology won't be available on the future Intel processors too (Announcement).
The interface is the same for all the benchmarks:
./fex.py run -n benchamark_name -t build_type --stats measurement_tool
For example, to measure performance on Phoenix:
./fex.py run -n phoenix_perf -t gcc_native icc_native clang_native gcc_asan gcc_asan_only_write clang_asan gcc_mpx gcc_mpx_only_write gcc_mpx_no_narrow_bounds gcc_mpx_no_narrow_bounds_only_write icc_mpx icc_mpx_only_write icc_mpx_no_narrow_bounds icc_mpx_no_narrow_bounds_only_write softbound_native softbound_enabled safecode_native safecode_enabled --stats perf
For the details of how to run the experiments, refer to the documentation of the underlying Fex framework. Note that this repository uses a bit outdated version of Fex and some things may mismatch. In such occasions, please, create an issue or contact me directly.
Full description of this work can be found in one of the follwing:
- Technical Report: complete results and full discussion
- Supporting website: even more detailed results, but less discussion
Paper:
@Article{Oleksenko:2018,
author = {Oleksenko, Oleksii and Kuvaiskii, Dmitrii and Bhatotia, Pramod and Felber, Pascal and Fetzer, Christof},
title = {{Intel MPX Explained: A Cross-layer Analysis of the Intel MPX System Stack}},
journal = "Proceedings of the ACM on Measurement and Analysis of Computing Systems (POMACS)",
year = {2018},
}
Technical Report:
@Article{Oleksenko:2017,
author = {Oleksenko, Oleksii and Kuvaiskii, Dmitrii and Bhatotia, Pramod and Felber, Pascal and Fetzer, Christof},,
title = {{Intel MPX Explained: An Empirical Study of Intel MPX and Software-based Bounds Checking Approaches}},
journal = "",
archivePrefix = "arXiv",
eprint = {1702.00719},
primaryClass = "",
year = {2017},
}