gpt4 book ai didi

从技术上讲,使用 -O3 编译 gcc 会增加我的缓存未命中率

转载 作者:行者123 更新时间:2023-11-30 14:34:16 25 4
gpt4 key购买 nike

我用cachegrind 进行了一些分析并注意到了一些事情。当我使用 -O3 进行编译时,我的数据获取较少,但相同数量的缓存未命中导致较高的未命中率。这很棒,但对我来说这似乎是一件有趣而奇怪的事情,我想知道幕后发生了什么。我打开的唯一其他相关编译器选项是 -march=native 。为了比较,

没有O3

==16951== D   refs:        923,170,681  (817,941,424 rd   + 105,229,257 wr)
==16951== D1 misses: 9,477,102 ( 8,115,150 rd + 1,361,952 wr)
==16951== LLd misses: 647,219 ( 262,227 rd + 384,992 wr)
==16951== D1 miss rate: 1.0% ( 1.0% + 1.3% )
==16951== LLd miss rate: 0.1% ( 0.0% + 0.4% )

与O3

==16978== D   refs:      218,804,125  (205,979,405 rd   + 12,824,720 wr)
==16978== D1 misses: 9,372,533 ( 8,016,083 rd + 1,356,450 wr)
==16978== LLd misses: 647,195 ( 262,191 rd + 385,004 wr)
==16978== D1 miss rate: 4.3% ( 3.9% + 10.6% )
==16978== LLd miss rate: 0.3% ( 0.1% + 3.0% )

最佳答案

这很可能是由于矢量化造成的:

-O3

Optimize yet more. -O3 turns on all optimizations specified by -O2
and also turns on ... -ftree-vectorize and -fipa-cp-clone options.

(来自 GCC 联机帮助页)。

关于从技术上讲,使用 -O3 编译 gcc 会增加我的缓存未命中率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59024433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com