mirror of
https://github.com/paboyle/Grid.git
synced 2024-11-10 07:55:35 +00:00
L1p controls for BG/Q
This commit is contained in:
parent
0903c48caa
commit
9ae81c06d2
@ -34,6 +34,51 @@ namespace QCD {
|
|||||||
|
|
||||||
int WilsonKernelsStatic::Opt;
|
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>
|
template <class Impl>
|
||||||
WilsonKernels<Impl>::WilsonKernels(const ImplParams &p) : Base(p){};
|
WilsonKernels<Impl>::WilsonKernels(const ImplParams &p) : Base(p){};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user