Fix complex fft bug
This commit is contained in:
@@ -1335,9 +1335,14 @@ CudaMatrix Aurora::fft(const CudaMatrix &aMatrix, long aFFTSize){
|
||||
size_t needCopySize = (ColEleCount<aMatrix.getDimSize(0))?ColEleCount:aMatrix.getDimSize(0);
|
||||
size_t bufferSize = ColEleCount*aMatrix.getDimSize(1);
|
||||
float* data = nullptr;
|
||||
cudaMalloc((void**)&data, sizeof(float)*2*bufferSize);
|
||||
|
||||
complexFillKernel<<<aMatrix.getDimSize(1), 256>>>(aMatrix.getData(), data, needCopySize, aMatrix.getDimSize(0),ColEleCount);
|
||||
cudaMalloc((void**)&data, sizeof(float)*2*bufferSize);
|
||||
if (aMatrix.isComplex()){
|
||||
complexCopyKernel<<<aMatrix.getDimSize(1), 256>>>(aMatrix.getData(), data, needCopySize, aMatrix.getDimSize(0),ColEleCount);
|
||||
}
|
||||
else{
|
||||
complexFillKernel<<<aMatrix.getDimSize(1), 256>>>(aMatrix.getData(), data, needCopySize, aMatrix.getDimSize(0),ColEleCount);
|
||||
}
|
||||
auto ret = Aurora::CudaMatrix::fromRawData(data,ColEleCount,aMatrix.getDimSize(1),1,Complex);
|
||||
ExecFFT(ret,0);
|
||||
return ret;
|
||||
|
||||
Reference in New Issue
Block a user