Я хочу сделать 1-D FFT двухмерного массива (скажем только по столбцам). Я использую vs2010/C# с managedcuda.1D преобразование БПФ 2D-массива в CUDA
У меня возникли некоторые проблемы:
Как я сделать 2-D CudaDeviceVariable? Я пробовал:
int n1 = 10; int n2 = 2; int batch = 1; //SizeT test; CudaDeviceVariable<double>[,] datad; datad = new CudaDeviceVariable<double>[n1, n2];
datad
Но не CudaDeviceVariable
. Теперь это обычный 2-мерный массив. Поэтому я не могу выделить память в устройстве. Как:
double[,] data11 = new double[,] {{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 },{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }};
datad.CopyToDevice(data11);//Error??
Это ошибка, потому что CopyToDevice
это не метод для System.Array
. Если я сделаю datad
a n1*n2
CudaDeviceVariable
, ошибка все еще существует, потому что CopyToDevice
принимает double[]
как входной аргумент, а не [,].
Выше метод работает для 1-D массивов.
2.может ли это сделать 1-D БПФ большого массива. Например, я делаю одномерный массив от data11
. А затем выполнить БПФ в частях из 10 элементов? CudaFFTPlanMany
имеет некоторые варианты, но я не на 100% понятен, как их использовать или как они могут быть полезны для меня.
Пожалуйста, задайте более подробную информацию, если я не понимаю. Большое спасибо.
EDIT: у меня есть еще какие-то детали, вопрос остается, но я сделал 1-мерный массив data11
, а затем выполнил пакетный fft в 2 партиях по размеру 10. Он дал мне результаты, что я хотел. Синтаксис:
CudaFFTPlanMany planm;
planm = new CudaFFTPlanMany(1, n, 1,cufftType.D2Z);
Приветствие
спасибо много. Я просто смутился о двухмерном массиве.И, кстати, это очень поможет, если есть несколько документированных примеров. Мне потребовалось некоторое время, чтобы разобраться, учитывая, что я не программист CUDA/C. Есть примеры, но мне пришлось копать в коде, чтобы увидеть реализации. Еще раз спасибо. Отличная работа. – Naresh
Я знаю, управляемыйКуда пропускает некоторые простые сквозные примеры. Но для их создания мне понадобилось бы гораздо больше времени, чем в настоящее время ... Возможно, в будущем ;-) – kunzmi