首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FFTW -需要fftw_alloc()吗?

FFTW -需要fftw_alloc()吗?
EN

Stack Overflow用户
提问于 2013-11-22 16:52:21
回答 1查看 798关注 0票数 2

FFTW的文档表示,fftw_alloc()确保了正确的内存对齐。在给定的FFTW计划的输入/输出中使用堆栈变量是否存在风险?FFTW只是运行慢一点,还是根本不运行?

不推荐使用下面的C代码吗?

代码语言:javascript
复制
int main()
{
   fftw_complex in[1024];
   fftw_complex out[1024];

   fftw_plan my_plan;

   my_plan = fftw_plan_dft_1d(1024, in, out, FFTW_FORWARD, FFTW_ESTIMATE);

   fftw_execute(plan);
}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-22 16:55:27

从医生那里:

005fmalloc.html

连接到用SIMD支持编译的FFTW库的程序,对于大多数复杂的r2c/c2r转换,可以获得不可忽略的加速。然而,为了获得这种加速,传递给FFTW的复杂(或真实)数据数组必须在内存中特别对齐(通常为16字节对齐),而且这种对齐通常比通常的malloc (等等)更严格。分配例程。 因此,为了保证SIMD的正确对齐,如果您的程序与使用FFTW的SIMD连接,我们建议使用fftw_malloc分配转换数据,并使用fftw_free取消分配。它们具有与malloc/free完全相同的接口和行为,但对于SIMD FFTW,它们确保返回的指针具有必要的对齐性(通过调用memalign或其在操作系统上的等效值)。

“有必要”?不是

“好主意?”是的-最明确的是:)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20150210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档