c – 有没有办法创建一个可以作为参数传递的16字节对齐类

c – 有没有办法创建一个可以作为参数传递的16字节对齐类,第1张

概述我们有一个(数字3浮点)矢量类,我很乐意将其对齐到16字节,以便允许SIMD *** 作.使用declspec进行16字节对齐会导致一系列C2719错误(参数’:带有__declspec(align(‘#’)的形式参数)将不会对齐).如果我无法传递对齐的矢量,那有什么意义呢?即使对向量使用const引用也会导致编译器错误,这真的让我感到烦恼. 有没有办法在这里做我想要的 – 获得16字节的类对齐,同时允许 我们有一个(数字3浮点)矢量类,我很乐意将其对齐到16字节,以便允许SIMD *** 作.使用declspec进行16字节对齐会导致一系列C2719错误(参数’:带有__declspec(align(‘#’)的形式参数)将不会对齐).如果我无法传递对齐的矢量,那有什么意义呢?即使对向量使用const引用也会导致编译器错误,这真的让我感到烦恼.

有没有办法在这里做我想要的 – 获得16字节的类对齐,同时允许结构传递而不必对__m128类型做一些愚蠢的欺骗?

解决方法 你不可能从使用SIMD中获得很多好处,除非你一次 *** 作一堆这些三维矢量结构,在这种情况下你可能会将它们传递给一个数组,你可以将它作为一个数组对齐你需要.您可能从SIMD获得一些好处的另一种情况是,如果您在每个向量上进行大量计算,并且可以在三个通道上并行化 *** 作.在这种情况下,然后在函数开始时进行一些手动 *** 作以将其引入__m128类型可能仍然可以为您提供一些好处. 总结

以上是内存溢出为你收集整理的c – 有没有办法创建一个可以作为参数传递的16字节对齐类全部内容,希望文章能够帮你解决c – 有没有办法创建一个可以作为参数传递的16字节对齐类所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1219571.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存