mirror of
				https://github.com/paboyle/Grid.git
				synced 2025-11-03 21:44:33 +00:00 
			
		
		
		
	L1p controls for BG/Q
This commit is contained in:
		@@ -34,6 +34,51 @@ namespace QCD {
 | 
			
		||||
 | 
			
		||||
int WilsonKernelsStatic::Opt;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifdef QPX
 | 
			
		||||
#include <spi/include/kernel/location.h>
 | 
			
		||||
#include <spi/include/l1p/types.h>
 | 
			
		||||
#include <hwi/include/bqc/l1p_mmio.h>
 | 
			
		||||
#include <hwi/include/bqc/A2_inlines.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
void bgq_l1p_optimisation(int mode)
 | 
			
		||||
{
 | 
			
		||||
#ifdef QPX
 | 
			
		||||
#undef L1P_CFG_PF_USR
 | 
			
		||||
#define L1P_CFG_PF_USR  (0x3fde8000108ll)   /*  (64 bit reg, 23 bits wide, user/unpriv) */
 | 
			
		||||
 | 
			
		||||
  uint64_t cfg_pf_usr;
 | 
			
		||||
  if ( mode ) { 
 | 
			
		||||
    cfg_pf_usr =
 | 
			
		||||
        L1P_CFG_PF_USR_ifetch_depth(0)       
 | 
			
		||||
      | L1P_CFG_PF_USR_ifetch_max_footprint(1)   
 | 
			
		||||
      | L1P_CFG_PF_USR_pf_stream_est_on_dcbt 
 | 
			
		||||
      | L1P_CFG_PF_USR_pf_stream_establish_enable
 | 
			
		||||
      | L1P_CFG_PF_USR_pf_stream_optimistic
 | 
			
		||||
      | L1P_CFG_PF_USR_pf_adaptive_throttle(0xF) ;
 | 
			
		||||
    //    if ( sizeof(Float) == sizeof(double) ) {
 | 
			
		||||
      cfg_pf_usr |=  L1P_CFG_PF_USR_dfetch_depth(2)| L1P_CFG_PF_USR_dfetch_max_footprint(3)   ;
 | 
			
		||||
      //    } else {
 | 
			
		||||
      //      cfg_pf_usr |=  L1P_CFG_PF_USR_dfetch_depth(1)| L1P_CFG_PF_USR_dfetch_max_footprint(2)   ;
 | 
			
		||||
      //    }
 | 
			
		||||
  } else { 
 | 
			
		||||
    cfg_pf_usr = L1P_CFG_PF_USR_dfetch_depth(1)
 | 
			
		||||
      | L1P_CFG_PF_USR_dfetch_max_footprint(2)   
 | 
			
		||||
      | L1P_CFG_PF_USR_ifetch_depth(0)       
 | 
			
		||||
      | L1P_CFG_PF_USR_ifetch_max_footprint(1)   
 | 
			
		||||
      | L1P_CFG_PF_USR_pf_stream_est_on_dcbt 
 | 
			
		||||
      | L1P_CFG_PF_USR_pf_stream_establish_enable
 | 
			
		||||
      | L1P_CFG_PF_USR_pf_stream_optimistic
 | 
			
		||||
      | L1P_CFG_PF_USR_pf_stream_prefetch_enable;
 | 
			
		||||
  }
 | 
			
		||||
  *((uint64_t *)L1P_CFG_PF_USR) = cfg_pf_usr;
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
template <class Impl>
 | 
			
		||||
WilsonKernels<Impl>::WilsonKernels(const ImplParams &p) : Base(p){};
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user