1
zeroDev 2019-09-21 08:15:31 +08:00 via Android
502 的确出问题了
不过我看这系统跑分比其他第二名 Ubuntu (好像是的)多了快一倍 |
3
msg7086 2019-09-21 08:46:27 +08:00 via Android
源代码上对相应指令集做优化是指?
|
4
geekvcn OP @msg7086 打个比方,一个游戏服务器,需要通过虚拟地图控制 AI 的碰撞和路径,防止出现钻地,飞天,穿墙的情况,这就需要大量的浮点运算,在代码中把响应组件中对应计算添加 AVX512 的支持,性能就会指数级提升,类似指令集还有很多
|
5
geekvcn OP @msg7086 我原来打算给个人服务器直接装 Clear Linux,然后通过 LXC 部署软件,试试水,结果官网都打不开,希望只是他们 web 服务代码有问题吧
|
8
msg7086 2019-09-21 09:13:24 +08:00
@geekvcn 关于 SIMD 优化的技术我倒是一直想找人探讨一下,可惜很少看到讨论的帖子。
我之前在做一个视频滤镜的 SIMD 优化工作。有一块代码是数组里存的下标,然后用下标从另一个数组里找值,再存进寄存器里做后续的操作。当时我手动写完的汇编代码跑出来的速度远远比交给编译器优化的慢。我是百思不得其解,前后大概花了十几个小时进去研究为什么编译器跑出来的结果会比我的快。后来我发现之前写的代码,把数据存进数组然后做 _mm_load_si128,如果让编译器来优化的话,会直接重写成 _mm_insert_pi16,整段代码都被编译器完全打乱了,然后自动做了矢量化,最后每一帧的运行速度翻了一倍。后来写 AVX2 的时候,我发现要把几十行代码的循环整个 Unroll 成 16 遍,然后全部按照之前编译器优化的代码( _mm_insert_pi16 然后 _mm256_inserti128_si256 )来写才能勉强赶上编译器自动优化的 SSE,如果按照自己原先的优化(用 _mm256_load_si256 载入)来写的话慢出翔。 折腾了整整 3 天以后我把整个代码优化分支删了。去™的手动优化…… |
9
geekvcn OP @msg7086 一般很少有人手动优化,甚至软件都是随便扒来的代码改改,不然就不会有渣优化软件了,但是有的项目确实有性能需求,就得手动优化了,付出和回报自己取舍吧,回报远不及付出就没必要费脑子,不如加硬件实在,Clear Linux 就使用了大量编译器优化,所以我想试试在同样禁用幽灵和熔断缓解补丁的情况下,各方面性能究竟比其他发行版好多少,然后个人服务器用一段时间试试稳定性,个人比较追求性能,在保证稳定的前提下
|
10
ivmm 2019-09-21 10:57:47 +08:00 1
阿里云的 AliyunLinux,借鉴(参考?融合? 我也不知道该怎么形容这个词)了 ClearLinux 后,确实同实例下比其他操作系统跑分能高 15~20 个点
|