对于基于 Sandy Bridge 的 Pentium,正确的特定于体系结构的选项 (-m) 是什么?

2024-03-12

我正在尝试弄清楚如何设置-march正确地查看在使用 gcc 4.7.2 的 PC 上启用和禁用选项之间会出现多少性能差异。

在尝试编译之前,我试图找到最好的-march我的电脑的选项。我的电脑有Pentium G850,其架构是Sandy Bridge。所以我提到gcc 4.7.2 手册 http://gcc.gnu.org/onlinedocs/gcc-4.7.2/gcc/i386-and-x86_002d64-Options.html#i386-and-x86_002d64-Options并发现-march=corei7-avx似乎是最好的。
不过,我记得基于 Sandy Bridge 的 Pentium 缺乏 AVX 和 AES-NI 指令集支持,这是适用于奔腾 G850 http://ark.intel.com/products/53491/intel-pentium-processor-g850-3m-cache-2_90-ghz. So -march=corei7-avx不是一个合适的选择。

我提出了一些可能的选择:

  1. -march=corei7-avx -mno-avx -mno-aes
  2. -march=corei7 -mtune=corei7-avx
  3. -march=native

考虑到我所掌握的信息,第一个选项看起来很合理,但我担心除了 AVX 和 AES-NI 之外,可能还会缺少其他功能。第二个选项看起来很安全,但它可能会错过 Sandy Bridge 上的一些小功能,因为-march=corei7。第三个选项将解决我所有的问题,但我听说这个选项有时会错误检测 CPU 的功能,所以我想知道如何手动执行此操作。
我用谷歌搜索了 StackOverflow 和 SuperUser,但找不到任何明确的解决方案......
应该设置哪些选项?


通过 GCC 进行检测怎么样,对于我 (gcc-5.3.0) 在 i5-2450M CPU (Lenovo e520) 上,显示如下:

gcc -march=native -E -v - </dev/null 2>&1 | grep cc1


/usr/libexec/gcc/x86_64-pc-linux-gnu/5.3.0/cc1 -E -quiet -v - -march=sandybridge 
-mmmx -mno-3dnow -msse -msse2 -msse3 -mssse3 -mno-sse4a -mcx16 
-msahf -mno-movbe -maes -mno-sha -mpclmul -mpopcnt -mno-abm -mno-lwp 
-mno-fma -mno-fma4 -mno-xop -mno-bmi -mno-bmi2 -mno-tbm -mavx 
-mno-avx2 -msse4.2 -msse4.1 -mno-lzcnt -mno-rtm -mno-hle -mno-rdrnd 
-mno-f16c -mno-fsgsbase -mno-rdseed -mno-prfchw -mno-adx -mfxsr 
-mxsave -mxsaveopt -mno-avx512f -mno-avx512er -mno-avx512cd 
-mno-vx512pf -mno-prefetchwt1 -mno-clflushopt -mno-xsavec -mno-xsaves 
-mno-avx512dq -mno-avx512bw -mno-avx512vl -mno-avx512ifma 
-mno-avx512vbmi -mno-clwb -mno-pcommit -mno-mwaitx --param 
l1-cache-size=32 --param l1-cache-line-size=64 --param 
l2-cache-size=3072 -mtune=sandybridge -fstack-protector-strong
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对于基于 Sandy Bridge 的 Pentium,正确的特定于体系结构的选项 (-m) 是什么? 的相关文章

