RasterProcessTool/Toolbox/SimulationSARTool/SimulationSAR/BPBasic0_CUDA.cuh

38 lines
1.0 KiB
Plaintext
Raw Normal View History

2025-03-03 08:25:50 +00:00
#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 {
2025-03-04 08:18:35 +00:00
long Nfft, K, Np, nx, ny; // <20><><EFBFBD><EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>С<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>
2025-03-03 09:50:28 +00:00
double* AntX, * AntY, * AntZ, * minF; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAA1A2>ʼƵ<CABC><C6B5>
double* x_mat, * y_mat, * z_mat;// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double* r_vec; // <20><><EFBFBD>Χ
double* Freq;// Ƶ<><C6B5>
2025-03-03 08:25:50 +00:00
cufftComplex* phdata;// <20>ز<EFBFBD>
cufftComplex* im_final;// ͼ<><CDBC>
2025-03-03 09:50:28 +00:00
double R0; // <20>ο<EFBFBD>б<EFBFBD><D0B1>
double deltaF; // Ƶ<>Χ
2025-03-03 08:25:50 +00:00
};
extern "C" {
2025-03-04 08:18:35 +00:00
void bpBasic0CUDA(GPUDATA& data, int flag,double* h_R=nullptr);
2025-03-03 08:25:50 +00:00
void initGPUData(GPUDATA& h_data, GPUDATA& d_data);
void freeGPUData(GPUDATA& d_data);
2025-03-03 09:50:28 +00:00
void freeHostData(GPUDATA& d_data);
void BPBasic0(GPUDATA& h_data);
2025-03-03 08:25:50 +00:00
};