RasterProcessTool/Toolbox/SimulationSARTool/SimulationSAR/BPBasic0_CUDA.cuh

41 lines
1.1 KiB
Plaintext

#ifndef _BPBASIC0_CUDA_H_
#define _BPBASIC0_CUDA_H_
#include <cstdio>
#include <cufft.h>
#include <cmath>
#include <cuda_runtime.h>
#include "BaseConstVariable.h"
//#define cudaCheckError(ans) { gpuAssert((ans), __FILE__, __LINE__); }
//inline void gpuAssert(cudaError_t code, const char* file, int line) {
// if (code != cudaSuccess) {
// fprintf(stderr, "CUDA Error: %s %s %d\n", cudaGetErrorString(code), file, line);
// exit(code);
// }
//}
//
//#define c LIGHTSPEED
struct GPUDATA {
long Nfft, K, Np, nx, ny; // 傅里叶点数、频点数、脉冲数、图像列、图像行
double* AntX, * AntY, * AntZ, * minF; // 天线坐标、起始频率
double* x_mat, * y_mat, * z_mat;// 地面坐标
double* r_vec; // 坐标范围
double* Freq;// 频率
cufftComplex* phdata;// 回波
cufftComplex* im_final;// 图像
double R0; // 参考斜距
double deltaF; // 频点范围
};
extern "C" {
void bpBasic0CUDA(GPUDATA& data, int flag,double* h_R=nullptr);
void initGPUData(GPUDATA& h_data, GPUDATA& d_data);
void freeGPUData(GPUDATA& d_data);
void freeHostData(GPUDATA& d_data);
void BPBasic0(GPUDATA& h_data);
};
#endif