[問題] CUDA CUFFT fft要如何shift?

taker1986 2010-01-10 12:29:26
請問一下,我做完CUFFT傅立葉轉換後,必須要做shift,該怎麼執行呢

cufftPlan2d(&plan, H, W, CUFFT_C2C);

cufftExecC2C(plan, odata, odata1, CUFFT_INVERSE);

接下來我要怎麼做shift呢,好像沒有FFTSHIFT的指令可用

謝謝
...全文
462 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ansonchong 2010-02-03
  • 打赏
  • 举报
回复
I like git gj olsdf
  • 打赏
  • 举报
回复
cufft文档里没有shift的说明,可能只能自己写个kernel做变换了。

e^(a+bi),指数的虚部是相位,实部才是大小。

cosf是float版本,__cosf是float快速版本(精度最差),cos是double版本。
taker1986 2010-01-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 l7331014 的回复:]
引用 1 楼 taker1986 的回复:
請問一下,我想對虛數(值=1000)部分做exp,

exp(a[0][0].y)=無限大, 要怎麼才可以做出exp(1000i)呢


double最大也就10的308次方,2的1000次方左右.exp(1000i)太大了吧.
至于cuda上的float只有10的38次方....
[/Quote]

exp(0+1000i)=0.5624 + 0.8269i,

而在cuda上虛數部分室表示在.y的位置,

但因為在cuda中y位置上的值會是1000,不是1000i

所以要怎麼樣才能夠做呢,

還是說我直接坐cos(y)+isin(y)呢?

謝謝
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 taker1986 的回复:]
請問 Programming_Guide 的附錄B上,
有列出cosf, 那這跟cos有什麼不一樣嗎
[/Quote]

cos,就是精度比cpu上的cos差些.
具体看表b-3中的误差范围.
taker1986 2010-01-10
  • 打赏
  • 举报
回复
請問 Programming_Guide 的附錄B上,

有列出cosf, 那這跟cos有什麼不一樣嗎

謝謝

OpenHero 2010-01-10
  • 打赏
  • 举报
回复
这个地方是否需要考虑用大数处理了,还是你用fft就是来求大数乘积的啦?
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 taker1986 的回复:]
請問一下,我想對虛數(值=1000)部分做exp,

exp(a[0][0].y)=無限大, 要怎麼才可以做出exp(1000i)呢
[/Quote]

double最大也就10的308次方,2的1000次方左右.exp(1000i)太大了吧.
至于cuda上的float只有10的38次方....
taker1986 2010-01-10
  • 打赏
  • 举报
回复
請問一下,我想對虛數(值=1000)部分做exp,

exp(a[0][0].y)=無限大, 要怎麼才可以做出exp(1000i)呢
  • 打赏
  • 举报
回复
数学公式->程序还是要做些变换,不能直接看到类似的函数名就套用的.呵呵.
  • 打赏
  • 举报
回复
用exp(1000),就真的去计算e^1000了.
应该用cos(y)+isin(y)的表示形式来计算的!

579

社区成员

发帖
与我相关
我的任务
社区描述
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
社区管理员
  • CUDA编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