c – 有没有办法创建一个可以作为参数传递的16字节对齐类
发布时间:2020-12-16 10:21:51 所属栏目:百科 来源:网络整理
导读:我们有一个(数字3浮点)矢量类,我很乐意将其对齐到16字节,以便允许SIMD操作.使用declspec进行16字节对齐会导致一系列C2719错误(参数’:带有__declspec(align(‘#’)的形式参数)将不会对齐).如果我无法传递对齐的矢量,那有什么意义呢?即使对向量使用const引
我们有一个(数字3浮点)矢量类,我很乐意将其对齐到16字节,以便允许SIMD操作.使用declspec进行16字节对齐会导致一系列C2719错误(参数’:带有__declspec(align(‘#’)的形式参数)将不会对齐).如果我无法传递对齐的矢量,那有什么意义呢?即使对向量使用const引用也会导致编译器错误,这真的让我感到烦恼.
有没有办法在这里做我想要的 – 获得16字节的类对齐,同时允许结构传递而不必对__m128类型做一些愚蠢的欺骗? 解决方法
你不可能从使用SIMD中获得很多好处,除非你一次操作一堆这些三维矢量结构,在这种情况下你可能会将它们传递给一个数组,你可以将它作为一个数组对齐你需要.您可能从SIMD获得一些好处的另一种情况是,如果您在每个向量上进行大量计算,并且可以在三个通道上并行化操作.在这种情况下,然后在函数开始时进行一些手动操作以将其引入__m128类型可能仍然可以为您提供一些好处.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |