/tomo/pyhst

To get this branch, use:
bzr branch http://darksoft.org/webbzr/tomo/pyhst

« back to all changes in this revision

Viewing changes to hst_cuda/hst_cuda_defines.h

  • Committer: Suren A. Chilingaryan
  • Date: 2017-09-28 10:34:47 UTC
  • Revision ID: csa@suren.me-20170928103447-dggjgnuxmymgew2a
Quality fixes (tex-based)

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
//#define HST_BASE_KERNEL                       //!< Enforce simplest kernel
5
5
#define HST_LINEAR_KERNEL                       //!< Enforece linear kernel
6
6
 
7
 
#define HST_HYBRID                              //!< Use Tex & Linear kernels in parallel. Doesn't help on Fermi
 
7
#if defined(PYHST_RECON_BENCHMARK)||!defined(PYHST_ASTRA_SCALING)
 
8
# define HST_FILTER2                            //!< YES: Filter 2 projections at once (but insignificantly affects the scaling. so we keep it off for quality benchmarking)
 
9
#endif
 
10
 
 
11
//#define HST_HYBRID                            //!< Use Tex & Linear kernels in parallel. Doesn't help on Fermi
8
12
#define HST_LINEAR_MPLINEAR
9
13
 
10
14
 
11
15
 
12
16
#define HST_SET_BOUNDS
13
17
#define HST_LINEAR_BLOCK 16                     //! 16! 8 is slow (other numbers are not supported, enforece SQUARE_PPT)
14
 
//#define HST_SQUARE_PPT                        //! NO. Little effect on performance (slighly reduces register usage, but doesn't affect computations as the loops are unrolled anyway)
15
 
 
16
18
 
17
19
#if defined(HST_LINEAR_MPLINEAR)&&(HST_OPTIMIZE_KEPLER > 4)
18
20
# if defined(HST_HYBRID)
70
72
#endif
71
73
 
72
74
 
73
 
 
74
75
#ifdef HST_HYBRID
75
76
    // Const memory problem!
76
 
# define HST_HYBRID_NEWTEX
77
 
# define HST_NEWTEX4                             //!< Assymetric: process 4 projections and 64 bins during each step.
78
 
# define HST_FLOAT_LOOPS                                //! Use float loops to optimize register usage (mostly bad)
 
77
//# define HST_HYBRID_NEWTEX
 
78
//# define HST_NEWTEX4                             //!< Assymetric: process 4 projections and 64 bins during each step.
79
79
# define HST_CACHE_SIN                          //!< YES. It is good idea on all NVIDIA as shmem faster than cmem. Even on shmem-bound kernels
80
80
#endif
81
81
 
 
82
//#define HST_SQUARE_PPT                        //! NO. Little effect on performance (slighly reduces register usage, but doesn't affect computations as the loops are unrolled anyway)
 
83
//#define HST_FLOAT_LOOPS                               //! Use float loops to optimize register usage (mostly bad)
 
84
//#define HST_NEWTEX4                             //!< Assymetric: process 4 projections and 64 bins during each step.
 
85
#define HST_L1_PROJ_BLOCK 128                   //!< UNUSED now
 
86
 
 
87
 
82
88
    // Tex Kernel overrides
83
89
//#define HST_FLOAT_LOOPS                       //! Use float loops to optimize register usage (mostly bad)
84
90
#define HST_NEWCACHE                            //!< New way of caching reducing number of shmem reads/writes