随机推荐

  • Python 中的滤波器设计和频率提取

    我正在开展一个项目 用 Python 查找多分量音频信号的瞬时频率 我目前正在使用巴特沃斯带通滤波器结合scipy signal lfilter提取我想要的频率区域 然后我使用分析信号 来自scipy signal hilbert 以获得瞬
  • Jquery 每 x 秒运行一次单击函数

    我有以下 jQuery
  • 最喜欢的 (G)Vim 插件/脚本? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 加载多个小型 JavaScript 文件和加载一个大型 JavaScript 文件哪个更好?

    我注意到在 Chrome 中 如果我将图像加载为 Base64 字符串 然后滚动浏览页面的该部分 速度会变慢 我还注意到 当我导航出包含 Javascript 的选项卡 然后移回该选项卡时 速度会慢几秒钟 就好像 V8 正在重新编译 js
  • Google 自定义搜索 API 自动完成?

    我们使用 Google 自定义搜索 API 付费服务器端 API 来支持我们的搜索结果 我想在搜索中添加自动完成功能 但是 有谁知道是否支持此功能 通过服务器端 API 或通过某种客户端 JSONP 我曾尝试使用 Google 自定义搜索的
  • Node.js 服务器没有响应

    我正在 Node js 主页上尝试这个简单的演示 var http require http http createServer function req res res writeHead 200 Content Type text pl
  • 如何防止应用程序在 Windows 7 中被固定?

    我试图阻止用户将我的 NET 应用程序固定到任务栏 我在上面找到了一些代码老新事物 http blogs msdn com b oldnewthing archive 2011 06 01 10170113 aspx就是这么做的 然而 它是
  • 如何在 C# 中使用箭头禁用 WinForm 上的导航?

    我需要禁用使用表单上的箭头改变焦点 有一个简单的方法可以做到吗 谢谢 大致如下 private void Form1 Load object sender EventArgs e foreach Control control in thi
  • 流星 0.5.7:如何处理/使用 Meteor.Collection.ObjectID?

    我昨天更新了流星并尝试使用新的Meteor Collection ObjectID 但此后一直没有成功 首先 我以这种方式更新了我的收藏 myCollection new Meteor Collection mycollection idG
  • 选择每一列,但重命名其中一列

    假设我有一个名为 Alphabet 的表 现在假设该表具有以下列 a b c d e z 现在我想从提到的表中选择所有内容 但选择 f 作为 aaa 但我不想这样做 select a b c d e f as aaa g z from Al
  • silverlight 画布装订

    我正在尝试创建一个画布 其中的项目位于画布上的指定位置 因为我无法将源和模板直接绑定到画布 我是否使用了 ItemsControl 但有一个问题 所有的项目都位于 0 0 我已经测试了绑定 它们不返回 0 0 我怎样才能完成这项工作 使物品
  • System.Speech.Synthesis 在 2012 R2 上因 CPU 高而挂起

    我有一个 asp net MVC 应用程序 它有一个控制器操作 该操作将字符串作为输入并发送合成语音的响应 wav 文件 这是一个简化的示例 public async Task
  • 哪些方法可用于管理现有数据库的不同版本?

    Note这旨在成为提出并回答你自己的问题 as per 以问答方式分享您的知识 https stackoverflow blog 2011 07 01 its ok to ask and answer your own questions
  • Ruby - 找到哈希值最大值的键

    我有一个散列 我想返回散列最大值的键 或键 值对 因此 如果只有一个真正的最大值 它将返回该键 但是 如果有多个具有相同值的键 值对 它将返回所有这些键 我怎样才能在 Ruby 中完成这个任务 my hash max by k v v on
  • psycopg2 - 插入整数数组

    我正在使用 Postgres 9 2 Python 2 7 3 psycopg2 2 5 1 我有一个表 其中一个字段声明为 some field int NOT NULL 我需要插入一些数据 所以我正在做这样的事情 cursor exec
  • 使用 1D 数组绘制 2D 绘图,无需 griddata()

    我正在尝试使用绘制两个变量的函数matplotlib 该函数存储在三个一维数组中X Y and F对应x坐标 y坐标和函数值 是否可以将这些数据绘制为等高线图 在我看到解决方案之前griddata 但我想避免插值 因为 x 和 y 坐标已经
  • 将非 bat 扩展文件作为批处理文件运行

    假设我有一个文本文件 它包含批处理命令 我怎样才能从一个文本文件中将其作为批处理文件运行 without重命名它 我也想保留它的可移植性 所以没有注册表项之类的 不重命名的原因是为了防止意外关闭时留下未重命名的文件 最简单的方法是这样的 c
  • IE bug 源 HTML5 音频无效 - 解决方法

    我 和大约一百万人 在 IE11 中发现了一个错误 不确定其他版本是否有相同的错误 如果您创建 HTML5 音频标签 浏览器无论如何都会报告 无效源 我已经尝试了所有我能想到的组合 但没有成功 迄今为止 将 HTML 结束标记从自闭更改为显
  • Mongo_mapper限制结果

    我有一个这样的查询 allJobs Job where merchant id gt session admin id to s sort start date desc limit 100 当我对此运行 count 时 我得到 jobs
  • 对于基于 Sandy Bridge 的 Pentium,正确的特定于体系结构的选项 (-m) 是什么?

    我正在尝试弄清楚如何设置 march正确地查看在使用 gcc 4 7 2 的 PC 上启用和禁用选项之间会出现多少性能差异 在尝试编译之前 我试图找到最好的 march我的电脑的选项 我的电脑有Pentium G850 其架构是Sandy