找回密码
 新注册用户
搜索
查看: 1928|回复: 12

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

[复制链接]
发表于 2022-5-20 00:46:37 | 显示全部楼层 |阅读模式
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 不等




评分

参与人数 2基本分 +69 收起 理由
PKUSKP + 3 很给力!
zhouxiaobo + 66 很给力!

查看全部评分

回复

使用道具 举报

发表于 2022-5-20 09:46:35 | 显示全部楼层
请教大佬,为啥自己编译的会提高运行效率呀,是因为开启了 O3 级别优化吗
回复

使用道具 举报

发表于 2022-5-20 12:39:09 | 显示全部楼层
E5 cpu跑这个项目需要时间将近10个小时。大佬的教程能详细点吗?
回复

使用道具 举报

 楼主| 发表于 2022-5-20 14:41:09 | 显示全部楼层
根据自己的硬件环境调整编译参数,或者用其他 ICC AOCC 之类的编译器编译符合自己环境的最优版本,这样效率就会高很多,当然在 Linux 之下也可以先编译适配自己的内核
需要去了解一些编译知识,也要明确自己 CPU 的型号,微码,总之要明确很多编译参数和资料
回复

使用道具 举报

发表于 2022-5-22 11:50:01 | 显示全部楼层
太折腾菜鸡表示能在linux跑就很不错了
回复

使用道具 举报

发表于 2022-5-23 10:46:49 | 显示全部楼层
超出能力范围,还是默认参数跑吧
回复

使用道具 举报

发表于 2022-5-25 13:12:12 | 显示全部楼层
还好,根据我的经验,编译内核只需要开启针对Intel或AMD的特定优化,就可以把数据库测试(sysbench TPCC)的分数提升一截,大概是10~15%。
但是我没试过纯计算型的应用能提升多少。
回复

使用道具 举报

发表于 2022-5-26 05:33:34 | 显示全部楼层
是不是实际上-march=native就可以了
回复

使用道具 举报

发表于 2022-5-29 01:34:48 | 显示全部楼层
cmpute 发表于 2022-5-26 05:33
是不是实际上-march=native就可以了

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

使用道具 举报

发表于 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
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 新注册用户

本版积分规则

论坛官方淘宝店开业啦~
欢迎大家多多支持基金会~

Archiver|手机版|小黑屋|中国分布式计算总站 ( 沪ICP备05042587号 )

GMT+8, 2024-3-29 01:32

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表