diff --git a/docs/zh/server/development/gcc/_toc.yaml b/docs/zh/server/development/gcc/_toc.yaml index bbf7aaddbf76fa2b8f30616f96773f2edc4449cb..e24c9582aa2d59e5631c7cccae7dbcc1310dc177 100644 --- a/docs/zh/server/development/gcc/_toc.yaml +++ b/docs/zh/server/development/gcc/_toc.yaml @@ -7,4 +7,9 @@ sections: - label: 全场景链接时二进制库内联优化 href: ./link_time_binary_library_inlining_optimization.md - label: GCC插件框架特性用户指南 - href: ./pin_user_guide.md \ No newline at end of file + href: ./pin_user_guide.md + - label: GCC基础性能优化特性用户指南 + href: ./gcc_optmization_user_guide.md + - label: CFGO静态反馈优化特性用户指南 + href: ./gcc_pgo_user_guide.md + \ No newline at end of file diff --git a/docs/zh/server/development/gcc/gcc_optmization_user_guide.md b/docs/zh/server/development/gcc/gcc_optmization_user_guide.md new file mode 100644 index 0000000000000000000000000000000000000000..ad391d7b2c0189b7416f0bac0348213cf18fa591 --- /dev/null +++ b/docs/zh/server/development/gcc/gcc_optmization_user_guide.md @@ -0,0 +1,217 @@ +# GCC 基础性能优化用户指南 + +## 简介 + +编译器基础性能优化对于提高应用程序的开发效率、运行性能和可维护性都非常重要。它是计算机科学领域的一个重要研究方向,也是软件开发过程中的重要环节之一。GCC for openEuler 在通用编译优化能力的基础上,对中后端性能优化技术进行了增强,包括指令优化、向量化增强、预取增强、数据流分析增强等优化。 + +## 安装与部署 + +### 软件要求 + +操作系统:openEuler-24.03-LTS-SP1 + +### 硬件要求 + +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`开启的基础上才使能。 + +### -fif-split + +#### 说明 + +该选项通过拆分包含复杂条件的 if 语句块,增强程序间常量传播的能力。 + +#### 使用方法 + +在选项中加入`-O3 -fif-split`即可。 + +注:`-fif-split`选项,需要在`-O3`开启的基础上才使能。 + +### -ftree-slp-late + +#### 说明 + +该选项进行额外的 SLP 矢量化,增加检查从而覆盖更多向量化场景,增强优化效果。 + +#### 使用方法 + +通过选项`-ftree-slp-late`使能优化,使用参数`--param=vect-swap-operands=1`,`--param=addr-expand-for-alias-check=1`,`--param=vect-register-size-check=1`启用对应检查。 + +### -ftracer-static + +#### 说明 + +该选项通过减少条件跳转和加载的次数。 + +#### 使用方法 + +通过选项`-ftracer-static`使能优化,使用参数`--param=tracer-min-not-covered-insns-num=[0,2^31-1]`控制执行优化的最小指令数,默认0,使用参数`--param=tracer-max-not-covered-insns-num=[0,2^31-1]`控制执行优化的最大指令数,默认12。 diff --git a/docs/zh/server/development/gcc/gcc_pgo_user_guide.md b/docs/zh/server/development/gcc/gcc_pgo_user_guide.md new file mode 100644 index 0000000000000000000000000000000000000000..29dc87589c7963e8771d9424d9c3aa1df3306ddb --- /dev/null +++ b/docs/zh/server/development/gcc/gcc_pgo_user_guide.md @@ -0,0 +1,111 @@ +# GCC 静态反馈优化特性用户指南 + +## 简介 + +反馈编译优化,通常被称为`Profile-Guided Optimization(PGO)`,是一种编译技术,它通过收集程序执行期间的运行时`(runtime)`信息来优化程序性能。 + +`CFGO(Continuous Feature Guided Optimization)`是`GCC for openEuler`和`毕昇编译器`的反馈优化品牌,指多模态(源代码、二进制)、全生命周期(编译、链接、链接后、运行时、OS、库)的持续反馈优化。 + +主要优化点: + +* 代码布局优化:通过基本块重排、函数重排、冷热分区等技术,优化目标程序的二进制布局,提升i-cache和i-TLB命中率。 +* 高级编译器优化:内联、循环展开、向量化、间接调用等提升编译优化技术受益于反馈信息,能够使编译器执行更精确的优化决策。 + +本文档主要介绍CFGO中静态反馈优化相关技术。 + +## 安装与部署 + +### 软件要求 + +* 操作系统:openEuler 24.03 LTS SP1 +* 编译器:GCC-12.3.1-47及以上版本 + +## 使用方法 + +CFGO静态反馈优化典型优化流程共包含三种优化技术`CFGO-PGO`、`CFGO-CSPGO`和`CFGO-BOLT`。`CFGO-PGO`优化主要用于启用inline、常量传播、去虚化等优化,`CFGO-CSPGO`用于在`CFGO-PGO`的基础上利用更新后的profile执行基本块重排、寄存器分配等优化,`CFGO-BOLT`用于post-link的二进制代码布局优化。 + +为了进一步提升优化效果,建议CFGO系列优化与链接时优化搭配使用,即在`CFGO-PGO`、`CFGO-CSPGO`优化过程中增加`-flto=auto`编译选项。 + +若要获取最佳优化效果,使用时可按照`CFGO-PGO`->`CFGO-CSPGO`->`CFGO-BOLT`顺序依次执行。 + +### 1. `CFGO-PGO`特性 + +特性介绍:在开源PGO的基础上,利用`AI4C`对部分优化选项和参数进行调优,进一步提升性能。 + +选项:`-fcfgo-profile-generate=${path}` + +说明:启用编译插桩功能用于生成插桩可执行程序。如果指定`${path}`,程序的执行信息文件将写入该路径,否则将生成至当前路径。 + +选项:`-fcfgo-profile-use=${path}` + +说明:利用程序的执行信息执行编译优化。如果指定`${path}`,程序的执行信息文件将从该路径读取,否则从当前路径读取。 + +典型使用流程: + +```shell +// 1. 编译插桩 +gcc -fcfgo-profile-generate=${path} test.c -o test + +// 2. profiling +./test + +// 3. 使用profile +gcc -fcfgo-profile-use=${path} test.c -o test +``` + +### 2. `CFGO-CSPGO`特性 + +特性介绍:PGO的profile对上下文不敏感,可能导致次优的优化效果。通过在PGO后增加一次`CFGO-CSPGO`插桩优化流程,从而收集inline后的程序运行信息,为重排和寄存器优化提供更准确的执行信息,最终进一步提升性能。 + +选项:`-fcfgo-csprofile-generate=${path}` + +说明:启用post-inline的编译插桩功能,必须和`-fcfgo-profile-use`共同使用。必须指定`${path}`,且路径不能与`CFGO-PGO`阶段的路径相同。 + +选项:`-fcfgo-csprofile-use=${path}` + +说明:利用post-inline的profile优化程序,必须和`-fcfgo-profile-use`共同使用。必须指定`${path}`,路径与`-fcfgo-csprofile-generate=${path}`的路径相同。 + +典型使用流程: + +```shell +// 1. 编译插桩 +gcc -fcfgo-profile-use={path_1} -fcfgo-csprofile-generate=${path_2} test.c -o test + +// 2. profiling +./test + +// 3. 使用profile +gcc -fcfgo-profile-use={path_1} -fcfgo-csprofile-use=${path_2} test.c -o test +``` + +### 3. `CFGO-BOLT`特性 + +特性介绍:BOLT是链接后二进制代码布局优化器,本特性回合高版本的二进制插桩能力,从而收集相比采样更准确的运行信息指导二进制优化代码布局来提升性能。 + +选项:`-instrument` + +说明:启用软件插桩功能收集程序运行时信息,依赖二进制中包含重定位信息(如编译时增加`-Wl,-q`)。 + +除了该选项外,BOLT插桩功能还包含一些其他选项,具体可参考`llvm-bolt --help`中的`BOLT instrumentation options`章节。 + +典型使用流程: + +```shell +// 1. 编译程序时保留重定位信息 +gcc -Wl,-q test.c -o test + +// 2. 编译BOLT插桩 +llvm-bolt ./test -instrument -o test.inst -instrumentation-file=${test.fdata} --instrumentation-wait-forks --instrumentation-sleep-time=2 --instrumentation-no-counters-clear + +// 3. profiling +./test.inst + +// 4. 使用profile +llvm-bolt ./test -o test.opt -data=test.fdata +``` + +## 兼容性说明 + +此节主要列出当前一些特殊场景下的兼容性问题。本项目持续迭代中,会尽快进行修复,也欢迎广大开发者加入。 + +* `CFGO-CSPGO`暂当前不支持对动态库优化。 diff --git a/docs/zh/server/installation_upgrade/installation/installation_guide.md b/docs/zh/server/installation_upgrade/installation/installation_guide.md index fb0243ad0c7d1cd02579a1f67c9ace1feb5566c0..2eac7fe97302a88f9d43b1a5f576d6f856b91c5a 100644 --- a/docs/zh/server/installation_upgrade/installation/installation_guide.md +++ b/docs/zh/server/installation_upgrade/installation/installation_guide.md @@ -163,7 +163,7 @@ nfs服务器需要用户自己搭建,将iso镜像进行挂载,挂载出的文件拷贝到nfs的共享目录中。其中x86_64为CPU架构,可根据实际情况使用镜像。 -安装过程中,如果“设置安装源”有疑问,可参考“[选择安装源出现异常](./常见问题及解决方法.html#选择安装源出现异常)”。 +安装过程中,如果“设置安装源”有疑问,可参考“[选择安装源出现异常](https://docs.openeuler.openatom.cn/zh/docs/common/faq/server/installation_faq1.html#%E9%97%AE%E9%A2%984-%E9%80%89%E6%8B%A9%E5%AE%89%E8%A3%85%E6%BA%90%E5%87%BA%E7%8E%B0%E5%BC%82%E5%B8%B8)”。 设置完成后,请单击左上角“完成”返回“安装概览”页面。 @@ -217,13 +217,13 @@ | 逻辑分区 | /var/log/audit | 2G | 存放系统审计日志数据。 | | 逻辑分区 | /usr| 5G | 存放可共享和只读的应用程序。 | | 逻辑分区 | /var/tmp | 5G | 存放系统重启过程中可以保留的临时文件。 | -| 逻辑分区 | /opt | 剩余磁盘空间大小。 | 用于安装应用软件。 | +| 逻辑分区 | /opt | 剩余磁盘空间大小 | 用于安装应用软件。 | -**自动**分区 +**自动分区** 如果是在未使用过的存储设备中执行全新安装,或者不需要保留该存储设备中任何数据,建议选择“自动”进行自动分区。设置完成后,请单击“完成”返回“安装概览”页面。 -**自定义**分区 +**自定义分区** 若用户需进行手动分区,选择“自定义”按钮,并单击左上角“完成”,出现手动分区界面。 @@ -262,17 +262,17 @@ 设置完成后,请单击左上角“完成”返回“安装概览”页面。 -## 设置Root帐户 +## 设置Root账户 -在“安装概览”页面中选择“Root帐户”,弹出设置“Root帐户”界面,如[图16](#zh-cn_topic_0186390266_zh-cn_topic_0122145909_fig1323165793018)所示,根据[密码复杂度](#密码复杂度)输入密码并再次输入密码进行确认。 +在“安装概览”页面中选择“Root账户”,弹出设置“Root账户”界面,如[图16](#zh-cn_topic_0186390266_zh-cn_topic_0122145909_fig1323165793018)所示,根据[密码复杂度](#密码复杂度)输入密码并再次输入密码进行确认。 >![](./public_sys-resources/icon-note.gif) **说明:** > ->- Root帐户是用来执行关键系统管理任务,不建议您在日常工作及系统访问时使用Root帐户。 +>- Root账户是用来执行关键系统管理任务,不建议您在日常工作及系统访问时使用Root账户。 > ->- 在“Root帐户”界面若选择“禁用Root帐户”则Root帐户将禁用。 +>- 在“Root账户”界面若选择“禁用Root账户”则Root账户将禁用。 -**图 16** Root帐户 +**图 16** Root账户 ![](./figures/root_password.png) @@ -282,7 +282,7 @@ 1. 口令长度至少8个字符。 2. 口令至少包含大写字母、小写字母、数字和特殊字符中的任意3种。 -3. 口令不能和帐号一样。 +3. 口令不能和账号一样。 4. 口令不能使用字典词汇。 >![](./public_sys-resources/icon-note.gif) **说明:** diff --git a/docs/zh/server/installation_upgrade/installation/installation_modes.md b/docs/zh/server/installation_upgrade/installation/installation_modes.md index 61395e6db5648a7eb69d29b8b9d1f8ef89cdf24a..7da9957f1dd740392aca39e05626a0c732c3e78c 100644 --- a/docs/zh/server/installation_upgrade/installation/installation_modes.md +++ b/docs/zh/server/installation_upgrade/installation/installation_modes.md @@ -37,7 +37,7 @@ 1. 将USB盘连接到该系统中,并执行 dmesg 命令查看相关的日志信息。在该日志的最后可以看到刚刚连接的USB盘所生成的一组信息,应类似如下: - ``` + ```text [ 170.171135] sd 5:0:0:0: [sdb] Attached SCSI removable disk ``` @@ -46,13 +46,13 @@ 2. 切换为root用户。使用su命令,需要输入相应的密码。 - ``` + ```bash su - root ``` 3. 确保USB盘没有被挂载。使用如下命令进行查询: - ``` + ```bash # findmnt /dev/sdb ``` @@ -60,7 +60,7 @@ - 如果输出以下信息,表明USB盘已经自动挂载。 - ``` + ```bash # findmnt /dev/sdb TARGET SOURCE FSTYPE OPTIONS /mnt/iso /dev/sdb iso9660 ro,relatime @@ -68,25 +68,26 @@ 此时,您需要使用umount命令卸载该设备。 - ``` + ```bash # umount /mnt/iso ``` 4. 使用dd命令将ISO安装镜像直接写入USB盘: - ``` + ```bash # dd if=/path/to/image.iso of=/dev/device bs=blocksize ``` -使用您下载的ISO镜像文件的完整路径替换 /path/to/image.iso,使用之前由 dmesg 命令给出的设备名称替换device,同时设置合理的块大小(例如:512k)替换 blocksize,这样可以加快写入进度。 + 使用您下载的ISO镜像文件的完整路径替换 /path/to/image.iso,使用之前由 dmesg 命令给出的设备名称替换device,同时设置合理的块大小(例如:512k)替换 blocksize,这样可以加快写入进度。 -例如:如果该ISO镜像文件位于 /home/testuser/Downloads/openEuler-{version}-aarch64-dvd.iso,同时探测到的设备名称为sdb,则该命令如下: + 例如:如果该ISO镜像文件位于 /home/testuser/Downloads/openEuler-{version}-aarch64-dvd.iso,同时探测到的设备名称为sdb,则该命令如下: - ``` + ```bash # dd if=/home/testuser/Downloads/openEuler-{version}-aarch64-dvd.iso of=/dev/sdb bs=512k ``` ->![](./public_sys-resources/icon-note.gif) **说明:** ->如isolinux描述,由mkisofs命令创建的ISO 9660 文件系统会通过BIOS固件启动,但只能从CD、DVD和BD等介质启动。所以在使用dd命令制作x86的启动U盘前需要使用 isohybrid -u your.iso 对iso进行处理,然后正常使用dd命令将iso写入u盘即可(该问题仅影响x86)。 + + >![](./public_sys-resources/icon-note.gif) **说明:** + >如isolinux描述,由mkisofs命令创建的ISO 9660 文件系统会通过BIOS固件启动,但只能从CD、DVD和BD等介质启动。所以在使用dd命令制作x86的启动U盘前需要使用 isohybrid -u your.iso 对iso进行处理,然后正常使用dd命令将iso写入u盘即可(该问题仅影响x86)。 5. 等待镜像写入完成,拔掉USB盘。 @@ -129,13 +130,13 @@ 1. 安装qemu-img软件包。 - ``` + ```bash # dnf install -y qemu-img ``` 2. 使用qemu-img工具的create命令,创建镜像文件,命令格式为: - ``` + ```bash qemu-img create -f -o ``` @@ -146,9 +147,9 @@ - _fileName_ :文件名称。 - _diskSize_ :磁盘大小,用于指定块磁盘设备的大小,支持的单位有K、M、G、T,分别代表KiB、MiB、GiB、TiB。 - 例如,创建一个磁盘设备大小为32GB、格式为qcow2的镜像文件openEuler-imge.qcow2,命令和回显如下: + 例如,创建一个磁盘设备大小为32GB、格式为qcow2的镜像文件openEuler-image.qcow2,命令和回显如下: - ``` + ```bash $ qemu-img create -f qcow2 openEuler-image.qcow2 32G Formatting 'openEuler-image.qcow2', fmt=qcow2 size=34359738368 cluster_size=65536 lazy_refcounts=off refcount_bits=16 ``` diff --git a/docs/zh/server/quickstart/quickstart/quick_start.md b/docs/zh/server/quickstart/quickstart/quick_start.md index 36febca0412104b4e833f4eda7eaed6a4b662c83..b54e37d37632c858f8d94027e847af883bfb2666 100644 --- a/docs/zh/server/quickstart/quickstart/quick_start.md +++ b/docs/zh/server/quickstart/quickstart/quick_start.md @@ -215,8 +215,8 @@ > ![](./public_sys-resources/icon-note.gif) **说明:** > - > - root帐户是用来执行关键系统管理任务,不建议您在日常工作及系统访问时使用root帐户。 - > - 在“ROOT密码”界面若选择“锁定root帐户”则root帐户将禁用。 + > - root账户是用来执行关键系统管理任务,不建议您在日常工作及系统访问时使用root账户。 + > - 在“ROOT密码”界面,若选择“锁定root账户”,则root账户将禁用。 > **密码复杂度** @@ -225,7 +225,7 @@ 1. 口令长度至少8个字符。 2. 口令至少包含大写字母、小写字母、数字和特殊字符中的任意3种。 - 3. 口令不能和帐号一样。 + 3. 口令不能和账号一样。 4. 口令不能使用字典词汇。 > ![](./public_sys-resources/icon-note.gif) **说明:** diff --git a/docs/zh/server/releasenotes/releasenotes/account_list.md b/docs/zh/server/releasenotes/releasenotes/account_list.md index 594e43206644bc6da9625321958e802ed6e9d1c0..fbfa682fc7d8e03fd17f5f025e37c91cb1becdee 100644 --- a/docs/zh/server/releasenotes/releasenotes/account_list.md +++ b/docs/zh/server/releasenotes/releasenotes/account_list.md @@ -3,4 +3,4 @@ | 用户名 | 默认密码 | 用户用途 | 用户状态 | 登录方式 | 备注 | |--- |--- | --- | --- |--- |--- | | root | openEuler12#$| 虚拟机镜像默认用户 | 启用 | 远程登录 | 登录使用openEuler虚拟机镜像安装的虚拟机 | -| root | openEuler#12 | 登录GRUB2 | 启用 | 本地登录、远程登录 | GRUB (GRand UnifiedBootloader) 是操作系统启动管理器,用来引导不同系统(如Windows、Linux)。
GRUB2是GRUB的升级版。系统启动时,可以通过GRUB2界面修改启动参数。为了确保系统的启动参数不被任意修改,需要对GRUB2界面进行加密,仅在输入正确的GRUB2口令时才能修改。 | +| root | openEuler#12 | 登录GRUB2 | 启用 | 本地登录、远程登录 | GRUB (GRand Unified Bootloader) 是操作系统启动管理器,用来引导不同系统(如Windows、Linux)。
GRUB2是GRUB的升级版。系统启动时,可以通过GRUB2界面修改启动参数。为了确保系统的启动参数不被任意修改,需要对GRUB2界面进行加密,仅在输入正确的GRUB2口令时才能修改。 | diff --git a/docs/zh/server/releasenotes/releasenotes/key_features.md b/docs/zh/server/releasenotes/releasenotes/key_features.md index 1b25c6dc4cb5b31f965c70485ce3910063671efc..b44081527513f5a70c4499d5f669ac0140cc9e69 100644 --- a/docs/zh/server/releasenotes/releasenotes/key_features.md +++ b/docs/zh/server/releasenotes/releasenotes/key_features.md @@ -47,12 +47,12 @@ openEuler Embedded围绕以制造、机器人为代表的OT领域持续深耕, ## DevStation 开发者工作站支持 -openEuler首个面向开发者的开发者工作站Devstation正式发布,预装VSCODE,Devstation将打通部署,编码,编译,构建,发布全流程,开发者可以方便的使用oeDeploy完成AI软件栈,云原生软件栈部署,使用oeDevPlugin插件进行一键拉取代码仓,一键使用AI4C编译器编译,一键调用EulerMaker,轻松使用Devstation版本进行软件开发;同时Devstation将会集成openEuler新型包管理体系EPKG,可以进行多环境,多版本安装,方便开发者在不同版本之间进行切换。 +openEuler首个面向开发者的开发者工作站DevStation正式发布,预装VSCODE,DevStation将打通部署,编码,编译,构建,发布全流程,开发者可以方便的使用oeDeploy完成AI软件栈,云原生软件栈部署,使用oeDevPlugin插件进行一键拉取代码仓,一键使用AI4C编译器编译,一键调用EulerMaker,轻松使用DevStation版本进行软件开发;同时DevStation将会集成openEuler新型包管理体系EPKG,可以进行多环境,多版本安装,方便开发者在不同版本之间进行切换。 - **开发者友好的集成环境**:发行版预装了广泛的开发工具和 IDE,如 VS Code系列等。支持多种编程语言,满足从前端、后端到全栈开发的需求。 - **软件包管理与自动部署**:提供简单便捷的软件包管理工具,支持通过一键安装和更新多种开发环境。同时,内置 Docker、Isula 等容器技术,方便开发者进行应用容器化与自动化部署,提供新型包管理体系EPKG,支持多版本部署,大大降低开发者在安装不同开发工具时的使用门槛。 - **图形化编程环境**:集成了图形化编程工具,降低了新手的编程门槛,同时也为高级开发者提供了可视化编程的强大功能。 -- **AI开发支持**:针对 AI 领域的开发者,预装了 TensorFlow、PyTorch 等机器学习框架,同时优化了硬件加速器(如 GPU、NPU)的支持,提供完整的 AI 模型开发与训练环境。同时,openEuler Devstation集成了openEuler Copilot System,提供AI助手服务,帮助用户解决大部分操作系统使用问题。 +- **AI开发支持**:针对 AI 领域的开发者,预装了 TensorFlow、PyTorch 等机器学习框架,同时优化了硬件加速器(如 GPU、NPU)的支持,提供完整的 AI 模型开发与训练环境。同时,openEuler DevStation集成了openEuler Copilot System,提供AI助手服务,帮助用户解决大部分操作系统使用问题。 - **调试与测试工具**:内置 GDB、CUnit、gtest、perf等调试工具和测试、调优工具,帮助开发者快速调试和自动化测试,提升开发效率。 - **版本控制和协作**:集成 Git、SVN 等版本控制工具,并支持多种远程协作工具,如 Slack、Mattermost 和 GitLab,使得团队开发和远程协作更加顺畅。 - **安全与合规检查**:提供安全扫描和代码合规性检查工具,帮助开发者在开发阶段就能发现并修复潜在的安全漏洞和代码问题。 @@ -306,8 +306,8 @@ virtCCA机密虚机特性基于鲲鹏920系列S-EL2能力,在TEE侧实现机 1. 设备直通: - 设备直通是基于华为鲲鹏920新型号通过预埋在PCIE Root Complex里的PCIE保护组件,在PCIE总线上增加选通器,对CPU与外设间的通信进行选通,即对SMMU的Outbound Traffic和Inbound Traffic的控制流和数据流进行控制,以此保证整体数据链路的安全性。 - 基于virtCCA PCIPC的设备直通能力,实现对PCIE设备的安全隔离和性能提升,存在以下优势: + 设备直通是基于华为鲲鹏920新型号通过预埋在PCIe Root Complex里的PCIe保护组件,在PCIe总线上增加选通器,对CPU与外设间的通信进行选通,即对SMMU的Outbound Traffic和Inbound Traffic的控制流和数据流进行控制,以此保证整体数据链路的安全性。 + 基于virtCCA PCIPC的设备直通能力,实现对PCIe设备的安全隔离和性能提升,存在以下优势: (1)安全隔离 TEE侧控制设备的访问权限,Host侧软件无法访问TEE侧设备; (2)高性能 @@ -375,7 +375,7 @@ openHiTLS旨在通过提供轻量化、可裁剪的软件技术架构及丰富 ## AI集群慢节点快速发现 Add Fail-slow Detection AI集群在训练过程中不可避免会发生性能劣化,导致性能劣化的原因很多且复杂。现有方案是在发生性能劣化之后利用日志分析,但是从日志收集到问题定界根因诊断以及现网闭环问题需要长达3-4天之久。基于上述痛点问题,我们设计了一套在线慢节点定界方案,该方案能够实时在线观测系统关键指标,并基于模型和数据驱动的算法对观测数据进行实时分析给出劣慢节点的位置,便于系统自愈或者运维人员修复问题。 -基于分组的指标对比技术提供了AI集群训练场景下的的慢节点/慢卡检测能力。这项技术通过 gala-anteater实现,新增内容包括配置文件、算法库、慢节点空间维度对比算法和慢节点时间维度对比,最终输出慢节点异常时间、异常指标以及对应的慢节点/慢卡ip, 从而提高系统的稳定性和可靠性。该服务主要功能如下: +基于分组的指标对比技术提供了AI集群训练场景下的慢节点/慢卡检测能力。这项技术通过 gala-anteater实现,新增内容包括配置文件、算法库、慢节点空间维度对比算法和慢节点时间维度对比,最终输出慢节点异常时间、异常指标以及对应的慢节点/慢卡ip, 从而提高系统的稳定性和可靠性。该服务主要功能如下: - 配置文件:主要包括待观测指标类型、指标算法配置参数以及数据接口,用于初始化慢节点检测算法。 - 算法库:包括常用的时序异常检测算法spot算法,k-sigma算法,异常节点聚类算法和相似度度量算法。