对于任何使用cuda(或知道他们的东西的人)的cufft库的人 - 从交错数据类型cufftComplex中恢复数据的最有效方法是什么?
数据按如下方式添加到结构中:
cufftComplex SomeData;
/*...a loop...*/
SomeData[i].x=1.0f;
SomeData[i].y=0.0f;
所以现在如果我将&(SomeData[0].x&
转换为指向浮点数的指针,我的数据形式为“1 0 1 0 1”因为x / y数据是交错的。我想正确输入它,以便我得到“1 1 1 1”等。有没有办法在不使用循环并直接分配元素的情况下重铸此类型?
感谢您的任何信息。正如我之前提到的,这是CUDA sdk的一部分。
答案 0 :(得分:2)
你不能仅仅通过投射来实现 - 底层数据是交错的,没有办法解决这个问题。如果你确实需要一个连续的流,例如只有实数的数据,你必须对数据进行解交织,你可以在现场或不在现场进行解交错。