根据大多数基准测试,英特尔的Clear Linux比其他发行版更快,主要得益于名为Function Multi-Versioning的gcc功能.现在他们使用的方法是编译代码,分析哪个函数包含向量化循环,然后使用FMV属性修补代码并再次编译.
gcc自动完成它有多可行?例如,通过传递-mmultiarch=sandybridge,skylake(或类似-m选项列出CPU扩展,如AVX和AVX2).
现在我对两种使用场景感兴趣:
不,但这并不重要。真正能从中受益的代码非常非常少;在大多数情况下,通过全局执行此操作,您只会(无需特别努力将页面中的匹配版本排序在一起)使您的系统由于代码大小的巨大增加而更加受到内存限制并且速度变慢。大多数实际负载甚至不受 CPU 限制;它们受系统调用开销限制、GPU 限制、IO 限制等。许多受 CPU 限制的现代代码并不运行预编译代码,而是运行 JIT 代码(即在浏览器中运行的所有内容,无论是这是你真正的浏览器,或者是每个 Electron 应用程序中过时且未打补丁的 Chrome 分支)。
| 归档时间: |
|
| 查看次数: |
541 次 |
| 最近记录: |