saco 发表于 2022-5-20 00:46:37

编译自己的 SiDock 计算程序优化加速计算过程

SiDock 开源了 cmdock 这个实际上的计算程序,当然也可能会陆续开源其他的,我这里简单介绍下怎么编译适合自己平台的计算程序,来加速计算过程

以下以 Intel 12 代 Alder Lake 和 GCC 为例,操作系统为 Arch Linux :

1:下载 cmdock 源码

mkdir /download-dir
cd /download-dir
git clone https://gitlab.com/Jukic/cmdock.git

2:安装编译环境(如有缺失的包请自己再安装一下)

pacman -S gcc pkg-config cmake ninja python-pip
pip3 install --user meson

3:编译

mkdir /cmdock

cd
// 以 O3 和 -march=alderlake 进行指定CPU架构的编译,此处如果为 AMD RYZEN 5950X 可以设置为 -march=znver3,如果为 AMD RYZEN 3950X 可以设置为 -march=znver2
CFLAGS="-O3 -march=alderlake" CXXFLAGS="-O3 -march=alderlake" /root/.local/bin/meson setup /cmdock --buildtype release
CFLAGS="-O3 -march=alderlake" CXXFLAGS="-O3 -march=alderlake" /root/.local/bin/meson compile -C /cmdock

4:替换原有的计算程序

我的测试经过特定编译优化后的计算程序可以加速百分之 13~27 不等




0xCAFEBABE 发表于 2022-5-20 09:46:35

请教大佬,为啥自己编译的会提高运行效率呀,是因为开启了 O3 级别优化吗

flybike007. 发表于 2022-5-20 12:39:09

E5 cpu跑这个项目需要时间将近10个小时。大佬的教程能详细点吗?

saco 发表于 2022-5-20 14:41:09

根据自己的硬件环境调整编译参数,或者用其他 ICC AOCC 之类的编译器编译符合自己环境的最优版本,这样效率就会高很多,当然在 Linux 之下也可以先编译适配自己的内核
需要去了解一些编译知识,也要明确自己 CPU 的型号,微码,总之要明确很多编译参数和资料

mikutiger 发表于 2022-5-22 11:50:01

太折腾菜鸡表示能在linux跑就很不错了

flybike007. 发表于 2022-5-23 10:46:49

超出能力范围,还是默认参数跑吧

kppom 发表于 2022-5-25 13:12:12

还好,根据我的经验,编译内核只需要开启针对Intel或AMD的特定优化,就可以把数据库测试(sysbench TPCC)的分数提升一截,大概是10~15%。
但是我没试过纯计算型的应用能提升多少。

cmpute 发表于 2022-5-26 05:33:34

是不是实际上-march=native就可以了

zichen 发表于 2022-5-29 01:34:48

cmpute 发表于 2022-5-26 05:33
是不是实际上-march=native就可以了

同问,我也觉得=native是不是就OK了。

kppom 发表于 2022-6-9 10:32:34

跟一个Ubuntu 22.04+的编译,方便的地方在于不用额外走pip安装meson。
另外meson也可以多线程加速编译。
apt install git pkg-config cmake meson
如果应用在较低版本的Ubuntu,比如20.04,需要再次对meson升级,否则低版本meson不能正确识别compile子命令下的参数
sudo -H pip3 install --target=/usr/bin --upgrade meson

git clone https://gitlab.com/Jukic/cmdock.git
cd cmdock
mkdir build
CFLAGS="-O3 -march=tigerlake" CXXFLAGS="-O3 -march=tigerlake" meson setup build/ --buildtype release
CFLAGS="-O3 -march=tigerlake" CXXFLAGS="-O3 -march=tigerlake" meson compile -C build/ -j 6
页: [1]
查看完整版本: 编译自己的 SiDock 计算程序优化加速计算过程

论坛官方淘宝店开业啦~