diff --git a/docs/zh/Server/Development/GCC/gcc-basic-performance-optimization-user-guide.md b/docs/zh/Server/Development/GCC/gcc-basic-performance-optimization-user-guide.md index 9d6302c3a1ab6c7a54925a92352ac45ee3c8769e..3a4547dc3f6a4a9b742c2ad350c06f49ca5c5a74 100644 --- a/docs/zh/Server/Development/GCC/gcc-basic-performance-optimization-user-guide.md +++ b/docs/zh/Server/Development/GCC/gcc-basic-performance-optimization-user-guide.md @@ -183,3 +183,28 @@ Arm 相关指令合并优化,实现32位复杂组合的64位整形乘法逻辑 在选项中加入`-O3 -ftree-slp-transpose-vectorize`即可。 注:-ftree-slp-transpose-vectorize选项,需要在-O3开启的基础上才使能。 + + +### LLC-prefetch + +#### 说明 + +通过分析程序中主要的执行路径,对主路径上的循环进行访存的复用分析,计算排序出 TOP 的热数据,并插入预取指令将数据先分配至 LLC 中,减少 LLC miss。 + +#### 使用方法 + +使能 LLC 特性,需开启 -O2 及以上优化等级,同时使用编译选项 -fllc-allocate。 + +其他相关接口: + +| 选项 | 默认值 | 说明 | +| ---- | ---- | ---- | +| -param=mem-access-ratio=[0,100] | 20 | 循环内访存数对指令数的占比。| +| -param=mem-access-num=unsigned | 3 | 循环内访存数量。 | +| -param=outer-loop-nums=[1,10] | 1 | 允许扩展的外层循环的最大层数。 | +| -param=filter-kernels=[0,1] | 1 | 是否针对循环做路径串联筛选。 | +| -param=branch-prob-threshold=[50,100] | 80 | 高概率执行分支的概率阈值。 | +| -param=prefetch-offset=[1,999999] | 1024 | 预取偏移距离,一般为2的次幂。 | +| -param=issue-topn=unsigned | 1 | 预取指令个数。 | +| -param=force-issue=[0,1] | 0 | 是否执行强制预取,即静态模式。 | +| -param=llc-capacity-per-core=[0,999999] | 107 | 多分支预取下每个核平均分配的 LLC 容量。 |