重新调整
parent
ea8ed343f7
commit
9cf05eae73
|
@ -1,17 +0,0 @@
|
|||
#include <time.h>
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
#include <cmath>
|
||||
#include <complex>
|
||||
#include <device_launch_parameters.h>
|
||||
#include <cuda_runtime.h>
|
||||
#include <cublas_v2.h>
|
||||
#include <cuComplex.h>
|
||||
|
||||
#include "BaseConstVariable.h"
|
||||
#include "GPUGarbage.cuh"
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
#ifndef _GPUGARBAGE_H_
|
||||
#define _GPUGARBAGE_H_
|
||||
|
||||
|
||||
#include "BaseConstVariable.h"
|
||||
#include "GPUTool.cuh"
|
||||
#include <cuda_runtime.h>
|
||||
#include <device_launch_parameters.h>
|
||||
#include <cublas_v2.h>
|
||||
#include <cuComplex.h>
|
||||
#include "GPURFPC.cuh"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif
|
|
@ -734,12 +734,12 @@ void CUDA_RFPC_MainProcess(
|
|||
|
||||
|
||||
|
||||
float* h_tX = (float*)mallocCUDAHost(sizeof(float) * BlockTarlist);
|
||||
float* h_tY = (float*)mallocCUDAHost(sizeof(float) * BlockTarlist);
|
||||
float* h_tZ = (float*)mallocCUDAHost(sizeof(float) * BlockTarlist);
|
||||
float* h_sloperX = (float*)mallocCUDAHost(sizeof(float) * BlockTarlist);
|
||||
float* h_sloperY = (float*)mallocCUDAHost(sizeof(float) * BlockTarlist);
|
||||
float* h_sloperZ = (float*)mallocCUDAHost(sizeof(float) * BlockTarlist);
|
||||
double* h_tX = (double*)mallocCUDAHost(sizeof(double) * BlockTarlist);
|
||||
double* h_tY = (double*)mallocCUDAHost(sizeof(double) * BlockTarlist);
|
||||
double* h_tZ = (double*)mallocCUDAHost(sizeof(double) * BlockTarlist);
|
||||
double* h_sloperX = (double*)mallocCUDAHost(sizeof(double) * BlockTarlist);
|
||||
double* h_sloperY = (double*)mallocCUDAHost(sizeof(double) * BlockTarlist);
|
||||
double* h_sloperZ = (double*)mallocCUDAHost(sizeof(double) * BlockTarlist);
|
||||
long* h_cls = (long*)mallocCUDAHost(sizeof(long) * BlockTarlist);
|
||||
|
||||
double* d_tX = (double*)mallocCUDADevice(sizeof(double) * BlockTarlist);
|
||||
|
@ -759,7 +759,7 @@ void CUDA_RFPC_MainProcess(
|
|||
float* h_temp_echo_real = (float*)mallocCUDAHost(sizeof(float) * BlockPRFCount * freqpoints);//2GB
|
||||
float* h_temp_echo_imag = (float*)mallocCUDAHost(sizeof(float) * BlockPRFCount * freqpoints);//2GB
|
||||
|
||||
|
||||
|
||||
|
||||
long cudaBlocknum = 0;
|
||||
for (long spid = 0; spid < PRFCount; spid = spid + BlockPRFCount) {
|
||||
|
@ -769,6 +769,7 @@ void CUDA_RFPC_MainProcess(
|
|||
CUDAKernel_MemsetBlock << < cudaBlocknum, BLOCK_SIZE >> > (d_temp_echo_real, 0, BlockPRFCount * freqpoints);
|
||||
CUDAKernel_MemsetBlock << < cudaBlocknum, BLOCK_SIZE >> > (d_temp_echo_imag, 0, BlockPRFCount * freqpoints);
|
||||
}
|
||||
|
||||
for (long sTi = 0; sTi < TargetNumber; sTi = sTi + BlockTarlist) {
|
||||
// step 1,µØÃæ²ÎÊý-> GPUÄÚ´æ
|
||||
{
|
||||
|
@ -781,7 +782,7 @@ void CUDA_RFPC_MainProcess(
|
|||
h_sloperZ[sTi + ii] = demSlopeZ[sTi + ii];
|
||||
h_cls[sTi + ii] = demCls[sTi + ii];
|
||||
}
|
||||
|
||||
PRINT("Host -> Device start ,BlockTarlist %d \n", BlockTarlist);
|
||||
HostToDevice(h_tX, d_tX, sizeof(double) * BlockTarlist);
|
||||
HostToDevice(h_tY, d_tY, sizeof(double) * BlockTarlist);
|
||||
HostToDevice(h_tZ, d_tZ, sizeof(double) * BlockTarlist);
|
||||
|
@ -789,8 +790,9 @@ void CUDA_RFPC_MainProcess(
|
|||
HostToDevice(h_sloperY, d_sloperY, sizeof(double) * BlockTarlist);
|
||||
HostToDevice(h_sloperZ, d_sloperZ, sizeof(double) * BlockTarlist);
|
||||
HostToDevice(h_cls, d_cls, sizeof(long) * BlockTarlist);
|
||||
PRINT("Host -> Device finished \n");
|
||||
}
|
||||
|
||||
|
||||
// step 2 ¼ÆËã¾àÀë
|
||||
{
|
||||
cudaBlocknum = (BlockPRFCount * BlockTarlist + BLOCK_SIZE - 1) / BLOCK_SIZE;
|
||||
|
@ -828,9 +830,9 @@ void CUDA_RFPC_MainProcess(
|
|||
);
|
||||
}
|
||||
|
||||
PRINT("PRF %d , TargetID: %d / %d", spid+ BlockPRFCount, sTi, sTi+ BlockTarlist);
|
||||
|
||||
|
||||
PRINT("PRF %d / %d , TargetID: %d / %d \n", spid, PRFCount, sTi, sTi+ BlockTarlist);
|
||||
|
||||
|
||||
}
|
||||
|
||||
DeviceToDevice(h_temp_echo_real, d_temp_echo_real, sizeof(float) * BlockPRFCount * freqpoints);
|
||||
|
@ -843,7 +845,7 @@ void CUDA_RFPC_MainProcess(
|
|||
}
|
||||
}
|
||||
|
||||
PRINT("");
|
||||
//PRINT("");
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -210,7 +210,6 @@
|
|||
<ClInclude Include="BaseTool\RasterToolBase.h" />
|
||||
<ClInclude Include="BaseTool\SARSimulationImageL1.h" />
|
||||
<ClInclude Include="BaseTool\stdafx.h" />
|
||||
<ClInclude Include="GPUTool\GPUGarbage.cuh" />
|
||||
<ClInclude Include="GPUTool\GPURFPC.cuh" />
|
||||
<ClInclude Include="GPUTool\GPUTBPImage.cuh" />
|
||||
<ClInclude Include="GPUTool\GPUTool.cuh" />
|
||||
|
@ -230,10 +229,10 @@
|
|||
<None Include="cpp.hint" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CudaCompile Include="GPUTool\GPUGarbage.cu" />
|
||||
<CudaCompile Include="GPUTool\GPURFPC.cu">
|
||||
<GenerateRelocatableDeviceCode Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</GenerateRelocatableDeviceCode>
|
||||
<CodeGeneration Condition="'$(Configuration)|$(Platform)'=='Release|x64'">compute_86,sm_86;%(CodeGeneration)</CodeGeneration>
|
||||
<GPUDebugInfo Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</GPUDebugInfo>
|
||||
</CudaCompile>
|
||||
<CudaCompile Include="GPUTool\GPUTBPImage.cu">
|
||||
<GenerateRelocatableDeviceCode Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</GenerateRelocatableDeviceCode>
|
||||
|
|
|
@ -564,8 +564,8 @@ ErrorCode RFPCProcessCls::RFPCMainProcess_GPU() {
|
|||
gdalImage demlandcls(this->LandCoverPath);// 地表覆盖类型
|
||||
gdalImage demsloperxyz(this->demsloperPath);// 地面坡向
|
||||
|
||||
long demRow = demxyz.height;
|
||||
long demCol = demxyz.width;
|
||||
long demRow = demxyz.height;
|
||||
long demCol = demxyz.width;
|
||||
|
||||
|
||||
//处理地表覆盖
|
||||
|
@ -630,7 +630,7 @@ ErrorCode RFPCProcessCls::RFPCMainProcess_GPU() {
|
|||
HostToDevice(h_clsSigmaParam, d_clsSigmaParam, sizeof(CUDASigmaParam) * clamapid);
|
||||
|
||||
// 处理地面坐标
|
||||
long blockline = getBlockRows(TargetMemoryMB, demCol, sizeof(double));
|
||||
long blockline = getBlockRows(TargetMemoryMB, demCol, sizeof(double));
|
||||
double* h_dem_x = (double*)mallocCUDAHost(sizeof(double) * blockline * demCol);
|
||||
double* h_dem_y = (double*)mallocCUDAHost(sizeof(double) * blockline * demCol);
|
||||
double* h_dem_z = (double*)mallocCUDAHost(sizeof(double) * blockline * demCol);
|
||||
|
@ -641,7 +641,8 @@ ErrorCode RFPCProcessCls::RFPCMainProcess_GPU() {
|
|||
|
||||
|
||||
/** 处理回波***************************************************/
|
||||
long echo_block_rows = getBlockRows(5000, freqnum, sizeof(float));
|
||||
long echo_block_rows = getBlockRows(5000, freqnum, sizeof(float)*2);
|
||||
echo_block_rows = echo_block_rows < PRFCount ? echo_block_rows : PRFCount;
|
||||
float* h_echo_block_real = (float*)mallocCUDAHost(sizeof(float) * echo_block_rows * freqnum);
|
||||
float* h_echo_block_imag = (float*)mallocCUDAHost(sizeof(float) * echo_block_rows * freqnum);
|
||||
|
||||
|
@ -668,22 +669,15 @@ ErrorCode RFPCProcessCls::RFPCMainProcess_GPU() {
|
|||
Eigen::MatrixXd demsloper_z = demsloperxyz.getData(startline, 0, blockline, demCol, 3);
|
||||
Eigen::MatrixXd landcover = demlandcls.getData(startline, 0, blockline, demCol, 1);
|
||||
|
||||
long temp_dem_row = dem_x.rows();
|
||||
long temp_dem_row = dem_x.rows();
|
||||
long temp_dem_col = dem_x.cols();
|
||||
long temp_dem_count = dem_x.count();
|
||||
|
||||
|
||||
|
||||
// 更新数据格式
|
||||
for (long i = 0; i < temp_dem_row; i++) {
|
||||
for (long j = 0; j < temp_dem_col; j++) {
|
||||
|
||||
#ifdef __PRFDEBUG__
|
||||
h_dem_x[i * temp_dem_col + j] = -2028380.6250000; double(dem_x(i, j));
|
||||
h_dem_y[i * temp_dem_col + j] = 4139373.250000; double(dem_y(i, j));
|
||||
h_dem_z[i * temp_dem_col + j] = 4393382.500000; double(dem_z(i, j));
|
||||
h_demsloper_x[i * temp_dem_col + j] = 4393382.500000; double(demsloper_x(i, j));
|
||||
h_demsloper_y[i * temp_dem_col + j] = 446.923950; double(demsloper_y(i, j));
|
||||
h_demsloper_z[i * temp_dem_col + j] = -219.002213; double(demsloper_z(i, j));
|
||||
h_demcls[i * temp_dem_col + j] = clamap[80];// clamap[long(landcover(i, j))];
|
||||
#else
|
||||
h_dem_x[i * temp_dem_col + j] = double(dem_x(i, j));
|
||||
h_dem_y[i * temp_dem_col + j] = double(dem_y(i, j));
|
||||
h_dem_z[i * temp_dem_col + j] = double(dem_z(i, j));
|
||||
|
@ -691,9 +685,6 @@ ErrorCode RFPCProcessCls::RFPCMainProcess_GPU() {
|
|||
h_demsloper_y[i * temp_dem_col + j] = double(demsloper_y(i, j));
|
||||
h_demsloper_z[i * temp_dem_col + j] = double(demsloper_z(i, j));
|
||||
h_demcls[i * temp_dem_col + j] = clamap[long(landcover(i, j))];
|
||||
#endif
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -723,7 +714,7 @@ ErrorCode RFPCProcessCls::RFPCMainProcess_GPU() {
|
|||
h_echo_block_real, h_echo_block_imag// 输出回波
|
||||
);
|
||||
|
||||
PRINT("dem : %d - %d / %d , echo: %d -%d / %d", startline, startline+ temp_dem_row, demRow, sprfid, sprfid+ PRF_len, PRFCount);
|
||||
PRINT("dem : %d - %d / %d , echo: %d -%d / %d \n", startline, startline+ temp_dem_row, demRow, sprfid, sprfid+ PRF_len, PRFCount);
|
||||
}
|
||||
|
||||
|
||||
|
@ -752,7 +743,6 @@ ErrorCode RFPCProcessCls::RFPCMainProcess_GPU() {
|
|||
FreeCUDAHost(h_demsloper_x);
|
||||
FreeCUDAHost(h_demsloper_y);
|
||||
FreeCUDAHost(h_demsloper_z);
|
||||
FreeCUDAHost(h_demsloper_z);
|
||||
FreeCUDAHost(h_demcls);
|
||||
FreeCUDAHost(h_echo_block_real);
|
||||
FreeCUDAHost(h_echo_block_imag);
|
||||
|
|
43
main.cpp
43
main.cpp
|
@ -2,9 +2,52 @@
|
|||
#include <QtWidgets/QApplication>
|
||||
#include "RegisterToolbox.h"
|
||||
|
||||
#include <QCoreApplication>
|
||||
#include <QDebug>
|
||||
#include <QFile>
|
||||
#include <QTextStream>
|
||||
#include <QDateTime>
|
||||
|
||||
|
||||
|
||||
// ×Ô¶¨ÒåÏûÏ¢´¦ÀíÆ÷º¯Êý
|
||||
void customMessageHandler(QtMsgType type, const QMessageLogContext& context, const QString& msg)
|
||||
{
|
||||
QByteArray localMsg = msg.toLocal8Bit();
|
||||
const char* file = context.file ? context.file : "";
|
||||
const char* function = context.function ? context.function : "";
|
||||
QString dateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss.zzz");
|
||||
|
||||
QFile outFile("application.log");
|
||||
outFile.open(QIODevice::WriteOnly | QIODevice::Append);
|
||||
QTextStream ts(&outFile);
|
||||
|
||||
switch (type) {
|
||||
case QtDebugMsg:
|
||||
ts << dateTime << " Debug: " << localMsg.constData() << " (" << file << ":" << context.line << ", " << function << ")\n";
|
||||
break;
|
||||
case QtInfoMsg:
|
||||
ts << dateTime << " Info: " << localMsg.constData() << " (" << file << ":" << context.line << ", " << function << ")\n";
|
||||
break;
|
||||
case QtWarningMsg:
|
||||
ts << dateTime << " Warning: " << localMsg.constData() << " (" << file << ":" << context.line << ", " << function << ")\n";
|
||||
break;
|
||||
case QtCriticalMsg:
|
||||
ts << dateTime << " Critical: " << localMsg.constData() << " (" << file << ":" << context.line << ", " << function << ")\n";
|
||||
break;
|
||||
case QtFatalMsg:
|
||||
ts << dateTime << " Fatal: " << localMsg.constData() << " (" << file << ":" << context.line << ", " << function << ")\n" ;
|
||||
abort();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
QApplication a(argc, argv);
|
||||
//qInstallMessageHandler(customMessageHandler);
|
||||
|
||||
RasterProcessTool* w=new RasterProcessTool;// Ö÷½çÃæ
|
||||
RegisterPreToolBox(w);
|
||||
w->show();
|
||||
|
|
Loading…
Reference in New Issue