加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – float2和cuComplex之间有什么区别?

发布时间:2020-12-16 09:32:05 所属栏目:百科 来源:网络整理
导读:我试图弄清楚如何在我的主机和设备代码中使用复数.我遇到了cuComplex(但找不到任何文档!)和float2,至少在CUDA编程指南中提到了. 我该怎么用?在cuComplex的头文件中,看起来函数是用__host__ __device__声明的,所以我假设这意味着可以在任何一个地方使用它们
我试图弄清楚如何在我的主机和设备代码中使用复数.我遇到了cuComplex(但找不到任何文档!)和float2,至少在CUDA编程指南中提到了.

我该怎么用?在cuComplex的头文件中,看起来函数是用__host__ __device__声明的,所以我假设这意味着可以在任何一个地方使用它们.

我的原始数据正从一个文件读入std :: complex< float>所以我真的不想搞砸了.我想为了使用GPU上的复杂值,我将不得不从原始复合体中复制< float>到cuComplex?

解决方法

cuComplex在/usr/local/cuda/include/cuComplex.h中定义(以你的安装目录为模).相关片段:

typedef float2 cuFloatComplex;
typedef cuFloatComplex cuComplex;
typedef double2 cuDoubleComplex;

还有一些方便的功能可用于处理复杂的数字 – 将它们相乘,构建它们等.

至于是使用float2还是cuComplex,你应该使用任何语义上合适的东西 – 它是一个向量还是一个复数?此外,如果它是一个复数,您可能需要考虑使用cuFloatComplex或cuDoubleComplex才能完全显式.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读