Fix pooling, add return code in each test, add return code handling in test_all_tests script
Signed-off-by: Micaela Verucchi <micaelaverucchi@gmail.com>
This commit is contained in:
@@ -72,17 +72,17 @@ class ImuOdom {
|
||||
tk::dnn::Input *x0 = new tk::dnn::Input (net, dim0, i0_d);
|
||||
tk::dnn::Conv2d *x0_0 = new tk::dnn::Conv2d (net, 128, 1, 11, 1, 1, 0, 0, c0_bin);
|
||||
tk::dnn::Conv2d *x0_1 = new tk::dnn::Conv2d (net, 128, 1, 11, 1, 1, 0, 0, c1_bin);
|
||||
tk::dnn::Pooling *x0_2 = new tk::dnn::Pooling(net, 1, 3, 1, 3, tk::dnn::tkdnnPoolingMode_t::POOLING_MAX);
|
||||
tk::dnn::Pooling *x0_2 = new tk::dnn::Pooling(net, 1, 3, 1, 3 , 0, 0, tk::dnn::tkdnnPoolingMode_t::POOLING_MAX);
|
||||
|
||||
tk::dnn::Input *x1 = new tk::dnn::Input (net, dim1, i1_d);
|
||||
tk::dnn::Conv2d *x1_0 = new tk::dnn::Conv2d (net, 128, 1, 11, 1, 1, 0, 0, c2_bin);
|
||||
tk::dnn::Conv2d *x1_1 = new tk::dnn::Conv2d (net, 128, 1, 11, 1, 1, 0, 0, c3_bin);
|
||||
tk::dnn::Pooling *x1_2 = new tk::dnn::Pooling(net, 1, 3, 1, 3, tk::dnn::tkdnnPoolingMode_t::POOLING_MAX);
|
||||
tk::dnn::Pooling *x1_2 = new tk::dnn::Pooling(net, 1, 3, 1, 3, 0, 0, tk::dnn::tkdnnPoolingMode_t::POOLING_MAX);
|
||||
|
||||
tk::dnn::Input *x2 = new tk::dnn::Input (net, dim2, i2_d);
|
||||
tk::dnn::Conv2d *x2_0 = new tk::dnn::Conv2d (net, 128, 1, 11, 1, 1, 0, 0, c4_bin);
|
||||
tk::dnn::Conv2d *x2_1 = new tk::dnn::Conv2d (net, 128, 1, 11, 1, 1, 0, 0, c5_bin);
|
||||
tk::dnn::Pooling *x2_2 = new tk::dnn::Pooling(net, 1, 3, 1, 3, tk::dnn::tkdnnPoolingMode_t::POOLING_MAX);
|
||||
tk::dnn::Pooling *x2_2 = new tk::dnn::Pooling(net, 1, 3, 1, 3, 0, 0, tk::dnn::tkdnnPoolingMode_t::POOLING_MAX);
|
||||
|
||||
tk::dnn::Layer *concat_l[3] = { x0_2, x1_2, x2_2 };
|
||||
tk::dnn::Route *concat = new tk::dnn::Route(net, concat_l, 3);
|
||||
|
||||
@@ -407,8 +407,9 @@ protected:
|
||||
*/
|
||||
typedef enum {
|
||||
POOLING_MAX = 0,
|
||||
POOLING_AVERAGE = 1, // count for average includes padded values
|
||||
POOLING_AVERAGE_EXCLUDE_PADDING = 2 // count for average does not include padded values
|
||||
POOLING_AVERAGE = 1, // count for average includes padded values
|
||||
POOLING_AVERAGE_EXCLUDE_PADDING = 2, // count for average does not include padded values
|
||||
POOLING_MAX_FIXEDSIZE = 100 // max pool darknet fashion
|
||||
} tkdnnPoolingMode_t;
|
||||
|
||||
/**
|
||||
@@ -421,13 +422,13 @@ public:
|
||||
int winH, winW;
|
||||
int strideH, strideW;
|
||||
int paddingH, paddingW;
|
||||
bool maxpoolfixedsize;
|
||||
bool size;
|
||||
tkdnnPoolingMode_t pool_mode;
|
||||
|
||||
Pooling(Network *net, int winH, int winW,
|
||||
int strideH, int strideW,
|
||||
int paddingH = 0, int paddingW = 0,
|
||||
tkdnnPoolingMode_t pool_mode = POOLING_MAX, bool final = false, bool test=false);
|
||||
tkdnnPoolingMode_t pool_mode = POOLING_MAX, bool final = false);
|
||||
virtual ~Pooling();
|
||||
virtual layerType_t getLayerType() { return LAYER_POOLING; };
|
||||
|
||||
|
||||
@@ -93,6 +93,12 @@
|
||||
} \
|
||||
}
|
||||
|
||||
typedef enum {
|
||||
ERROR_CUDNN = 2,
|
||||
ERROR_TKDNN = 4,
|
||||
ERROR_CUDNNvsTENSORRT = 8
|
||||
} resultError_t;
|
||||
|
||||
void printCenteredTitle(const char *title, char fill, int dim = 30);
|
||||
bool fileExist(const char *fname);
|
||||
void downloadWeightsifDoNotExist(const std::string& input_bin, const std::string& test_folder, const std::string& weights_url);
|
||||
|
||||
@@ -5,14 +5,26 @@ cd build
|
||||
RED='\033[1;31m'
|
||||
GREEN='\033[1;32m'
|
||||
ORANGE='\033[1;33m'
|
||||
PINK='\033[1;95m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
function print_output {
|
||||
if [ $1 -eq 0 ]
|
||||
then
|
||||
if [ $1 -eq 0 ]; then
|
||||
echo -e "$2 ${GREEN}OK${NC}"
|
||||
elif [ $1 -eq 1 ]; then
|
||||
echo -e "$2 ${RED}FATAL ERROR${NC}"
|
||||
elif [ $1 -eq 2 ] || [ $1 -eq 10 ]; then
|
||||
echo -e "$2 ${PINK}CUDNN ERROR${NC}"
|
||||
elif [ $1 -eq 4 ] || [ $1 -eq 12 ]; then
|
||||
echo -e "$2 ${PINK}TENSORRT ERROR${NC}"
|
||||
elif [ $1 -eq 8 ]; then
|
||||
echo -e "$2 ${PINK}CUDNN vs TENSORRT ERROR${NC}"
|
||||
elif [ $1 -eq 6 ]; then
|
||||
echo -e "$2 ${PINK}CUDNN & TENSORTRT ERROR${NC}"
|
||||
elif [ $1 -eq 14 ]; then
|
||||
echo -e "$2 ${PINK}ERROR FOR EVERY CHECK${NC}"
|
||||
else
|
||||
echo -e "$2 ${RED}NOT OKAY${NC}"
|
||||
echo -e "$2 ${RED}NOT OKAY (OPENCV maybe)${NC}"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -354,7 +354,7 @@ ILayer* NetworkRT::convert_layer(ITensor *input, Pooling *l) {
|
||||
if(l->pool_mode == tkdnnPoolingMode_t::POOLING_AVERAGE) ptype = PoolingType::kAVERAGE;
|
||||
if(l->pool_mode == tkdnnPoolingMode_t::POOLING_AVERAGE_EXCLUDE_PADDING) ptype = PoolingType::kMAX_AVERAGE_BLEND;
|
||||
|
||||
if(l->maxpoolfixedsize)
|
||||
if(l->pool_mode == tkdnnPoolingMode_t::POOLING_MAX_FIXEDSIZE)
|
||||
{
|
||||
IPlugin *plugin = new MaxPoolFixedSizeRT(l->output_dim.c, l->output_dim.h, l->output_dim.w, l->output_dim.n, l->strideH, l->strideW, l->winH, l->winH-1);
|
||||
IPluginLayer *lRT = networkRT->addPlugin(&input, 1, *plugin);
|
||||
|
||||
+13
-21
@@ -7,7 +7,7 @@ namespace tk { namespace dnn {
|
||||
|
||||
Pooling::Pooling( Network *net, int winH, int winW, int strideH, int strideW,
|
||||
int paddingH, int paddingW,
|
||||
tkdnnPoolingMode_t pool_mode, bool final, bool maxpoolfixedsize) :
|
||||
tkdnnPoolingMode_t pool_mode, bool final) :
|
||||
Layer(net, final) {
|
||||
|
||||
this->winH = winH;
|
||||
@@ -17,7 +17,6 @@ Pooling::Pooling( Network *net, int winH, int winW, int strideH, int strideW,
|
||||
this->pool_mode = pool_mode;
|
||||
this->paddingH = paddingH;
|
||||
this->paddingW = paddingW;
|
||||
this->maxpoolfixedsize = maxpoolfixedsize;
|
||||
|
||||
checkCUDNN( cudnnCreatePoolingDescriptor(&poolingDesc) );
|
||||
|
||||
@@ -40,9 +39,10 @@ Pooling::Pooling( Network *net, int winH, int winW, int strideH, int strideW,
|
||||
n = l;
|
||||
}
|
||||
|
||||
|
||||
cudnnPoolingMode_t cudnn_pool_mode = cudnnPoolingMode_t(pool_mode);
|
||||
if(pool_mode == POOLING_MAX_FIXEDSIZE) cudnn_pool_mode = cudnnPoolingMode_t(tkdnnPoolingMode_t::POOLING_MAX);
|
||||
|
||||
checkCUDNN( cudnnSetPooling2dDescriptor(poolingDesc, cudnnPoolingMode_t(pool_mode),
|
||||
checkCUDNN( cudnnSetPooling2dDescriptor(poolingDesc, cudnn_pool_mode,
|
||||
CUDNN_NOT_PROPAGATE_NAN, winH, winW, paddingH, paddingW, strideH, strideW) );
|
||||
|
||||
checkCUDNN( cudnnSetTensor4dDescriptor(srcTensorDesc,
|
||||
@@ -52,18 +52,16 @@ Pooling::Pooling( Network *net, int winH, int winW, int strideH, int strideW,
|
||||
// checkCUDNN( cudnnGetPooling2dForwardOutputDim(poolingDesc, srcTensorDesc, &n, &c, &h, &w));
|
||||
|
||||
//compute w and h as in darknet
|
||||
int padH = paddingH == 0? winH -1 : paddingH;
|
||||
int padW = paddingW == 0? winW -1 : paddingW;
|
||||
|
||||
if(final){
|
||||
h = (h + 2*paddingH - winH)/strideH +1 ;
|
||||
w = (w + 2*paddingW - winW)/strideW +1;
|
||||
}
|
||||
else{
|
||||
if(pool_mode == tkdnnPoolingMode_t::POOLING_MAX_FIXEDSIZE){
|
||||
int padH = paddingH == 0? winH -1 : paddingH;
|
||||
int padW = paddingW == 0? winW -1 : paddingW;
|
||||
h = (h + padH - winH)/strideH +1;
|
||||
w = (w + padW - winW)/strideW +1;
|
||||
}
|
||||
|
||||
else{
|
||||
h = (h + 2*paddingH - winH)/strideH +1 ;
|
||||
w = (w + 2*paddingW - winW)/strideW +1;
|
||||
}
|
||||
|
||||
// h = (h + winH*this->paddingH)/strideH;
|
||||
// w = (w + winW*this->paddingW)/strideW;
|
||||
@@ -112,22 +110,16 @@ dnnType* Pooling::infer(dataDim_t &dim, dnnType* srcData) {
|
||||
poolDst = tmpOutputData;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(this->maxpoolfixedsize)
|
||||
{
|
||||
if(pool_mode == tkdnnPoolingMode_t::POOLING_MAX_FIXEDSIZE){
|
||||
MaxPoolingForward(poolSrc, poolDst, dim.n, dim.c, dim.h, dim.w, this->strideH, this->strideW, this->winH, this->winH-1);
|
||||
}
|
||||
else
|
||||
{
|
||||
else{
|
||||
dnnType alpha = dnnType(1);
|
||||
dnnType beta = dnnType(0);
|
||||
checkCUDNN( cudnnPoolingForward(net->cudnnHandle, poolingDesc,
|
||||
&alpha, srcTensorDesc, poolSrc,
|
||||
&beta, dstTensorDesc, poolDst) );
|
||||
|
||||
}
|
||||
|
||||
|
||||
//update dim
|
||||
dim = output_dim;
|
||||
|
||||
@@ -342,15 +342,15 @@ int main()
|
||||
tk::dnn::Activation a83(&net, tk::dnn::ACTIVATION_LEAKY);
|
||||
|
||||
//SPP
|
||||
tk::dnn::Pooling p84(&net, 5, 5, 1, 1,0,0, tk::dnn::POOLING_MAX, false, true);
|
||||
tk::dnn::Pooling p84(&net, 5, 5, 1, 1,0,0, tk::dnn::POOLING_MAX_FIXEDSIZE);
|
||||
tk::dnn::Layer *r85_layers[1] = {&a83};
|
||||
tk::dnn::Route r85(&net, r85_layers, 1);
|
||||
|
||||
tk::dnn::Pooling p86(&net, 9, 9, 1, 1,0,0, tk::dnn::POOLING_MAX, false, true);
|
||||
tk::dnn::Pooling p86(&net, 9, 9, 1, 1,0,0, tk::dnn::POOLING_MAX_FIXEDSIZE);
|
||||
tk::dnn::Layer *r87_layers[1] = {&a83};
|
||||
tk::dnn::Route r87(&net, r87_layers, 1);
|
||||
|
||||
tk::dnn::Pooling p88(&net, 13, 13, 1, 1, 12, 12, tk::dnn::POOLING_MAX, false, true);
|
||||
tk::dnn::Pooling p88(&net, 13, 13, 1, 1, 12, 12, tk::dnn::POOLING_MAX_FIXEDSIZE);
|
||||
tk::dnn::Layer *r89_layers[4] = {&p88, &p86, &p84, &a83};
|
||||
tk::dnn::Route r89(&net, r89_layers, 4);
|
||||
//END SPP
|
||||
@@ -536,18 +536,19 @@ int main()
|
||||
for (int i = 0; i < 3; i++)
|
||||
rt_out[i] = (dnnType *)netRT.buffersRT[i + 1];
|
||||
|
||||
int ret_cudnn = 0, ret_tensorrt = 0, ret_cudnn_tensorrt = 0;
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
printCenteredTitle((std::string(" YOLO ") + std::to_string(i) + " CHECK RESULTS ").c_str(), '=', 30);
|
||||
dnnType *out, *out_h;
|
||||
int odim = out_dim[i].tot();
|
||||
readBinaryFile(output_bins[i], odim, &out_h, &out);
|
||||
std::cout << "CUDNN vs correct";
|
||||
checkResult(odim, cudnn_out[i], out);
|
||||
std::cout << "TRT vs correct";
|
||||
checkResult(odim, rt_out[i], out);
|
||||
std::cout << "CUDNN vs TRT ";
|
||||
checkResult(odim, cudnn_out[i], rt_out[i]);
|
||||
std::cout<<"CUDNN vs correct";
|
||||
ret_cudnn |= checkResult(odim, cudnn_out[i], out) == 0 ? 0: ERROR_CUDNN;
|
||||
std::cout<<"TRT vs correct";
|
||||
ret_tensorrt |= checkResult(odim, rt_out[i], out) == 0 ? 0 : ERROR_TKDNN;
|
||||
std::cout<<"CUDNN vs TRT ";
|
||||
ret_cudnn_tensorrt |= checkResult(odim, cudnn_out[i], rt_out[i]) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
}
|
||||
return 0;
|
||||
return ret_cudnn | ret_tensorrt | ret_cudnn_tensorrt;
|
||||
}
|
||||
|
||||
@@ -339,12 +339,12 @@ int main()
|
||||
int odim = out_dim.tot();
|
||||
readBinaryFile(output_bin, odim, &out_h, &out);
|
||||
|
||||
std::cout << "CUDNN vs correct";
|
||||
checkResult(odim, cudnn_out, out);
|
||||
std::cout << "TRT vs correct";
|
||||
checkResult(odim, rt_out, out);
|
||||
std::cout << "CUDNN vs TRT ";
|
||||
checkResult(odim, cudnn_out, rt_out);
|
||||
std::cout<<"CUDNN vs correct";
|
||||
int ret_cudnn = checkResult(odim, cudnn_out, out) == 0 ? 0: ERROR_CUDNN;
|
||||
std::cout<<"TRT vs correct";
|
||||
int ret_tensorrt = checkResult(odim, rt_out, out) == 0 ? 0 : ERROR_TKDNN;
|
||||
std::cout<<"CUDNN vs TRT ";
|
||||
int ret_cudnn_tensorrt = checkResult(odim, cudnn_out, rt_out) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
|
||||
return 0;
|
||||
return ret_cudnn | ret_tensorrt | ret_cudnn_tensorrt;
|
||||
}
|
||||
|
||||
@@ -501,6 +501,7 @@ int main()
|
||||
|
||||
tk::dnn::Layer *outs[3] = { hm, wh, reg };
|
||||
int out_count = 1;
|
||||
int ret_cudnn = 0, ret_tensorrt = 0, ret_cudnn_tensorrt = 0;
|
||||
for(int i=0; i<3; i++) {
|
||||
printCenteredTitle((std::string(" RESNET CHECK RESULTS ") + std::to_string(i) + " ").c_str(), '=', 30);
|
||||
|
||||
@@ -517,13 +518,12 @@ int main()
|
||||
if(i==0)
|
||||
out_count ++;
|
||||
|
||||
std::cout << "CUDNN vs correct";
|
||||
checkResult(odim, cudnn_out, out);
|
||||
std::cout << "TRT vs correct";
|
||||
checkResult(odim, rt_out, out);
|
||||
std::cout << "CUDNN vs TRT ";
|
||||
checkResult(odim, cudnn_out, rt_out);
|
||||
}
|
||||
|
||||
return 0;
|
||||
std::cout<<"CUDNN vs correct";
|
||||
ret_cudnn |= checkResult(odim, cudnn_out, out) == 0 ? 0: ERROR_CUDNN;
|
||||
std::cout<<"TRT vs correct";
|
||||
ret_tensorrt |= checkResult(odim, rt_out, out) == 0 ? 0 : ERROR_TKDNN;
|
||||
std::cout<<"CUDNN vs TRT ";
|
||||
ret_cudnn_tensorrt |= checkResult(odim, cudnn_out, rt_out) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
}
|
||||
return ret_cudnn | ret_tensorrt | ret_cudnn_tensorrt;
|
||||
}
|
||||
|
||||
@@ -51,6 +51,7 @@ int main() {
|
||||
|
||||
std::ofstream path("path.txt");
|
||||
|
||||
int ret_cudnn = 0;
|
||||
for(int i=0; i<N; i++) {
|
||||
std::cout<<"i: "<<i<<"\n";
|
||||
//TIMER_START
|
||||
@@ -65,9 +66,9 @@ int main() {
|
||||
// Print real test
|
||||
printCenteredTitle( (std::string(" CHECK RESULT ") + std::to_string(i) + " ").c_str() , '=');
|
||||
ImuNet.odim0.print();
|
||||
checkResult(ImuNet.odim0.tot(), out0, ImuNet.o0_d);
|
||||
ret_cudnn |= checkResult(ImuNet.odim0.tot(), out0, ImuNet.o0_d) == 0 ? 0 : ERROR_CUDNN;
|
||||
ImuNet.odim1.print();
|
||||
checkResult(ImuNet.odim0.tot(), out1, ImuNet.o1_d);
|
||||
ret_cudnn |= checkResult(ImuNet.odim0.tot(), out1, ImuNet.o1_d) == 0 ? 0 : ERROR_CUDNN;
|
||||
|
||||
i0_h += ImuNet.dim0.tot();
|
||||
i1_h += ImuNet.dim1.tot();
|
||||
@@ -77,5 +78,5 @@ int main() {
|
||||
}
|
||||
|
||||
system("cat path.txt | gnuplot -p -e \"set datafile separator ' '; plot '-'\"");
|
||||
return 0;
|
||||
return ret_cudnn;
|
||||
}
|
||||
|
||||
@@ -507,17 +507,19 @@ int main()
|
||||
dnnType *out2, *out2_h;
|
||||
int odim2 = out_dim2.tot();
|
||||
readBinaryFile(output_bin2, odim2, &out2_h, &out2);
|
||||
int ret_cudnn = 0, ret_tensorrt = 0, ret_cudnn_tensorrt = 0;
|
||||
|
||||
std::cout << "CUDNN vs correct" << std::endl;
|
||||
checkResult(odim1, cudnn_out1, out1);
|
||||
checkResult(odim2, cudnn_out2, out2);
|
||||
ret_cudnn |= checkResult(odim1, cudnn_out1, out1) == 0 ? 0 : ERROR_CUDNN;
|
||||
ret_cudnn |= checkResult(odim2, cudnn_out2, out2) == 0 ? 0 : ERROR_CUDNN;
|
||||
|
||||
std::cout << "TRT vs correct" << std::endl;
|
||||
checkResult(odim1, rt_out1, out1);
|
||||
checkResult(odim2, rt_out2, out2);
|
||||
ret_tensorrt |= checkResult(odim1, rt_out1, out1) == 0 ? 0 : ERROR_TKDNN;
|
||||
ret_tensorrt |= checkResult(odim2, rt_out2, out2) == 0 ? 0 : ERROR_TKDNN;
|
||||
|
||||
std::cout << "CUDNN vs TRT " << std::endl;
|
||||
checkResult(odim1, cudnn_out1, rt_out1);
|
||||
checkResult(odim2, cudnn_out2, rt_out2);
|
||||
ret_cudnn_tensorrt |= checkResult(odim1, cudnn_out1, rt_out1) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
ret_cudnn_tensorrt |= checkResult(odim2, cudnn_out2, rt_out2) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
|
||||
std::cout << "---------------------------------------------------" << std::endl;
|
||||
std::cout << "Confidence CUDNN" << std::endl;
|
||||
@@ -533,8 +535,8 @@ int main()
|
||||
std::cout << "---------------------------------------------------" << std::endl;
|
||||
|
||||
std::cout << "CUDNN vs TRT " << std::endl;
|
||||
checkResult(conf->output_dim.tot(), conf->dstData, rt_out3);
|
||||
checkResult(loc->output_dim.tot(), loc->dstData, rt_out4);
|
||||
ret_cudnn_tensorrt |= checkResult(conf->output_dim.tot(), conf->dstData, rt_out3) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
ret_cudnn_tensorrt |= checkResult(loc->output_dim.tot(), loc->dstData, rt_out4) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
|
||||
return 0;
|
||||
return ret_cudnn | ret_tensorrt | ret_cudnn_tensorrt;
|
||||
}
|
||||
|
||||
@@ -506,17 +506,19 @@ int main()
|
||||
dnnType *out2, *out2_h;
|
||||
int odim2 = out_dim2.tot();
|
||||
readBinaryFile(output_bin2, odim2, &out2_h, &out2);
|
||||
int ret_cudnn = 0, ret_tensorrt = 0, ret_cudnn_tensorrt = 0;
|
||||
|
||||
std::cout << "CUDNN vs correct" << std::endl;
|
||||
checkResult(odim1, cudnn_out1, out1);
|
||||
checkResult(odim2, cudnn_out2, out2);
|
||||
ret_cudnn |= checkResult(odim1, cudnn_out1, out1) == 0 ? 0 : ERROR_CUDNN;
|
||||
ret_cudnn |= checkResult(odim2, cudnn_out2, out2) == 0 ? 0 : ERROR_CUDNN;
|
||||
|
||||
std::cout << "TRT vs correct" << std::endl;
|
||||
checkResult(odim1, rt_out1, out1);
|
||||
checkResult(odim2, rt_out2, out2);
|
||||
ret_tensorrt |= checkResult(odim1, rt_out1, out1) == 0 ? 0 : ERROR_TKDNN;
|
||||
ret_tensorrt |= checkResult(odim2, rt_out2, out2) == 0 ? 0 : ERROR_TKDNN;
|
||||
|
||||
std::cout << "CUDNN vs TRT " << std::endl;
|
||||
checkResult(odim1, cudnn_out1, rt_out1);
|
||||
checkResult(odim2, cudnn_out2, rt_out2);
|
||||
ret_cudnn_tensorrt |= checkResult(odim1, cudnn_out1, rt_out1) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
ret_cudnn_tensorrt |= checkResult(odim2, cudnn_out2, rt_out2) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
|
||||
std::cout << "---------------------------------------------------" << std::endl;
|
||||
std::cout << "Confidence CUDNN" << std::endl;
|
||||
@@ -532,8 +534,8 @@ int main()
|
||||
std::cout << "---------------------------------------------------" << std::endl;
|
||||
|
||||
std::cout << "CUDNN vs TRT " << std::endl;
|
||||
checkResult(conf->output_dim.tot(), conf->dstData, rt_out3);
|
||||
checkResult(loc->output_dim.tot(), loc->dstData, rt_out4);
|
||||
ret_cudnn_tensorrt |= checkResult(conf->output_dim.tot(), conf->dstData, rt_out3) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
ret_cudnn_tensorrt |= checkResult(loc->output_dim.tot(), loc->dstData, rt_out4) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
|
||||
return 0;
|
||||
return ret_cudnn | ret_tensorrt | ret_cudnn_tensorrt;
|
||||
}
|
||||
|
||||
@@ -326,13 +326,13 @@ int main()
|
||||
dnnType *out, *out_h;
|
||||
int odim = out_dim.tot();
|
||||
readBinaryFile(output_bin, odim, &out_h, &out);
|
||||
std::cout << "CUDNN vs correct";
|
||||
checkResult(odim, cudnn_out, out);
|
||||
|
||||
std::cout<<"CUDNN vs correct";
|
||||
int ret_cudnn = checkResult(odim, cudnn_out, out) == 0 ? 0: ERROR_CUDNN;
|
||||
std::cout<<"TRT vs correct";
|
||||
int ret_tensorrt = checkResult(odim, rt_out, out) == 0 ? 0 : ERROR_TKDNN;
|
||||
std::cout<<"CUDNN vs TRT ";
|
||||
int ret_cudnn_tensorrt = checkResult(odim, cudnn_out, rt_out) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
|
||||
std::cout << "TRT vs correct";
|
||||
checkResult(odim, rt_out, out);
|
||||
std::cout << "CUDNN vs TRT ";
|
||||
checkResult(odim, cudnn_out, rt_out);
|
||||
|
||||
return 0;
|
||||
return ret_cudnn | ret_tensorrt | ret_cudnn_tensorrt;
|
||||
}
|
||||
|
||||
@@ -377,6 +377,7 @@ int main()
|
||||
|
||||
tk::dnn::Layer *outs[3] = { hm, wh, reg };
|
||||
int out_count = 1;
|
||||
int ret_cudnn = 0, ret_tensorrt = 0, ret_cudnn_tensorrt = 0;
|
||||
for(int i=0; i<3; i++) {
|
||||
printCenteredTitle((std::string(" RESNET CHECK RESULTS ") + std::to_string(i) + " ").c_str(), '=', 30);
|
||||
|
||||
@@ -397,12 +398,12 @@ int main()
|
||||
if(i==0)
|
||||
out_count ++;
|
||||
|
||||
std::cout << "CUDNN vs correct";
|
||||
checkResult(odim, cudnn_out, out);
|
||||
|
||||
std::cout << "TRT vs correct";
|
||||
checkResult(odim, rt_out, out);
|
||||
std::cout << "CUDNN vs TRT ";
|
||||
checkResult(odim, cudnn_out, rt_out);
|
||||
}
|
||||
std::cout<<"CUDNN vs correct";
|
||||
ret_cudnn |= checkResult(odim, cudnn_out, out) == 0 ? 0: ERROR_CUDNN;
|
||||
std::cout<<"TRT vs correct";
|
||||
ret_tensorrt |= checkResult(odim, rt_out, out) == 0 ? 0 : ERROR_TKDNN;
|
||||
std::cout<<"CUDNN vs TRT ";
|
||||
ret_cudnn_tensorrt |= checkResult(odim, cudnn_out, rt_out) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
}
|
||||
return ret_cudnn | ret_tensorrt | ret_cudnn_tensorrt;
|
||||
}
|
||||
|
||||
@@ -62,8 +62,12 @@ int main() {
|
||||
dnnType *out, *out_h;
|
||||
int out_dim = net.getOutputDim().tot();
|
||||
//readBinaryFile(output_bin, out_dim, &out_h, &out);
|
||||
//std::cout<<"CUDNN vs correct"; checkResult(out_dim, out_data, out);
|
||||
//std::cout<<"TRT vs correct"; checkResult(out_dim, out_data2, out);
|
||||
std::cout<<"CUDNN vs TRT "; checkResult(out_dim, out_data, out_data2);
|
||||
return 0;
|
||||
// std::cout<<"CUDNN vs correct";
|
||||
// int ret_cudnn = checkResult(out_dim, out_data, out) == 0 ? 0: ERROR_CUDNN;
|
||||
// std::cout<<"TRT vs correct";
|
||||
// int ret_tensorrt = checkResult(out_dim, out_data2, out) == 0 ? 0 : ERROR_TKDNN;
|
||||
std::cout<<"CUDNN vs TRT ";
|
||||
int ret_cudnn_tensorrt = checkResult(out_dim, out_data, out_data2) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
|
||||
return ret_cudnn_tensorrt;
|
||||
}
|
||||
|
||||
+15
-10
@@ -138,15 +138,20 @@ int main() {
|
||||
dnnType *out, *out_h;
|
||||
int out_dim = net.getOutputDim().tot();
|
||||
readBinaryFile(output_bin, out_dim, &out_h, &out);
|
||||
std::cout<<"CUDNN vs correct"; checkResult(out_dim, out_data, out);
|
||||
std::cout<<"TRT vs correct"; checkResult(out_dim, out_data2, out);
|
||||
std::cout<<"CUDNN vs TRT "; checkResult(out_dim, out_data, out_data2);
|
||||
|
||||
std::cout<<"\n\nDetected objects: \n";
|
||||
dnnType *output_h = new dnnType[rI.output_dim.tot()];
|
||||
checkCuda(cudaMemcpy(output_h, out_data2,
|
||||
rI.output_dim.tot()*sizeof(dnnType), cudaMemcpyDeviceToHost));
|
||||
rI.interpretData(output_h);
|
||||
rI.showImageResult(input_h);
|
||||
return 0;
|
||||
// std::cout<<"\n\nDetected objects: \n";
|
||||
// dnnType *output_h = new dnnType[rI.output_dim.tot()];
|
||||
// checkCuda(cudaMemcpy(output_h, out_data2,
|
||||
// rI.output_dim.tot()*sizeof(dnnType), cudaMemcpyDeviceToHost));
|
||||
// rI.interpretData(output_h);
|
||||
// rI.showImageResult(input_h);
|
||||
|
||||
std::cout<<"CUDNN vs correct";
|
||||
int ret_cudnn = checkResult(out_dim, out_data, out) == 0 ? 0: ERROR_CUDNN;
|
||||
std::cout<<"TRT vs correct";
|
||||
int ret_tensorrt = checkResult(out_dim, out_data2, out) == 0 ? 0 : ERROR_TKDNN;
|
||||
std::cout<<"CUDNN vs TRT ";
|
||||
int ret_cudnn_tensorrt = checkResult(out_dim, out_data, out_data2) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
|
||||
return ret_cudnn | ret_tensorrt | ret_cudnn_tensorrt;
|
||||
}
|
||||
|
||||
@@ -82,14 +82,18 @@ int main() {
|
||||
}
|
||||
for(int i=0; i<3; i++) rt_out[i] = (dnnType*)netRT.buffersRT[i+1];
|
||||
|
||||
int ret_cudnn = 0, ret_tensorrt = 0, ret_cudnn_tensorrt = 0;
|
||||
for(int i=0; i<3; i++) {
|
||||
printCenteredTitle((std::string(" YOLO ") + std::to_string(i) + " CHECK RESULTS ").c_str(), '=', 30);
|
||||
dnnType *out, *out_h;
|
||||
int odim = out_dim[i].tot();
|
||||
readBinaryFile(output_bins[i], odim, &out_h, &out);
|
||||
std::cout<<"CUDNN vs correct"; checkResult(odim, cudnn_out[i], out);
|
||||
std::cout<<"TRT vs correct"; checkResult(odim, rt_out[i], out);
|
||||
std::cout<<"CUDNN vs TRT "; checkResult(odim, cudnn_out[i], rt_out[i]);
|
||||
std::cout<<"CUDNN vs correct";
|
||||
ret_cudnn |= checkResult(odim, cudnn_out[i], out) == 0 ? 0: ERROR_CUDNN;
|
||||
std::cout<<"TRT vs correct";
|
||||
ret_tensorrt |= checkResult(odim, rt_out[i], out) == 0 ? 0 : ERROR_TKDNN;
|
||||
std::cout<<"CUDNN vs TRT ";
|
||||
ret_cudnn_tensorrt |= checkResult(odim, cudnn_out[i], rt_out[i]) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
}
|
||||
return 0;
|
||||
return ret_cudnn | ret_tensorrt | ret_cudnn_tensorrt;
|
||||
}
|
||||
|
||||
@@ -82,14 +82,18 @@ int main() {
|
||||
}
|
||||
for(int i=0; i<3; i++) rt_out[i] = (dnnType*)netRT.buffersRT[i+1];
|
||||
|
||||
int ret_cudnn = 0, ret_tensorrt = 0, ret_cudnn_tensorrt = 0;
|
||||
for(int i=0; i<3; i++) {
|
||||
printCenteredTitle((std::string(" YOLO ") + std::to_string(i) + " CHECK RESULTS ").c_str(), '=', 30);
|
||||
dnnType *out, *out_h;
|
||||
int odim = out_dim[i].tot();
|
||||
readBinaryFile(output_bins[i], odim, &out_h, &out);
|
||||
std::cout<<"CUDNN vs correct"; checkResult(odim, cudnn_out[i], out);
|
||||
std::cout<<"TRT vs correct"; checkResult(odim, rt_out[i], out);
|
||||
std::cout<<"CUDNN vs TRT "; checkResult(odim, cudnn_out[i], rt_out[i]);
|
||||
std::cout<<"CUDNN vs correct";
|
||||
ret_cudnn |= checkResult(odim, cudnn_out[i], out) == 0 ? 0: ERROR_CUDNN;
|
||||
std::cout<<"TRT vs correct";
|
||||
ret_tensorrt |= checkResult(odim, rt_out[i], out) == 0 ? 0 : ERROR_TKDNN;
|
||||
std::cout<<"CUDNN vs TRT ";
|
||||
ret_cudnn_tensorrt |= checkResult(odim, cudnn_out[i], rt_out[i]) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
}
|
||||
return 0;
|
||||
return ret_cudnn | ret_tensorrt | ret_cudnn_tensorrt;
|
||||
}
|
||||
|
||||
@@ -80,14 +80,18 @@ int main() {
|
||||
}
|
||||
for(int i=0; i<3; i++) rt_out[i] = (dnnType*)netRT.buffersRT[i+1];
|
||||
|
||||
int ret_cudnn = 0, ret_tensorrt = 0, ret_cudnn_tensorrt = 0;
|
||||
for(int i=0; i<3; i++) {
|
||||
printCenteredTitle((std::string(" YOLO ") + std::to_string(i) + " CHECK RESULTS ").c_str(), '=', 30);
|
||||
dnnType *out, *out_h;
|
||||
int odim = out_dim[i].tot();
|
||||
readBinaryFile(output_bins[i], odim, &out_h, &out);
|
||||
std::cout<<"CUDNN vs correct"; checkResult(odim, cudnn_out[i], out);
|
||||
std::cout<<"TRT vs correct"; checkResult(odim, rt_out[i], out);
|
||||
std::cout<<"CUDNN vs TRT "; checkResult(odim, cudnn_out[i], rt_out[i]);
|
||||
std::cout<<"CUDNN vs correct";
|
||||
ret_cudnn |= checkResult(odim, cudnn_out[i], out) == 0 ? 0: ERROR_CUDNN;
|
||||
std::cout<<"TRT vs correct";
|
||||
ret_tensorrt |= checkResult(odim, rt_out[i], out) == 0 ? 0 : ERROR_TKDNN;
|
||||
std::cout<<"CUDNN vs TRT ";
|
||||
ret_cudnn_tensorrt |= checkResult(odim, cudnn_out[i], rt_out[i]) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
}
|
||||
return 0;
|
||||
return ret_cudnn | ret_tensorrt | ret_cudnn_tensorrt;
|
||||
}
|
||||
|
||||
@@ -82,14 +82,18 @@ int main() {
|
||||
}
|
||||
for(int i=0; i<3; i++) rt_out[i] = (dnnType*)netRT.buffersRT[i+1];
|
||||
|
||||
int ret_cudnn = 0, ret_tensorrt = 0, ret_cudnn_tensorrt = 0;
|
||||
for(int i=0; i<3; i++) {
|
||||
printCenteredTitle((std::string(" YOLO ") + std::to_string(i) + " CHECK RESULTS ").c_str(), '=', 30);
|
||||
dnnType *out, *out_h;
|
||||
int odim = out_dim[i].tot();
|
||||
readBinaryFile(output_bins[i], odim, &out_h, &out);
|
||||
std::cout<<"CUDNN vs correct"; checkResult(odim, cudnn_out[i], out);
|
||||
std::cout<<"TRT vs correct"; checkResult(odim, rt_out[i], out);
|
||||
std::cout<<"CUDNN vs TRT "; checkResult(odim, cudnn_out[i], rt_out[i]);
|
||||
std::cout<<"CUDNN vs correct";
|
||||
ret_cudnn |= checkResult(odim, cudnn_out[i], out) == 0 ? 0: ERROR_CUDNN;
|
||||
std::cout<<"TRT vs correct";
|
||||
ret_tensorrt |= checkResult(odim, rt_out[i], out) == 0 ? 0 : ERROR_TKDNN;
|
||||
std::cout<<"CUDNN vs TRT ";
|
||||
ret_cudnn_tensorrt |= checkResult(odim, cudnn_out[i], rt_out[i]) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
}
|
||||
return 0;
|
||||
return ret_cudnn | ret_tensorrt | ret_cudnn_tensorrt;
|
||||
}
|
||||
|
||||
@@ -80,14 +80,18 @@ int main() {
|
||||
}
|
||||
for(int i=0; i<3; i++) rt_out[i] = (dnnType*)netRT.buffersRT[i+1];
|
||||
|
||||
int ret_cudnn = 0, ret_tensorrt = 0, ret_cudnn_tensorrt = 0;
|
||||
for(int i=0; i<3; i++) {
|
||||
printCenteredTitle((std::string(" YOLO ") + std::to_string(i) + " CHECK RESULTS ").c_str(), '=', 30);
|
||||
dnnType *out, *out_h;
|
||||
int odim = out_dim[i].tot();
|
||||
readBinaryFile(output_bins[i], odim, &out_h, &out);
|
||||
std::cout<<"CUDNN vs correct"; checkResult(odim, cudnn_out[i], out);
|
||||
std::cout<<"TRT vs correct"; checkResult(odim, rt_out[i], out);
|
||||
std::cout<<"CUDNN vs TRT "; checkResult(odim, cudnn_out[i], rt_out[i]);
|
||||
std::cout<<"CUDNN vs correct";
|
||||
ret_cudnn |= checkResult(odim, cudnn_out[i], out) == 0 ? 0: ERROR_CUDNN;
|
||||
std::cout<<"TRT vs correct";
|
||||
ret_tensorrt |= checkResult(odim, rt_out[i], out) == 0 ? 0 : ERROR_TKDNN;
|
||||
std::cout<<"CUDNN vs TRT ";
|
||||
ret_cudnn_tensorrt |= checkResult(odim, cudnn_out[i], rt_out[i]) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
}
|
||||
return 0;
|
||||
return ret_cudnn | ret_tensorrt | ret_cudnn_tensorrt;
|
||||
}
|
||||
|
||||
@@ -82,14 +82,19 @@ int main() {
|
||||
}
|
||||
for(int i=0; i<3; i++) rt_out[i] = (dnnType*)netRT.buffersRT[i+1];
|
||||
|
||||
|
||||
int ret_cudnn = 0, ret_tensorrt = 0, ret_cudnn_tensorrt = 0;
|
||||
for(int i=0; i<3; i++) {
|
||||
printCenteredTitle((std::string(" YOLO ") + std::to_string(i) + " CHECK RESULTS ").c_str(), '=', 30);
|
||||
dnnType *out, *out_h;
|
||||
int odim = out_dim[i].tot();
|
||||
readBinaryFile(output_bins[i], odim, &out_h, &out);
|
||||
std::cout<<"CUDNN vs correct"; checkResult(odim, cudnn_out[i], out);
|
||||
std::cout<<"TRT vs correct"; checkResult(odim, rt_out[i], out);
|
||||
std::cout<<"CUDNN vs TRT "; checkResult(odim, cudnn_out[i], rt_out[i]);
|
||||
std::cout<<"CUDNN vs correct";
|
||||
ret_cudnn |= checkResult(odim, cudnn_out[i], out) == 0 ? 0: ERROR_CUDNN;
|
||||
std::cout<<"TRT vs correct";
|
||||
ret_tensorrt |= checkResult(odim, rt_out[i], out) == 0 ? 0 : ERROR_TKDNN;
|
||||
std::cout<<"CUDNN vs TRT ";
|
||||
ret_cudnn_tensorrt |= checkResult(odim, cudnn_out[i], rt_out[i]) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
}
|
||||
return 0;
|
||||
return ret_cudnn | ret_tensorrt | ret_cudnn_tensorrt;
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ int main() {
|
||||
|
||||
tk::dnn::Conv2d c10(&net, 512, 3, 3, 1, 1, 1, 1, c10_bin, true);
|
||||
tk::dnn::Activation a10(&net, tk::dnn::ACTIVATION_LEAKY);
|
||||
tk::dnn::Pooling p11(&net, 2, 2, 1, 1,0,0, tk::dnn::POOLING_MAX, false, true);
|
||||
tk::dnn::Pooling p11(&net, 2, 2, 1, 1,0,0, tk::dnn::POOLING_MAX_FIXEDSIZE);
|
||||
|
||||
tk::dnn::Conv2d c12(&net, 1024, 3, 3, 1, 1, 1, 1, c12_bin, true);
|
||||
tk::dnn::Activation a12(&net, tk::dnn::ACTIVATION_LEAKY);
|
||||
@@ -118,9 +118,13 @@ int main() {
|
||||
dnnType *out, *out_h;
|
||||
int out_dim = net.getOutputDim().tot();
|
||||
readBinaryFile(output_bin, out_dim, &out_h, &out);
|
||||
std::cout<<"CUDNN vs correct"; checkResult(out_dim, out_data, out);
|
||||
std::cout<<"TRT vs correct"; checkResult(out_dim, out_data2, out);
|
||||
std::cout<<"CUDNN vs TRT "; checkResult(out_dim, out_data, out_data2);
|
||||
|
||||
return 0;
|
||||
|
||||
std::cout<<"CUDNN vs correct";
|
||||
int ret_cudnn = checkResult(out_dim, out_data, out) == 0 ? 0: ERROR_CUDNN;
|
||||
std::cout<<"TRT vs correct";
|
||||
int ret_tensorrt = checkResult(out_dim, out_data2, out) == 0 ? 0 : ERROR_TKDNN;
|
||||
std::cout<<"CUDNN vs TRT ";
|
||||
int ret_cudnn_tensorrt = checkResult(out_dim, out_data, out_data2) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
|
||||
return ret_cudnn | ret_tensorrt | ret_cudnn_tensorrt;
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ int main() {
|
||||
|
||||
tk::dnn::Conv2d c10(&net, 512, 3, 3, 1, 1, 1, 1, c10_bin, true);
|
||||
tk::dnn::Activation a10(&net, tk::dnn::ACTIVATION_LEAKY);
|
||||
tk::dnn::Pooling p11(&net, 2, 2, 1, 1,0,0, tk::dnn::POOLING_MAX, false, true);
|
||||
tk::dnn::Pooling p11(&net, 2, 2, 1, 1,0,0, tk::dnn::POOLING_MAX_FIXEDSIZE);
|
||||
|
||||
tk::dnn::Conv2d c12(&net, 1024, 3, 3, 1, 1, 1, 1, c12_bin, true);
|
||||
tk::dnn::Activation a12(&net, tk::dnn::ACTIVATION_LEAKY);
|
||||
@@ -117,9 +117,12 @@ int main() {
|
||||
dnnType *out, *out_h;
|
||||
int out_dim = net.getOutputDim().tot();
|
||||
readBinaryFile(output_bin, out_dim, &out_h, &out);
|
||||
std::cout<<"CUDNN vs correct"; checkResult(out_dim, out_data, out);
|
||||
std::cout<<"TRT vs correct"; checkResult(out_dim, out_data2, out);
|
||||
std::cout<<"CUDNN vs TRT "; checkResult(out_dim, out_data, out_data2);
|
||||
|
||||
return 0;
|
||||
std::cout<<"CUDNN vs correct";
|
||||
int ret_cudnn = checkResult(out_dim, out_data, out) == 0 ? 0: ERROR_CUDNN;
|
||||
std::cout<<"TRT vs correct";
|
||||
int ret_tensorrt = checkResult(out_dim, out_data2, out) == 0 ? 0 : ERROR_TKDNN;
|
||||
std::cout<<"CUDNN vs TRT ";
|
||||
int ret_cudnn_tensorrt = checkResult(out_dim, out_data, out_data2) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
|
||||
return ret_cudnn | ret_tensorrt | ret_cudnn_tensorrt;
|
||||
}
|
||||
|
||||
@@ -52,7 +52,7 @@ int main() {
|
||||
|
||||
tk::dnn::Conv2d c10(&net, 512, 3, 3, 1, 1, 1, 1, c10_bin, true);
|
||||
tk::dnn::Activation a10(&net, tk::dnn::ACTIVATION_LEAKY);
|
||||
tk::dnn::Pooling p11(&net, 2, 2, 1, 1,0,0, tk::dnn::POOLING_MAX, false, true);
|
||||
tk::dnn::Pooling p11(&net, 2, 2, 1, 1,0,0, tk::dnn::POOLING_MAX_FIXEDSIZE);
|
||||
|
||||
tk::dnn::Conv2d c12(&net, 1024, 3, 3, 1, 1, 1, 1, c12_bin, true);
|
||||
tk::dnn::Activation a12(&net, tk::dnn::ACTIVATION_LEAKY);
|
||||
@@ -115,9 +115,13 @@ int main() {
|
||||
dnnType *out, *out_h;
|
||||
int out_dim = net.getOutputDim().tot();
|
||||
readBinaryFile(output_bin, out_dim, &out_h, &out);
|
||||
std::cout<<"CUDNN vs correct"; checkResult(out_dim, out_data, out);
|
||||
std::cout<<"TRT vs correct"; checkResult(out_dim, out_data2, out);
|
||||
std::cout<<"CUDNN vs TRT "; checkResult(out_dim, out_data, out_data2);
|
||||
|
||||
return 0;
|
||||
|
||||
std::cout<<"CUDNN vs correct";
|
||||
int ret_cudnn = checkResult(out_dim, out_data, out) == 0 ? 0: ERROR_CUDNN;
|
||||
std::cout<<"TRT vs correct";
|
||||
int ret_tensorrt = checkResult(out_dim, out_data2, out) == 0 ? 0 : ERROR_TKDNN;
|
||||
std::cout<<"CUDNN vs TRT ";
|
||||
int ret_cudnn_tensorrt = checkResult(out_dim, out_data, out_data2) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
|
||||
return ret_cudnn | ret_tensorrt | ret_cudnn_tensorrt;
|
||||
}
|
||||
|
||||
@@ -116,9 +116,12 @@ int main() {
|
||||
dnnType *out, *out_h;
|
||||
int out_dim = net.getOutputDim().tot();
|
||||
readBinaryFile(output_bin, out_dim, &out_h, &out);
|
||||
std::cout<<"CUDNN vs correct"; checkResult(out_dim, out_data, out);
|
||||
std::cout<<"TRT vs correct"; checkResult(out_dim, out_data2, out);
|
||||
std::cout<<"CUDNN vs TRT "; checkResult(out_dim, out_data, out_data2);
|
||||
|
||||
return 0;
|
||||
std::cout<<"CUDNN vs correct";
|
||||
int ret_cudnn = checkResult(out_dim, out_data, out) == 0 ? 0: ERROR_CUDNN;
|
||||
std::cout<<"TRT vs correct";
|
||||
int ret_tensorrt = checkResult(out_dim, out_data2, out) == 0 ? 0 : ERROR_TKDNN;
|
||||
std::cout<<"CUDNN vs TRT ";
|
||||
int ret_cudnn_tensorrt = checkResult(out_dim, out_data, out_data2) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
|
||||
return ret_cudnn | ret_tensorrt | ret_cudnn_tensorrt;
|
||||
}
|
||||
|
||||
+16
-10
@@ -136,15 +136,21 @@ int main() {
|
||||
dnnType *out, *out_h;
|
||||
int out_dim = net.getOutputDim().tot();
|
||||
readBinaryFile(output_bin, out_dim, &out_h, &out);
|
||||
std::cout<<"CUDNN vs correct"; checkResult(out_dim, out_data, out);
|
||||
std::cout<<"TRT vs correct"; checkResult(out_dim, out_data2, out);
|
||||
std::cout<<"CUDNN vs TRT "; checkResult(out_dim, out_data, out_data2);
|
||||
|
||||
std::cout<<"\n\nDetected objects: \n";
|
||||
dnnType *output_h = new dnnType[rI.output_dim.tot()];
|
||||
checkCuda(cudaMemcpy(output_h, out_data2,
|
||||
rI.output_dim.tot()*sizeof(dnnType), cudaMemcpyDeviceToHost));
|
||||
rI.interpretData(output_h);
|
||||
rI.showImageResult(input_h);
|
||||
return 0;
|
||||
// std::cout<<"\n\nDetected objects: \n";
|
||||
// dnnType *output_h = new dnnType[rI.output_dim.tot()];
|
||||
// checkCuda(cudaMemcpy(output_h, out_data2,
|
||||
// rI.output_dim.tot()*sizeof(dnnType), cudaMemcpyDeviceToHost));
|
||||
// rI.interpretData(output_h);
|
||||
// rI.showImageResult(input_h);
|
||||
|
||||
|
||||
std::cout<<"CUDNN vs correct";
|
||||
int ret_cudnn = checkResult(out_dim, out_data, out) == 0 ? 0: ERROR_CUDNN;
|
||||
std::cout<<"TRT vs correct";
|
||||
int ret_tensorrt = checkResult(out_dim, out_data2, out) == 0 ? 0 : ERROR_TKDNN;
|
||||
std::cout<<"CUDNN vs TRT ";
|
||||
int ret_cudnn_tensorrt = checkResult(out_dim, out_data, out_data2) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
|
||||
return ret_cudnn | ret_tensorrt | ret_cudnn_tensorrt;
|
||||
}
|
||||
|
||||
@@ -136,15 +136,21 @@ int main() {
|
||||
dnnType *out, *out_h;
|
||||
int out_dim = net.getOutputDim().tot();
|
||||
readBinaryFile(output_bin, out_dim, &out_h, &out);
|
||||
std::cout<<"CUDNN vs correct"; checkResult(out_dim, out_data, out);
|
||||
std::cout<<"TRT vs correct"; checkResult(out_dim, out_data2, out);
|
||||
std::cout<<"CUDNN vs TRT "; checkResult(out_dim, out_data, out_data2);
|
||||
|
||||
std::cout<<"\n\nDetected objects: \n";
|
||||
dnnType *output_h = new dnnType[rI.output_dim.tot()];
|
||||
checkCuda(cudaMemcpy(output_h, out_data2,
|
||||
rI.output_dim.tot()*sizeof(dnnType), cudaMemcpyDeviceToHost));
|
||||
rI.interpretData(output_h);
|
||||
rI.showImageResult(input_h);
|
||||
return 0;
|
||||
// std::cout<<"\n\nDetected objects: \n";
|
||||
// dnnType *output_h = new dnnType[rI.output_dim.tot()];
|
||||
// checkCuda(cudaMemcpy(output_h, out_data2,
|
||||
// rI.output_dim.tot()*sizeof(dnnType), cudaMemcpyDeviceToHost));
|
||||
// rI.interpretData(output_h);
|
||||
// rI.showImageResult(input_h);
|
||||
|
||||
|
||||
std::cout<<"CUDNN vs correct";
|
||||
int ret_cudnn = checkResult(out_dim, out_data, out) == 0 ? 0: ERROR_CUDNN;
|
||||
std::cout<<"TRT vs correct";
|
||||
int ret_tensorrt = checkResult(out_dim, out_data2, out) == 0 ? 0 : ERROR_TKDNN;
|
||||
std::cout<<"CUDNN vs TRT ";
|
||||
int ret_cudnn_tensorrt = checkResult(out_dim, out_data, out_data2) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
|
||||
return ret_cudnn | ret_tensorrt | ret_cudnn_tensorrt;
|
||||
}
|
||||
|
||||
@@ -136,16 +136,20 @@ int main() {
|
||||
dnnType *out, *out_h;
|
||||
int out_dim = net.getOutputDim().tot();
|
||||
readBinaryFile(output_bin, out_dim, &out_h, &out);
|
||||
std::cout<<"CUDNN vs correct"; checkResult(out_dim, out_data, out);
|
||||
std::cout<<"TRT vs correct"; checkResult(out_dim, out_data2, out);
|
||||
std::cout<<"CUDNN vs TRT "; checkResult(out_dim, out_data, out_data2);
|
||||
|
||||
std::cout<<"\n\nDetected objects: \n";
|
||||
dnnType *output_h = new dnnType[rI.output_dim.tot()];
|
||||
checkCuda(cudaMemcpy(output_h, out_data2,
|
||||
rI.output_dim.tot()*sizeof(dnnType), cudaMemcpyDeviceToHost));
|
||||
rI.interpretData(output_h, 608, 608);
|
||||
rI.showImageResult(input_h);
|
||||
|
||||
// std::cout<<"\n\nDetected objects: \n";
|
||||
// dnnType *output_h = new dnnType[rI.output_dim.tot()];
|
||||
// checkCuda(cudaMemcpy(output_h, out_data2,
|
||||
// rI.output_dim.tot()*sizeof(dnnType), cudaMemcpyDeviceToHost));
|
||||
// rI.interpretData(output_h, 608, 608);
|
||||
// rI.showImageResult(input_h);
|
||||
|
||||
return 0;
|
||||
std::cout<<"CUDNN vs correct";
|
||||
int ret_cudnn = checkResult(out_dim, out_data, out) == 0 ? 0: ERROR_CUDNN;
|
||||
std::cout<<"TRT vs correct";
|
||||
int ret_tensorrt = checkResult(out_dim, out_data2, out) == 0 ? 0 : ERROR_TKDNN;
|
||||
std::cout<<"CUDNN vs TRT ";
|
||||
int ret_cudnn_tensorrt = checkResult(out_dim, out_data, out_data2) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
|
||||
return ret_cudnn | ret_tensorrt | ret_cudnn_tensorrt;
|
||||
}
|
||||
|
||||
@@ -88,8 +88,13 @@ int main() {
|
||||
dnnType *out, *out_h;
|
||||
int out_dim = net.getOutputDim().tot();
|
||||
readBinaryFile(output_bin, out_dim, &out_h, &out);
|
||||
std::cout<<"CUDNN vs correct"; checkResult(out_dim, out_data, out);
|
||||
std::cout<<"TRT vs correct"; checkResult(out_dim, out_data2, out);
|
||||
std::cout<<"CUDNN vs TRT "; checkResult(out_dim, out_data, out_data2);
|
||||
return 0;
|
||||
|
||||
std::cout<<"CUDNN vs correct";
|
||||
int ret_cudnn = checkResult(out_dim, out_data, out) == 0 ? 0: ERROR_CUDNN;
|
||||
std::cout<<"TRT vs correct";
|
||||
int ret_tensorrt = checkResult(out_dim, out_data2, out) == 0 ? 0 : ERROR_TKDNN;
|
||||
std::cout<<"CUDNN vs TRT ";
|
||||
int ret_cudnn_tensorrt = checkResult(out_dim, out_data, out_data2) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
|
||||
return ret_cudnn | ret_tensorrt | ret_cudnn_tensorrt;
|
||||
}
|
||||
|
||||
+15
-11
@@ -138,15 +138,19 @@ int main() {
|
||||
dnnType *out, *out_h;
|
||||
int out_dim = net.getOutputDim().tot();
|
||||
readBinaryFile(output_bin, out_dim, &out_h, &out);
|
||||
std::cout<<"CUDNN vs correct"; checkResult(out_dim, out_data, out);
|
||||
std::cout<<"TRT vs correct"; checkResult(out_dim, out_data2, out);
|
||||
std::cout<<"CUDNN vs TRT "; checkResult(out_dim, out_data, out_data2);
|
||||
|
||||
std::cout<<"\n\nDetected objects: \n";
|
||||
dnnType *output_h = new dnnType[rI.output_dim.tot()];
|
||||
checkCuda(cudaMemcpy(output_h, out_data2,
|
||||
rI.output_dim.tot()*sizeof(dnnType), cudaMemcpyDeviceToHost));
|
||||
rI.interpretData(output_h);
|
||||
rI.showImageResult(input_h);
|
||||
return 0;
|
||||
std::cout<<"CUDNN vs correct";
|
||||
int ret_cudnn = checkResult(out_dim, out_data, out) == 0 ? 0: ERROR_CUDNN;
|
||||
std::cout<<"TRT vs correct";
|
||||
int ret_tensorrt = checkResult(out_dim, out_data2, out) == 0 ? 0 : ERROR_TKDNN;
|
||||
std::cout<<"CUDNN vs TRT ";
|
||||
int ret_cudnn_tensorrt = checkResult(out_dim, out_data, out_data2) == 0 ? 0 : ERROR_CUDNNvsTENSORRT;
|
||||
|
||||
// std::cout<<"\n\nDetected objects: \n";
|
||||
// dnnType *output_h = new dnnType[rI.output_dim.tot()];
|
||||
// checkCuda(cudaMemcpy(output_h, out_data2,
|
||||
// rI.output_dim.tot()*sizeof(dnnType), cudaMemcpyDeviceToHost));
|
||||
// rI.interpretData(output_h);
|
||||
// rI.showImageResult(input_h);
|
||||
|
||||
return ret_cudnn | ret_tensorrt | ret_cudnn_tensorrt;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user