Это может показаться простым вопросом, но использование cufft
не очень понятно для меня.О планах повторного использования в cuFFT
Мой вопрос: который соответствует одной из следующих реализаций?
1)
// called in a loop
cufftPlan3d (plan1, x, y, z) ;
cufftexec (plan1, data1) ;
cufftexec (plan1, data2) ;
cufftexec (plan1, data3) ;
destroyplan(plan1)
2)
init() //called only one time in application
{
cufftPlan3d (plan1, x, y, z) ;
}
exec() //called many times with data changing size remains same
{
cufftexec (plan1, data1) ;
cufftexec (plan1, data2) ;
cufftexec (plan1, data3) ;
}
deinit() //called only one time in application
{
destroyplan(plan1)
}
3)
cufftPlan3d (plan1, x, y, z) ;
cufftexec (plan1, data1) ;
destroyplan(plan1)
cufftPlan3d (plan2, x, y, z) ;
cufftexec (plan2, data2) ;
destroyplan(plan2)
....
...
Предположим, все размеры данных data1
, data2
и data3
одинаковы. Пожалуйста, проигнорируйте правильность синтаксиса. Мне просто нужен концептуальный ответ.
Третья реализация не выглядит правильно мне ...
В Варианте 2 это нормально, чтобы создать план с помощью createPlan3D() и использовать его столько раз, сколько требуется? –
Да, вы можете повторно использовать планы –