mirror of
				https://github.com/paboyle/Grid.git
				synced 2025-10-31 03:54:33 +00:00 
			
		
		
		
	Make Cshift fields static to avoid repeated reallocaate overhead
This commit is contained in:
		
				
					committed by
					
						 Christoph Lehner
						Christoph Lehner
					
				
			
			
				
	
			
			
			
						parent
						
							2bb374daea
						
					
				
				
					commit
					b5aeae526f
				
			| @@ -122,8 +122,8 @@ template<class vobj> void Cshift_comms(Lattice<vobj> &ret,const Lattice<vobj> &r | |||||||
|   assert(shift<fd); |   assert(shift<fd); | ||||||
|    |    | ||||||
|   int buffer_size = rhs.Grid()->_slice_nblock[dimension]*rhs.Grid()->_slice_block[dimension]; |   int buffer_size = rhs.Grid()->_slice_nblock[dimension]*rhs.Grid()->_slice_block[dimension]; | ||||||
|   cshiftVector<vobj> send_buf(buffer_size); |   static cshiftVector<vobj> send_buf; send_buf.resize(buffer_size); | ||||||
|   cshiftVector<vobj> recv_buf(buffer_size); |   static cshiftVector<vobj> recv_buf; recv_buf.resize(buffer_size); | ||||||
|      |      | ||||||
|   int cb= (cbmask==0x2)? Odd : Even; |   int cb= (cbmask==0x2)? Odd : Even; | ||||||
|   int sshift= rhs.Grid()->CheckerBoardShiftForCB(rhs.Checkerboard(),dimension,shift,cb); |   int sshift= rhs.Grid()->CheckerBoardShiftForCB(rhs.Checkerboard(),dimension,shift,cb); | ||||||
| @@ -198,8 +198,8 @@ template<class vobj> void  Cshift_comms_simd(Lattice<vobj> &ret,const Lattice<vo | |||||||
|   int buffer_size = grid->_slice_nblock[dimension]*grid->_slice_block[dimension]; |   int buffer_size = grid->_slice_nblock[dimension]*grid->_slice_block[dimension]; | ||||||
|   //  int words = sizeof(vobj)/sizeof(vector_type); |   //  int words = sizeof(vobj)/sizeof(vector_type); | ||||||
|  |  | ||||||
|   std::vector<cshiftVector<scalar_object> >  send_buf_extract(Nsimd); |   static std::vector<cshiftVector<scalar_object> >  send_buf_extract; send_buf_extract.resize(Nsimd); | ||||||
|   std::vector<cshiftVector<scalar_object> >  recv_buf_extract(Nsimd); |   static std::vector<cshiftVector<scalar_object> >  recv_buf_extract; recv_buf_extract.resize(Nsimd); | ||||||
|   scalar_object *  recv_buf_extract_mpi; |   scalar_object *  recv_buf_extract_mpi; | ||||||
|   scalar_object *  send_buf_extract_mpi; |   scalar_object *  send_buf_extract_mpi; | ||||||
|   |   | ||||||
| @@ -294,8 +294,8 @@ template<class vobj> void Cshift_comms(Lattice<vobj> &ret,const Lattice<vobj> &r | |||||||
|   assert(shift<fd); |   assert(shift<fd); | ||||||
|    |    | ||||||
|   int buffer_size = rhs.Grid()->_slice_nblock[dimension]*rhs.Grid()->_slice_block[dimension]; |   int buffer_size = rhs.Grid()->_slice_nblock[dimension]*rhs.Grid()->_slice_block[dimension]; | ||||||
|   cshiftVector<vobj> send_buf_v(buffer_size); |   static cshiftVector<vobj> send_buf_v; send_buf_v.resize(buffer_size); | ||||||
|   cshiftVector<vobj> recv_buf_v(buffer_size); |   static cshiftVector<vobj> recv_buf_v; recv_buf_v.resize(buffer_size); | ||||||
|   vobj *send_buf; |   vobj *send_buf; | ||||||
|   vobj *recv_buf; |   vobj *recv_buf; | ||||||
|   { |   { | ||||||
| @@ -381,8 +381,8 @@ template<class vobj> void  Cshift_comms_simd(Lattice<vobj> &ret,const Lattice<vo | |||||||
|   int buffer_size = grid->_slice_nblock[dimension]*grid->_slice_block[dimension]; |   int buffer_size = grid->_slice_nblock[dimension]*grid->_slice_block[dimension]; | ||||||
|   //  int words = sizeof(vobj)/sizeof(vector_type); |   //  int words = sizeof(vobj)/sizeof(vector_type); | ||||||
|  |  | ||||||
|   std::vector<cshiftVector<scalar_object> >  send_buf_extract(Nsimd); |   static std::vector<cshiftVector<scalar_object> >  send_buf_extract; send_buf_extract.resize(Nsimd); | ||||||
|   std::vector<cshiftVector<scalar_object> >  recv_buf_extract(Nsimd); |   static std::vector<cshiftVector<scalar_object> >  recv_buf_extract; recv_buf_extract.resize(Nsimd); | ||||||
|   scalar_object *  recv_buf_extract_mpi; |   scalar_object *  recv_buf_extract_mpi; | ||||||
|   scalar_object *  send_buf_extract_mpi; |   scalar_object *  send_buf_extract_mpi; | ||||||
|   { |   { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user