MinGW64 无法进行 32 字节堆栈对齐(Windows x64 上的 AVX 所需),轻松解决或切换编译器?

2023-12-03

我正在尝试使用 AVX 指令和 Windows 64 位。我对 g++ 编译器很满意,所以我一直在使用它,但是,报告了一个大错误here并提出了非常粗略的解决方案here.

基本上,m256 变量无法在堆栈上对齐才能与 avx 指令一起正常工作,它需要 32 字节对齐。

我链接的其他堆栈问题中提出的解决方案确实很糟糕,特别是如果您考虑到性能的话。每次你想要调试时都必须运行一个Python程序,它用次优的未对齐指令替换指令,或者过度分配并在代码中进行一堆昂贵的hacky指针数学以获得正确的对齐。如果您执行指针数学解决方案,我认为仍然有可能出现段错误,因为您无法控制分配或右值/临时值。

我正在寻找一种更简单、更便宜的解决方案。我不介意切换编译器,也不想这样做,但如果这是最好的解决方案,我会的。然而,我对这个错误的理解很差,因为它是 Windows 64 位固有的,所以切换编译器会有帮助吗?或者其他编译器也有同样的问题吗?


您可以通过切换到微软的64位C/C++编译器来解决这个问题。该问题并非 64 位 Windows 所固有的。尽管 Kai Tietz 在您链接的错误报告中说过,Microsoft 的 x64 ABI 确实允许编译器在堆栈上为变量提供大于 16 字节的对齐方式。

此外,Cygwin 的 64 位版本的 GCC 4.9.2 可以在堆栈上为变量提供 32 字节对齐。

