From fe73495a6203560aac139e5d3717d527007210f2 Mon Sep 17 00:00:00 2001 From: hemiao Date: Mon, 7 Jul 2025 09:59:11 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=88=A0=E9=99=A4gcc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- archive/gcc/_toc.yaml | 12 - archive/gcc/gcc_optimization_user_guide.md | 279 ------------------ archive/gcc/kernel_fdo_user_guide.md | 68 ----- ...me_binary_library_inlining_optimization.md | 56 ---- archive/gcc/overview.md | 3 - archive/gcc/pin_user_guide.md | 134 --------- 6 files changed, 552 deletions(-) delete mode 100644 archive/gcc/_toc.yaml delete mode 100644 archive/gcc/gcc_optimization_user_guide.md delete mode 100644 archive/gcc/kernel_fdo_user_guide.md delete mode 100644 archive/gcc/link_time_binary_library_inlining_optimization.md delete mode 100644 archive/gcc/overview.md delete mode 100644 archive/gcc/pin_user_guide.md diff --git a/archive/gcc/_toc.yaml b/archive/gcc/_toc.yaml deleted file mode 100644 index bd56f8c..0000000 --- a/archive/gcc/_toc.yaml +++ /dev/null @@ -1,12 +0,0 @@ -label: GCC 用户指南 -isManual: true -description: GCC for openEuler 编译器基于开源 GCC 开发,聚焦于C、C++、Fortran语言的优化 -sections: - - label: 内核反馈优化特性 - href: ./kernel_fdo_user_guide.md - - label: 全场景链接时二进制库内联优化 - href: ./link_time_binary_library_inlining_optimization.md - - label: GCC 插件框架特性用户指南 - href: ./pin_user_guide.md - - label: GCC 优化特性 - href: ./gcc_optimization_user_guide.md diff --git a/archive/gcc/gcc_optimization_user_guide.md b/archive/gcc/gcc_optimization_user_guide.md deleted file mode 100644 index 4e284f2..0000000 --- a/archive/gcc/gcc_optimization_user_guide.md +++ /dev/null @@ -1,279 +0,0 @@ -# GCC 优化特性用户指南 - -## 简介 - -编译器优化特性对于提高应用程序的开发效率、运行性能和可维护性都非常重要。它是计算机科学领域的一个重要研究方向,也是软件开发过程中的重要环节之一。GCC for openEuler 在通用编译优化能力的基础上,对中后端性能优化技术进行了增强,包括指令优化、向量化增强、预取增强、数据流分析增强等优化。 - -## 安装与部署 - -### 软件要求 - -操作系统:openEuler 24.03 - -### 硬件要求 - -aarch64 架构 - -### 安装软件 - -按需安装 GCC 和相关组件即可,以 GCC 为例。 - -```shell -yum install gcc -``` - -## 使用方法 - -### CRC 优化 - -#### 说明 - -识别 CRC 软件循环代码,生成高效硬件指令。 - -#### 使用方法 - -在编译时增加 `-floop-crc` 选项。 - -注:`-floop-crc`选项需要和`-O3 -march=armv8.1-a`一起使用。 - -### If-conversion 增强 - -#### 说明 - -增强 If conversion 优化,使用更多的寄存器以减少冲突。 - -#### 使用方法 - -本优化是 RTL 优化 if-conversion 的一部分,使用如下编译选项控制优化启用。 - -`-fifcvt-allow-complicated-cmps` - -`--param=ifcvt-allow-register-renaming=[0,1,2]`数字用于控制优化范围。 - -注:此优化依赖`-O2`优化等级,以及与`--param=max-rtl-if-conversion-unpredictable-cost=48`、`--param=max-rtl-if-conversion-predictable-cost=48`共同使用。 - -### 乘法计算优化 - -#### 说明 - -Arm 相关指令合并优化,实现32位复杂组合的64位整形乘法逻辑的识别,并以高效的64位指令数输出。 - -#### 使用方法 - -使用`-fuaddsub-overflow-match-all`和`-fif-conversion-gimple`选项使能优化。 - -注:此优化需要`-O3`及以上优化等级。 - -### cmlt 指令生成优化 - -#### 说明 - -对一些四则运算生成`cmlt`指令,减少指令数。 - -#### 使用方法 - -使用选项`-mcmlt-arith`使能优化。 - -注:此优化需要`-O3`以上优化等级使用。 - -### 向量化优化增强 - -#### 说明 - -识别并简化向量化过程中生成的冗余指令,允许更短的循环进入向量化。 - -#### 使用方法 - -使用参数`--param=vect-alias-flexible-segment-len=1`使能,默认为0。 - -注:此优化需要`-O3`及以上优化等级。 - -### min max 和 uzp1/uzp2 指令联合优化 - -#### 说明 - -识别 `min max` 和 `uzp1/uzp2` 指令联合优化机会,减少指令数从而提升性能。 - -#### 使用方法 - -使用`-fconvert-minmax`选项使能`min max`优化,`uzp1/uzp2`指令优化在`-O3`以上等级默认使能。 - -注:依赖`-O3`及以上优化等级。 - -### ldp/stp 优化 - -#### 说明 - -识别某些性能表现差的 ldp/stp,将其拆分成2个 ldr 和 str。 - -#### 使用方法 - -使用`-fsplit-ldp-stp`选项使能优化,使用参数`--param=param-ldp-dependency-search-range=[1,32]`控制搜索范围,默认16。 - -注:依赖`-O1`及以上优化等级。 - -### AES指令优化 - -#### 说明 - -识别 AES 软件算法指令序列,使用硬件指令加速。 - -#### 使用方法 - -使用`-fcrypto-accel-aes`选项使能优化。 - -注:依赖`-O3`及以上优化等级。 - -### 间接调用提升 - -#### 说明 - -识别和分析程序中的间接调用,尝试将其优化为直接调用。 - -#### 使用方法 - -使用选项`-ficp -ficp-speculatively`使能优化。 - -注:此优化需要和`-O2 -flto -flto-partition=one`共同使用。 - -### IPA-prefetch - -#### 说明 - -识别循环中的间接访存,插入预取指令,从而减少间接访存的延迟。 - -#### 使用方法 - -通过选项`-fipa-prefetch -fipa-ic`使能优化。 - -注:此优化需要和`-O3 -flto`共同使用。 - -### -fipa-struct-reorg - -#### 说明 - -内存空间布局优化,将结构体成员在内存中的排布进行新的排列组合,来提高 cache 的命中率。 - -#### 使用方法 - -在选项中加入`-O3 -flto -flto-partition=one -fipa-struct-reorg`即可。 - -注:`-fipa-struct-reorg`选项,需要在`-O3 -flto -flto-partition=one`全局同时开启的基础上才使能。 - -### -fipa-reorder-fields - -#### 说明 - -内存空间布局优化,根据结构体中成员的占用空间大小,将成员从大到小排列,以减少边界对齐引入的 padding,来减少结构体整体占用的内存大小,以提高 cache 的命中率。 - -#### 使用方法 - -在选项中加入`-O3 -flto -flto-partition=one -fipa-reorder-fields`即可。 - -注:`-fipa-reorder-fields`选项,需要在`-O3 -flto -flto-partition=one`全局同时开启的基础上才使能。 - -### -ftree-slp-transpose-vectorize - -#### 说明 - -该选项在循环拆分阶段,增强对存在连续访存读的循环的数据流分析能力,通过插入临时数组拆分循环;SLP 矢量化阶段,新增对 grouped_stores 进行转置的 SLP 分析。 - -#### 使用方法 - -在选项中加入`-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 容量。 | - -### -fipa-struct-sfc - -#### 说明 - -静态压缩结构体成员,从而减小结构体整体占用的内存大小,以提高 cache 命中率。 - -#### 使用方法 - -在选项中加入`-O3 -flto -flto-partition=one -fipa-reorder-fields -fipa-struct-sfc`即可,可在此基础上使用`-fipa-struct-sfc-bitfield`、`-fipa-struct-sfc-shadow`开启额外优化。 - -注:`-fipa-struct-sfc`选项,需要在`-O3 -flto -flto-partition=one`全局同时开启以及开启`-fipa-reorder-fields`或`-fipa-struct-reorg>=2`的基础上才能使能。 - -### -fipa-struct-dfc - -#### 说明 - -动态压缩结构体成员,克隆程序路径并启发式压缩结构体大小,根据运行时检查选择运行路径,以提高 cache 命中率。 - -#### 使用方法 - -在选项中加入`-O3 -flto -flto-partition=one -fipa-reorder-fields -fipa-struct-dfc`即可,可在此基础上使用`-fipa-struct-dfc-bitfield`、`-fipa-struct-dfc-shadow`开启额外优化。 - -注:`-fipa-struct-dfc`选项,需要在`-O3 -flto -flto-partition=one`全局同时开启以及开启`-fipa-reorder-fields`或`-fipa-struct-reorg>=2`的基础上才能使能。 - -### -fipa-alignment-propagation - -#### 说明 - -分析并传播局部变量地址对齐值,优化按位与运算。 - -#### 使用方法 - -在选项中加入`-O3 -fipa-alignment-propagation`即可。 - -注:`-fipa-alignment-propagation`选项,需要在`-O3`开启的基础上才使能。 - -### -fipa-localize-array - -#### 说明 - -将由 calloc 分配的全局指针变量转换为局部变量。 - -#### 使用方法 - -在选项中加入`-O3 -fipa-localize-array`即可。 - -注:`-fipa-localize-array`选项,需要在`-O3`开启的基础上才使能。 - -### -fipa-array-dse - -#### 说明 - -分析数组在函数之间的传递情况以及在被调用函数中的使用情况,消除冗余的数组写入。 - -#### 使用方法 - -在选项中加入`-O3 -fipa-array-dse`即可。 - -注:`-fipa-array-dse`选项,需要在`-O3`开启的基础上才使能。 - -### -ffind-with-sve - -#### 说明 - -识别 `std::find` 函数调用,尝试使用 SVE 指令优化。 - -#### 使用方法 - -在选项中加入 `-ffind-with-sve` 即可。 diff --git a/archive/gcc/kernel_fdo_user_guide.md b/archive/gcc/kernel_fdo_user_guide.md deleted file mode 100644 index 439dfc8..0000000 --- a/archive/gcc/kernel_fdo_user_guide.md +++ /dev/null @@ -1,68 +0,0 @@ -# 内核反馈优化特性用户指南 - -## 简介 - -内核反馈优化(PGO kernel)特性为内核提供了反馈优化能力的支持,使用户可以为不同的应用程序构建针对性优化的内核,在单应用场景下提高目标应用的性能。同时,该特性一并在openEuler GCC内提供了相应的编译支持,以及在A-FOT中提供了自动优化的功能,使用户能够便捷地使能内核反馈优化特性。 - -## 安装与部署 - -### 软件要求 - -* 操作系统:openEuler 23.09 - -### 硬件要求 - -* aarch64架构 -* x86_64架构 - -### 安装软件 - -安装内核源码、A-FOT和其他依赖软件包 - -```shell -yum install -y kernel-source A-FOT make gcc flex bison elfutils-libelf-devel diffutils openssl-devel dwarves -``` - -复制内核源码 - -```shell -cp -r /usr/src/linux-6.4.0-8.0.0.16.oe2309.aarch64 . -``` - -**注意:具体的版本号可能会有变化。** - -## 使用方法 - -用户可以通过A-FOT工具使能内核反馈优化,一键得到优化内核。将opt_mode指定Auto_kernel_PGO则为PGO kernel模式。所有配置选项也可以通过命令行指定,例如./a-fot --pgo_phase 1,另外-s、-n选项只能在命令行指定。PGO kernel相关的选项说明如下表所示。 - -| 序号 | 选项名称(配置文件) | 选项说明 | 默认值 | -| ---- | -------------------- | ------------------------------------------------------------ | ------------------------ | -| 1 | config_file | 配置文件路径;根据此文件内容读取用户的选项配置。 | ${afot_path}/a-fot.ini | -| 2 | opt_mode | 优化模式;工具将执行的优化模式,必须为AutoFDO、AutoPrefetch、AutoBOLT、Auto_kernel_PGO四者之一;分别代表自动反馈优化、自动预取、自动二进制优化和自动内核反馈优化。 | AutoPrefetch | -| 3 | pgo_mode | PGO模式;内核的反馈优化模式,GCOV或完整的PGO*,必须为arc或all;分别代表仅使用arc profile和使用arc+value profile。 | all | -| 4 | pgo_phase | 内核反馈优化的执行阶段;工具根据阶段执行不同的操作,必须为1或2;1代表编译插桩内核的阶段,2代表收集数据、编译优化内核的阶段。 | 1 | -| 5 | kernel_src | 内核源码目录;指定则工具进入编译内核,否则工具自动下载源码。 | 无(可选) | -| 6 | kernel_name | 内核构建的本地名;工具将根据阶段添加"-pgoing"或"-pgoed"后缀。 | kernel | -| 7 | work_path | 脚本工作目录;此目录用于存放日志文件、wrapper和profile。 | /opt(不能在/tmp目录下) | -| 8 | run_script | 应用执行脚本路径;此脚本为目标应用的执行脚本,需要用户完成编写;工具将后台运行此脚本以执行目标应用。 | /root/run.sh | -| 9 | gcc_path | GCC路径;工具调用真正编译器GCC的路径。 | /usr | -| 10 | -s | 安静模式;工具自动重启系统切换内核、执行第二阶段。 | 无 | -| 11 | -n | 不要让工具来编译内核;适用于执行环境和内核编译环境分离的场景。 | 无 | - -配置完编译选项后,可以使用如下命令进行A-FOT自动化优化内核: - -```shell -a-fot --config_file ./a-fot.ini -s -``` - -**注意:-s选项会让A-FOT工具自动重启机器切换内核,如果用户不希望自动进行这一项敏感操作,请去掉这一选项。但用户需要在重启后手动执行第二阶段(--pgo_phase 2)。** - -**注意:所有路径名请使用绝对路径。** - -**注意*:openEuler 23.09版本的内核暂不支持完整的PGO,请修改pgo_mode值为arc。** - -## 兼容性说明 - -此节主要列出当前一些特殊场景下的兼容性问题。本项目持续迭代中,会尽快进行修复,也欢迎广大开发者加入。 - -* openEuler 23.09版本的内核暂不支持完整的PGO,目前只支持arc模式。 diff --git a/archive/gcc/link_time_binary_library_inlining_optimization.md b/archive/gcc/link_time_binary_library_inlining_optimization.md deleted file mode 100644 index f1cc139..0000000 --- a/archive/gcc/link_time_binary_library_inlining_optimization.md +++ /dev/null @@ -1,56 +0,0 @@ -# 全场景链接时二进制库内联优化 - -本特性支持全场景链接时的二进制内联,通过多版本二进制的组合输出,及LTO插件形式的多版本符号解析,支持不同版本编译器的LTO的内联优化;并设计跨模块的编译选项分析和匹配,适配不同编译模块的融合,实现全场景的链接时优化。 - -## 选项 -fmulti-version-lib= - -### 说明 - -该选项为链接时选项,与`-flto`结合使用,用于LTO链接时指示传入的库为多版本的LTO格式,需要编译器切换旧版本的LTO形式读取 (目前支持openEuler 2403 SP1、openEuler 2409 编译的LTO格式),用于兼容不同LTO的静态库或目标文件进行融合链接及优化编译。 - -### 使用方式 - -在选项中加入,如传入多个文件名通过逗号隔开: - -~~~bash --flto -fmulti-version-lib=liba.a,libb.a -~~~ - -举例: - -~~~bash -# gcc for openEuler 24.09 -gcc -O2 -fPIC -flto -c fa.c -o fa.o -gcc-ar rcs liba.a fa.o - -# gcc for openEuler latest -gcc -O2 -fPIC -flto -fmulti-version-lib=liba.a main.c liba.a -o exe -~~~ - -## 选项 -finline-force= - -### 说明 - -该选项为链接时选项,与`-flto`结合使用,用于在LTO链接时,指示对传入的目标静态库或目标文件尝试进行内联,该选项将对目标文件中的函数尝试内联增强,增强以下内联扩展: - -- 架构选项的兼容,当调用函数和被调用函数使用的march/mcpu等信息不同时,尽可能将被调用函数的架构选项与调用函数的架构选项切换一致,并进行内联编译。 -- `inline`关键字,类似于被调用函数增加了`inline`关键字,指示在编译过程中能找到函数实体,就尽可能内联。 -- `always_inline`属性,类似于被调用函数增加了`__attribute__((always_inline))`属性。 - -### 使用方法 - -在选项中加入,如传入多个文件名通过逗号隔开: - -~~~bash --flto -finline-force=liba.a,libb.a -~~~ - -注:`-finline-force`,不加目标文件名形式,仅用于全局内联调试分析,不直接使用。 - -举例: - -~~~bash -gcc -O2 -fPIC -flto -c fa.c -o fa.o -gcc-ar rcs liba.a fa.o -gcc -O2 -fPIC -flto -finline -force=liba.a main.c liba.a -o exe -~~~ diff --git a/archive/gcc/overview.md b/archive/gcc/overview.md deleted file mode 100644 index 84a82e1..0000000 --- a/archive/gcc/overview.md +++ /dev/null @@ -1,3 +0,0 @@ -# GCC for openEuler用户指南 - -GCC for openEuler编译器基于开源GCC(GNU Compiler Collection,GNU编译器套装)开发。开源GCC是一种支持多种编程语言的跨平台开源编译器,采用GPLv3(GNU General Public License, version 3)协议,是Linux系统上目前应用最广泛的C/C++编译器,基本被认为是跨平台编译器的事实标准。而GCC for openEuler在继承了开源GCC能力的基础上,聚焦于C、C++、Fortran语言的优化,增强自动反馈优化、软硬件协同、内存优化、自动向量化等特性,并适配国产硬件平台,如鲲鹏、飞腾、龙芯等,充分释放国产硬件算力。 diff --git a/archive/gcc/pin_user_guide.md b/archive/gcc/pin_user_guide.md deleted file mode 100644 index b27d6a0..0000000 --- a/archive/gcc/pin_user_guide.md +++ /dev/null @@ -1,134 +0,0 @@ -# 安装与部署 - -## 软件要求 - -* 操作系统:openEuler 24.03 - -## 硬件要求 - -* x86_64架构 -* ARM架构 - -## 环境准备 - -* 安装openEuler系统,安装方法参考 《[安装指南](../../../server/installation_upgrade/installation/installation_on_servers.md)》。 - -### 安装依赖软件 - -#### 安装插件框架GCC客户端依赖软件 - -```shell -yum install -y grpc -yum install -y grpc-devel -yum install -y grpc-plugins -yum install -y protobuf-devel -yum install -y jsoncpp -yum install -y jsoncpp-devel -yum install -y gcc-plugin-devel -yum install -y llvm-mlir -yum install -y llvm-mlir-devel -yum install -y llvm-devel -``` - -#### 安装插件框架服务端依赖软件 - -```shell -yum install -y grpc -yum install -y grpc-devel -yum install -y grpc-plugins -yum install -y protobuf-devel -yum install -y jsoncpp -yum install -y jsoncpp-devel -yum install -y llvm-mlir -yum install -y llvm-mlir-devel -yum install -y llvm-devel -``` - -## 安装Pin - -### rpm构建 - -#### 构建插件框架GCC客户端 - -```shell -git clone https://gitee.com/src-openeuler/pin-gcc-client.git -cd pin-gcc-client -mkdir -p ~/rpmbuild/SOURCES -cp *.path pin-gcc-client.tar.gz ~/rpmbuild/SOURCES -rpmbuild -ba pin-gcc-client.spec -cd ~/rpmbuild/RPMS -rpm -ivh pin-gcc-client.rpm -``` - -#### 构建插件框架服务端 - -```shell -git clone https://gitee.com/src-openeuler/pin-server.git -cd pin-server -mkdir -p ~/rpmbuild/SOURCES -cp *.path pin-server.tar.gz ~/rpmbuild/SOURCES -rpmbuild -ba pin-server.spec -cd ~/rpmbuild/RPMS -rpm -ivh pin-server.rpm -``` - -### 编译构建 - -#### 构建插件框架GCC客户端 - -```shell -git clone https://gitee.com/openeuler/pin-gcc-client.git -cd pin-gcc-client -mkdir build -cd build -cmake ../ -DMLIR_DIR=${MLIR_PATH} -DLLVM_DIR=${LLVM_PATH} -make -``` - -#### 构建插件框架服务端 - -```shell -git clone https://gitee.com/openeuler/pin-server.git -cd pin-server -mkdir build -cd build -cmake ../ -DMLIR_DIR=${MLIR_PATH} -DLLVM_DIR=${LLVM_PATH} -make -``` - -## 使用方法 - -用户可以通过`-fplugin`和`-fplugin-arg-libpin_xxx`使能插件工具。 -命令如下: - -```shell -$(TARGET): $(OBJS) - $(CXX) -fplugin=${CLIENT_PATH}/build/libpin_gcc_client.so \ - -fplugin-arg-libpin_gcc_client-server_path=${SERVER_PATH}/build/pin_server \ - -fplugin-arg-libpin_gcc_client-log_level="1" \ - -fplugin-arg-libpin_gcc_client-arg1="xxx" -``` - -为了方便用户使用,可以通过`${INSTALL_PATH}/bin/pin-gcc-client.json`文件,进行插件配置。配置选项如下: - -`path` : 配置插件框架服务端可执行文件路径 - -`sha256file` : 配置插件工具的校验文件`xxx.sha256`路径 - -`timeout` : 配置跨进程通信超时时间,单位`ms` - -编译选项: - -`-fplugin`:指定插件客户端.so所在路径 - -`-fplugin-arg-libpin_gcc_client-server_path`:指定插件服务端可执行程序所在路径 - -`-fplugin-arg-libpin_gcc_client-log_level`:指定日志系统默认记录等级,取值`0~3`。默认为`1` - -`-fplugin-arg-libpin_gcc_client-argN`:用户可以根据插件工具要求,指定其他参数。argN代指插件工具要求的参数字段。 - -## 兼容性说明 - -此节主要列出当前一些特殊场景下的兼容性问题。本项目持续迭代中,会尽快进行修复,也欢迎广大开发者加入。 - -* 插件框架在`-flto`阶段使能时,不支持使用`make -j`多进程编译。建议改用`make -j1`进行编译。 -- Gitee From 0423192d705c76c818da0b78dc171a11805f83ae Mon Sep 17 00:00:00 2001 From: hemiao Date: Tue, 15 Jul 2025 16:39:03 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8B=BC=E5=86=99?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/zh/server/memory_storage/etmem/etmem_user_guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/server/memory_storage/etmem/etmem_user_guide.md b/docs/zh/server/memory_storage/etmem/etmem_user_guide.md index 11f7699..8c9316a 100644 --- a/docs/zh/server/memory_storage/etmem/etmem_user_guide.md +++ b/docs/zh/server/memory_storage/etmem/etmem_user_guide.md @@ -170,7 +170,7 @@ task_private_key=task_private_value | swapcache_low_wmark| slide engine的配置项,swacache可以占用系统内存的比例,低水线 | 否 | 是 | [1~swapcache_high_wmark) | swapcache_low_wmark=3 //触发swapcache回收后,系统会将swapcache内存占用量回收到低于3%| | [engine] | engine公用配置段起始标识 | 否 | 否 | NA | engine参数的开头标识,表示下面的参数直到另外的[xxx]或文件结尾为止的范围内均为engine section的参数 | | project | 声明所在的project | 是 | 是 | 64个字以内的字符串 | 已经存在名字为test的project,则可以写为project=test | -| engine | 声明所在的engine | 是 | 是 | slide/cslide/thridparty | 声明使用的是slide或cslide或thirdparty策略 | +| engine | 声明所在的engine | 是 | 是 | slide/cslide/thirdparty | 声明使用的是slide或cslide或thirdparty策略 | | node_pair | cslide engine的配置项,声明系统中AEP和DRAM的node pair | engine为cslide时必须配置 | 是 | 成对配置AEP和DRAM的node号,AEP和DRAM之间用逗号隔开,没对pair之间用分号隔开 | node_pair=2,0;3,1 | | hot_threshold | cslide engine的配置项,声明内存冷热水线的阈值 | engine为cslide时必须配置 | 是 | 大于等于0,小于等于INT_MAX的整数 | hot_threshold=3 //访问次数小于3的内存会被识别为冷内存 | |node_mig_quota|cslide engine的配置项,流控,声明每次DRAM和AEP互相迁移时单向最大流量|engine为cslide时必须配置|是|大于等于0,小于等于INT_MAX的整数|node_mig_quota=1024 //单位为MB,AEP到DRAM或DRAM到AEP搬迁一次最大1024M| -- Gitee