Jan*_*Jan 7 c# c++ sse managed alignment
这是我的问题:我们有一个用C++编写的数学库,它大量使用SSE.我们需要在我们的工具的托管层(使用C#编写)中使用相同的数学库.
问题是,数学库类必须是16字节对齐(SSE才能工作).但是,在编译托管代码时,我会遇到很多错误,因为不支持"__declspec(align(X))".
有什么想法是否可能以某种方式?我无法找到任何有用的信息.
一些其他信息:
用C++编写的数学库使用SSE来获得最大性能.但是,我们的工具不需要最高性能,与普通的C#代码相比,我们甚至可以获得性能提升.它更多的是能够实际执行我们所有的代码(它是一个巨大的代码库),而无需人们在数据类型之间来回转换.
所以这只是关于可用性,而不是关于性能.
我试过这个:我把所有的数学函数都放到cpp中,而不是把它们作为内联函数.现在它们从自己的DLL导出.然而,vector-class当然还有一个__m128私有成员用于其数据.
只要我将这样的变量放在托管代码中,编译器就会告诉我,我的托管代码现在是本机代码.
这是否意味着我的类定义中不能有这样的类型并将其完全隐藏在DLL接口之后?谢谢.
struct打包对您有帮助吗?
http://www.developerfusion.com/article/84519/mastering-structs-in-c/
您可以使用它将字段与内存中的特定区域对齐。
| 归档时间: |
|
| 查看次数: |
2009 次 |
| 最近记录: |