文件名称:hardware-effects:演示各种硬件效果
文件大小:56KB
文件格式:ZIP
更新时间:2024-04-20 13:22:35
C++
硬件效果 该存储库演示了各种硬件影响,这些影响可能以令人惊讶的方式降低应用程序性能,并且如果不了解低级CPU和OS架构,可能很难解释。 对于每种效果,我尝试创建一个尽可能小的概念证明程序,以便可以轻松理解。 具有GPU硬件效果的相关存储库: : 这些影响显然在很大程度上取决于您的CPU微体系结构和模型,因此,演示程序可能不会显示CPU的运行速度下降,但我尝试使它们尽可能通用。 也就是说,这些示例针对的是x86-64处理器(Intel和AMD),在其他CPU架构上可能没有意义。 我关注的是在商品(台式机/笔记本电脑)硬件上应能观察到的效果,因此这里不包括NUMA效果(尽管几年后,即使在个人计算机中它们也很常见)。 该代码主要在Linux上进行了测试。 当前显示了以下效果: 4K锯齿 带宽饱和 分支预测错误 分支目标预测错误 缓存冲突 缓存/内存层次结构带宽 数据依存关系 非正规浮
【文件预览】:
hardware-effects-master
----CMakeLists.txt(698B)
----Dockerfile(328B)
----.gitignore(2KB)
----prefetching()
--------CMakeLists.txt(114B)
--------README.md(4KB)
--------software-prefetching.py(602B)
--------random-accesses.cpp(1KB)
--------random-accesses.py(565B)
--------software-prefetching.cpp(2KB)
----README.md(4KB)
----misaligned-access()
--------CMakeLists.txt(56B)
--------README.md(2KB)
--------misaligned-access.cpp(2KB)
--------benchmark.py(383B)
----write-combining()
--------CMakeLists.txt(52B)
--------README.md(2KB)
--------write-combining.cpp(2KB)
--------benchmark.py(425B)
----data-dependency()
--------CMakeLists.txt(52B)
--------README.md(2KB)
--------benchmark.py(368B)
--------data-dependency.cpp(2KB)
----cache-hierarchy-bandwidth()
--------CMakeLists.txt(146B)
--------README.md(2KB)
--------cache-hierarchy-bandwidth.cpp(1017B)
--------benchmark.py(892B)
----branch-misprediction()
--------CMakeLists.txt(138B)
--------README.md(3KB)
--------branch-misprediction.cpp(1KB)
--------benchmark.py(359B)
--------branch-target-misprediction.cpp(2KB)
----cache-conflicts()
--------CMakeLists.txt(52B)
--------README.md(2KB)
--------cache-conflicts.cpp(1004B)
--------benchmark.py(656B)
----.dockerignore(17B)
----4k-aliasing()
--------CMakeLists.txt(44B)
--------README.md(2KB)
--------4k-aliasing.cpp(931B)
--------benchmark.py(411B)
----utils.py(2KB)
----store-buffer-capacity()
--------CMakeLists.txt(64B)
--------README.md(2KB)
--------store-buffer-capacity.cpp(971B)
----false-sharing()
--------CMakeLists.txt(122B)
--------README.md(3KB)
--------false-sharing.cpp(2KB)
--------benchmark.py(398B)
----cache-memory-bound()
--------CMakeLists.txt(58B)
--------README.md(2KB)
--------cache-memory-bound.cpp(976B)
--------benchmark.py(417B)
----hardware-store-elimination()
--------CMakeLists.txt(149B)
--------README.md(2KB)
--------hardware-store-elimination.cpp(1KB)
--------benchmark.py(784B)
----requirements.txt(48B)
----LICENSE.md(1KB)
----bandwidth-saturation()
--------CMakeLists.txt(136B)
--------README.md(3KB)
--------benchmark.py(460B)
--------bandwidth-saturation.cpp(2KB)
----.travis.yml(1KB)
----dram-refresh()
--------CMakeLists.txt(107B)
--------README.md(2KB)
--------dram-refresh.cpp(2KB)
--------benchmark.py(817B)
----floating-point()
--------CMakeLists.txt(120B)
--------README.md(6KB)
--------sse-avx-mix.cpp(1KB)
--------denormals.py(428B)
--------denormals.cpp(1KB)
--------sse-avx-mix.py(369B)