45 lines
		
	
	
		
			883 B
		
	
	
	
		
			C++
		
	
	
	
		
		
			
		
	
	
			45 lines
		
	
	
		
			883 B
		
	
	
	
		
			C++
		
	
	
	
|  | #include "AppCommon.h"
 | ||
|  | 
 | ||
|  | 
 | ||
|  | void Free(void* data) | ||
|  | { | ||
|  |     if(data){ | ||
|  |         free(data); | ||
|  |         data = nullptr; | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | void Deleter(void* data) | ||
|  | { | ||
|  |     if(data){ | ||
|  |         delete[] data;  //数组
 | ||
|  |         data = nullptr; | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | double cpuSecond() | ||
|  | { | ||
|  |     struct timeval tp; | ||
|  |     gettimeofday(&tp,nullptr); | ||
|  |     return((double)tp.tv_sec+(double)tp.tv_usec*1e-6); | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | inline unsigned int getElementSize(nvinfer1::DataType t) | ||
|  | { | ||
|  |     switch (t) | ||
|  |     { | ||
|  |         case nvinfer1::DataType::kINT32: return 4; | ||
|  |         case nvinfer1::DataType::kFLOAT: return 4; | ||
|  |         case nvinfer1::DataType::kHALF: return 2; | ||
|  |         case nvinfer1::DataType::kBOOL: | ||
|  |         case nvinfer1::DataType::kINT8: return 1; | ||
|  |     } | ||
|  |     throw std::runtime_error("Invalid DataType."); | ||
|  |     return 0; | ||
|  | } | ||
|  | 
 | ||
|  | inline int64_t volume(const nvinfer1::Dims& d) | ||
|  | { | ||
|  |     return std::accumulate(d.d, d.d + d.nbDims, 1, std::multiplies<int64_t>()); | ||
|  | } |