重新调整

pull/3/head
陈增辉 2025-01-20 17:39:29 +08:00
parent ea8ed343f7
commit 9cf05eae73
6 changed files with 69 additions and 90 deletions

View File

@ -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"

View File

@ -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

View File

@ -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("");
}

View File

@ -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>

View File

@ -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);

View File

@ -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();