小编Jan*_*Jan的帖子

在托管代码中调用SSE代码(对齐)

这是我的问题:我们有一个用C++编写的数学库,它大量使用SSE.我们需要在我们的工具的托管层(使用C#编写)中使用相同的数学库.

问题是,数学库类必须是16字节对齐(SSE才能工作).但是,在编译托管代码时,我会遇到很多错误,因为不支持"__declspec(align(X))".

有什么想法是否可能以某种方式?我无法找到任何有用的信息.

一些其他信息:

用C++编写的数学库使用SSE来获得最大性能.但是,我们的工具不需要最高性能,与普通的C#代码相比,我们甚至可以获得性能提升.它更多的是能够实际执行我们所有的代码(它是一个巨大的代码库),而无需人们在数据类型之间来回转换.

所以这只是关于可用性,而不是关于性能.

我试过这个:我把所有的数学函数都放到cpp中,而不是把它们作为内联函数.现在它们从自己的DLL导出.然而,vector-class当然还有一个__m128私有成员用于其数据.

只要我将这样的变量放在托管代码中,编译器就会告诉我,我的托管代码现在是本机代码.

这是否意味着我的类定义中不能有这样的类型并将其完全隐藏在DLL接口之后?谢谢.

c# c++ sse managed alignment

7
推荐指数
2
解决办法
2009
查看次数

标签 统计

alignment ×1

c# ×1

c++ ×1

managed ×1

sse ×1