Clang for Windows 还可以使用 AVX 生成工作可执行文件,并且在优化方面是一个不错的选择。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MinGW64 无法进行 32 字节堆栈对齐(Windows x64 上的 AVX 所需),轻松解决或切换编译器? 的相关文章

  • 如何调用 LogonUser() 来获取启用了 UAC 的 Windows 服务中的非限制完整令牌?

    我正在 Windows Server 2012 上运行 WindowsService 它需要模拟域管理员用户 该用户也被添加到计算机上的本地管理员组 系统上启用了 UAC 并且使用 LogonType 为 LOGON32 LOGON INT
  • 当行大小大于向量宽度时 SIMD 转置

    你可以找到很多good https stackoverflow com a 25625919 149138 answers https stackoverflow com a 29587984 149138用于转置一个矩阵 该矩阵落在nat
  • 有没有办法在 OSX 中安装 gcc 而无需安装 Xcode?

    我用谷歌搜索了一下 似乎没有办法在 OS X 上安装 gcc 而不安装 Xcode 至少需要 1 5GB 的空间 我需要的只是 gcc 而不是 Xcode 附带的其他垃圾 此时 我将采用任何其他类型的 C 编译器 我知道我可以简单地安装 X
  • 与 SSE 比较 16 字节字符串

    我有 16 字节的 字符串 它们可能更短 但您可能会假设它们在末尾用零填充 但您可能不会假设它们是 16 字节对齐的 至少不总是 如何编写一个例程将它们与 SSE 内在函数进行比较 是否相等 我发现这个代码片段可能会有帮助 但我不确定它是否
  • Windows 计算机上出现“来自守护程序的错误响应:无法创建填充程序:OCI 运行时创建失败”错误

    我正在尝试构建一个简单的 Python 映像 然后在 Windows 上以交互方式访问容器 构建过程有效 但运行容器失败 这是 Dockerfile FROM python 3 10 4 WORKDIR app 生成文件 IMAGE scr
  • Windows下Kafka托管在Docker中删除主题时出现异常

    我在 Windows 的 Docker 中托管 Kafka 威斯迈斯特 卡夫卡 https hub docker com r wurstmeister kafka 使用 docker 镜像 Kafka 数据存储在本地 Windows 文件夹
  • 在 Android SDK 中设置 JAVA_HOME

    我和对方有一些冲突JAVA HOME配置 当我使用以下代码时 System out println System getenv JAVA HOME I get C jdk1 6 0 23这是正确的地方 但是 当我在 Android buil
  • GCC 从 C++ 程序生成的汇编代码中的 .cfi 和 .LFE 是什么?

    我有以下 C 代码 int factorial int n if n 0 return 1 return n factorial n 1 int main void factorial 5 return 0 当我使用 g S Factori
  • 在 gcc 中强制执行 C++98 标准

    我有一项学校作业应该用符合 C 98 的代码编写 我怎样才能强迫g 仅接受遵循此标准的代码 将要 std c 98做这个技巧还是我需要添加额外的标志 Per GCC 标准文档 http gcc gnu org onlinedocs gcc
  • R 脚本自动化时的不同结果

    以下命令对 pdf 文件执行 Ghostscript 这pdf file变量包含该 pdf 的路径 bbox lt system paste C gs gs8 64 bin gswin32c exe sDEVICE bbox dNOPAUS
  • 链接器失败:.gnu.linkonce.t

    我在使用 GCC 3 2 3 链接共享库时遇到问题binutils https en wikipedia org wiki GNU Binutils2 18 当我尝试链接库时出现以下错误 gnu linkonce t 在 rodata 节中
  • 如何让脚本执行结束后自动删除?

    是否可以制作一个Python脚本 在Windows中执行结束时删除 py文件 自删除 这种方式使您的程序不依赖于操作系统 from os import remove from sys import argv remove argv 0 奖励
  • 批处理文件 FOR /f 标记

    任何人都可以逐行准确解释以下代码是如何工作的 我真的迷路了 我一直在尝试学习如何使用 FOR 命令 但我不明白这一点 echo off for f tokens delims f in myfile do set line f call p
  • .wav 文件长度/持续时间,无需读入文件

    有没有办法提取有关 wav 文件长度 持续时间的信息 而无需在 R 中读取文件 我有数千个这样的文件 如果我必须阅读每个文件才能找到其持续时间 那将需要很长时间 Windows 文件资源管理器为您提供了打开 长度 字段的选项 并且您可以查看
  • 导入错误:无法导入名称线程

    这是我第一次学习Python 我继续尝试线程这篇博文 http www saltycrane com blog 2008 09 simplistic python thread example 问题是它似乎已经过时了 import time
  • 如何更改选项卡控件的名称

    我在 C WinForms 应用程序中使用选项卡控件 我想更改选项卡的标题 默认情况下它们是 tabPage1 tabPage2 等 一种无需代码即可实现的懒惰方法 选择选项卡控件 Go to properties use F4 to do
  • 移动/调整窗口大小时闪烁

    我开发了一个显示 jpeg 图像的应用程序 它可以显示 4 个图像 屏幕的每个象限各一个 为此 它使用了 4 个窗口 窗口没有边框 框架 也没有标题栏 当加载新图像时 窗口大小会根据新图像进行调整 然后显示该图像 尤其是当窗户做得较大时 经
  • 检测计算机何时解锁 Windows

    我用过这个优秀的方法 https stackoverflow com questions 20733441 lock windows workstation using python 20733443锁定 Windows 计算机 那部分工作
  • Kerberos 双跳

    我们遇到了臭名昭著的 Kerberos 双跳问题 这是一个全新的域 是从以前使用模拟和委派的另一个提供商迁移而来的 我们已将操作系统升级到最新的 SQL 服务器 2017 WPF 应用程序 使用域凭据 gt Web 服务 IIS 10 上的
  • gcc,我可以将 offsetof() 与指向成员的模板化指针一起使用吗?

    下面的代码在这里 https ideone com XnxAyw https ideone com XnxAyw 我得到的编译器错误是 prog cpp In member function size t list base

