gpt4 book ai didi

performance - 如何确定 gcc 支持哪些架构?

转载 作者:行者123 更新时间:2023-12-03 14:11:30 28 4
gpt4 key购买 nike

GCC 支持 -march允许您指定目标架构的开关 - 允许它调整该平台的指令序列以及使用平台上可能可用但在“默认”或基础版本架构上不可用的指令。

例如,-march=skylake将告诉编译器以 Skylake CPU 为目标,包括使用 Skylake 上可用的指令集,例如 AVX2。

我怎么知道 -march 的值是什么? gcc本地版本支持?当传递无效参数时,较新版本有助于列出有效参数,但较旧版本不会。

最佳答案

对于 gcc7 及更高版本,gcc 将打印它支持的值作为错误消息的一部分。

$ gcc -E -march=help -xc /dev/null
# 1 "/dev/null"
cc1: error: bad value (‘help’) for ‘-march=’ switch
cc1: note: valid arguments to ‘-march=’ switch are: nocona core2 nehalem corei7 westmere sandybridge corei7-avx ivybridge core-avx-i haswell core-avx2 broadwell skylake skylake-avx512 bonnell atom silvermont slm knl x86-64 eden-x2 nano nano-1000 nano-2000 nano-3000 nano-x2 eden-x4 nano-x4 k8 k8-sse3 opteron opteron-sse3 athlon64 athlon64-sse3 athlon-fx amdfam10 barcelona bdver1 bdver2 bdver3 bdver4 znver1 btver1 btver2

我查了 on Godbolt , 和 x86 gcc6.x 及更早版本只是说 error: bad value (invalid) for -march= switch即使与 -v .

它也不适用于 clang5.0 或 ICC18。

这是特定于目标的:ARM gcc6.3 确实生成了一个受支持的列表 -march值,或 -mcpu= .

关于performance - 如何确定 gcc 支持哪些架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47299458/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com