随机推荐

  • Xamarin Forms:在 IOS 中的 UI 中,相机图片向左旋转

    从 IOS 相机拍摄的照片在 UI 中显示时左旋转 我已经遇到过此类问题并通过此解决了thread 但在这种情况下 我只保存image path列出 相机代码 public async void OpenMyCamera try List
  • 最后一个孩子不工作 css/html

    我试图有一排四个 div frontpage width 240px margin bottom 20px margin right 50px float left webkit box sizing border box moz box
  • 用于绘制图形和滚动的面板

    我希望能够使用Panel或类似的方法将图形绘制到 Winform 上 如果图形变得大于控件 我似乎看不到任何有关添加滚动条的信息 是否可以用a来做到这一点Panel或者是否有类似的控件允许它 将 AutoScroll 属性设置为 true
  • 读入文件中以特定字符开头的每一行

    我正在尝试读取以 X 开头的文件中的每一行 我不想读取 X 本身 而只是读取接下来的行的其余部分 with open hnr1 abc r as file f file read id for line in f if line start
  • 在 Google 日历中添加和保存活动的链接

    我正在尝试创建一个在我的 Google 日历中添加活动的链接 继较早的条目之后 添加到 Google 日历的链接 我已经能够做到这一点 但它会将我带到一个页面 我必须按 保存 按钮才能结束该过程 是否可以添加参数来添加事件而无需按 保存 按
  • 如何使用VBA中的循环函数填充多个文本框

    我用 VBA 制作了一个带有许多文本框的用户界面 我读了一张 Excel 工作表 并将该工作表的所有值放入用户界面的所有文本框中 因此用户可以修改这些值 然后将其保存在 Excel 工作表中 因为我们不能像数组一样命名文本框 textBox
  • IE7下有两个同名的cookie怎么办?

    一些背景 除了 PHPSESSID 之外 CakePHP 还写入它自己的会话 ID cookie 这用于验证请求 然后 SWFupload 发送一个文件和该令牌进行身份验证 并被选为新的用户代理 因此在 cakephp 中 您必须禁用 ch
  • 具有命名空间解组功能的 JAXB(使用 REST 服务中的 Jersey)

    我正在尝试从 Convio 的公共 api 解组一个简单的 xml 文档 我没有收到以下代码的任何编译器错误 但它也不会产生结果 这些值为空 如果我从 xml 文档中删除架构和命名空间项 并从 POJO 中删除命名空间属性 那么它将运行得很
  • plot_surface : 获取写在右下角的 x,y,z 值

    我是 matplotlib 的新用户 使用 matplotlib 和plot surface 绘制曲面 3D 时 会出现一个带有图形的窗口 在该窗口中 右下角有鼠标实际位置的坐标 是否可以访问这些值 我在互联网上搜索过 但提出的解决方案很少
  • 新版本的c++

    C 是否会推出新版本 何时推出 C C 0X 的创建者常见问题解答 http www2 research att com bs C 0xFAQ html 问题 C 0x什么时候成为正式标准 但 C 0X 确实在某种程度上存在于各种编译器中
  • 如何在Three20的AppDelegate中添加全局右栏按钮(UINavigationController)

    我想在全局 AppDelegate 中添加一个全局右栏按钮 这样我的所有视图控制器都会自动具有此按钮 我在AppDelegate中添加了 navigator window rootViewController navigationContr
  • 将具有重复字符的字符串拆分为列表

    我对正则表达式没有太多经验 但我已经阅读了很多相关内容 假设有一个字符串s 111234 我想要一个列表 其中字符串分为L 111 2 3 4 我的方法是让一组检查它是否是数字 然后检查该组是否重复 像这样的东西 L re findall
  • JS:获取contentEditable div中所有选定节点的数组

    你好 我使用 contentEditable 已经有一段时间了 我想我已经很好地处理它了 我回避的一件事是如何获取对部分或完全在用户选择范围内的所有节点的引用数组 有人有主意吗 可以从以下几点开始
  • 导航到不同的 html 页面时,jQuery Mobile 页面事件不会触发

    我正在尝试使用导航到不同的 html 页面 mobile changePage PlayGame html transition slideup true true PlayGame html 正在转换为 但是 以下内容均未触发 docum
  • 我们如何在单个 JSF 页面中使用多个 标记或 标记?

    我的问题是 我在一个 JSF 页面中有 2 个表单 每个表单都有其
  • 如何使用 UIGestureRecognizer 检测圆周运动

    我希望能够检测到某人的手指在屏幕上画圆周运动 就像他们在画 O 一样 这可以通过 UIGestureRecognizer 实现吗 我认为这个问题的答案取决于您对圆周运动的定义以及您打算如何使用它 例如 您想知道用户手指沿着圆移动了多少度 或
  • 根据变量值生成数据总和

    我有类似这样的数据 Hosp Score Var1 Var2 Var3 1 0 5 3 0 1 1 10 8 1 1 2 11 8 2 1 3 5 3 2 2 0 6 4 0 2 2 10 6 1 2 3 10 7 2 3 1 4 3 2
  • 当条件不满足时重置 pandas cumsum [重复]

    这个问题在这里已经有答案了 我经历了不同的 stackoverflow 问题并最终发布它 因为我无法解决我面临的问题之一 我有一个如下所示的数据框 A B C group1 group1 c 12 group1 group1 c 12 gr
  • 从 PostgreSQL 函数运行 Python 脚本

    每次在 PostgreSQL 表上执行更新或插入操作时 我都面临一个 小 问题 该脚本将提取更新或插入的数据并将其写入文件 环境数据 乌班图18 04 仿生海狸 PostgreSQL 10 和 Python 3 6 SELECT FROM
  • MinGW64 无法进行 32 字节堆栈对齐(Windows x64 上的 AVX 所需),轻松解决或切换编译器?

    我正在尝试使用 AVX 指令和 Windows 64 位 我对 g 编译器很满意 所以我一直在使用它 但是 报告了一个大错误here并提出了非常粗略的解决方案here 基本上 m256 变量无法在堆栈上对齐才能与 avx 指令一起正常工作