Blocking.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_SYSTEM_BLOCKING_H_
36 #define _BLAZE_SYSTEM_BLOCKING_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
43 #include <blaze/system/Debugging.h>
45 #include <blaze/util/Types.h>
46 
47 
48 namespace blaze {
49 
50 //=================================================================================================
51 //
52 // BLOCKING SETTINGS
53 //
54 //=================================================================================================
55 
56 //*************************************************************************************************
58 const size_t DEFAULT_BLOCK_SIZE = 16UL;
59 
60 const size_t DMATDMATMULT_DEFAULT_IBLOCK_SIZE = 64UL;
61 const size_t DMATDMATMULT_DEFAULT_JBLOCK_SIZE = 128UL;
62 const size_t DMATDMATMULT_DEFAULT_KBLOCK_SIZE = 128UL;
63 
64 const size_t TDMATTDMATMULT_DEFAULT_IBLOCK_SIZE = 128UL;
65 const size_t TDMATTDMATMULT_DEFAULT_JBLOCK_SIZE = 64UL;
66 const size_t TDMATTDMATMULT_DEFAULT_KBLOCK_SIZE = 128UL;
68 //*************************************************************************************************
69 
70 
71 //*************************************************************************************************
73 const size_t DEBUG_BLOCK_SIZE = 8UL;
74 
75 const size_t DMATDMATMULT_DEBUG_IBLOCK_SIZE = 8UL;
76 const size_t DMATDMATMULT_DEBUG_JBLOCK_SIZE = 64UL;
77 const size_t DMATDMATMULT_DEBUG_KBLOCK_SIZE = 8UL;
78 
79 const size_t TDMATTDMATMULT_DEBUG_IBLOCK_SIZE = 64UL;
80 const size_t TDMATTDMATMULT_DEBUG_JBLOCK_SIZE = 8UL;
81 const size_t TDMATTDMATMULT_DEBUG_KBLOCK_SIZE = 8UL;
83 //*************************************************************************************************
84 
85 
86 //*************************************************************************************************
88 const size_t BLOCK_SIZE = ( BLAZE_DEBUG_MODE ? DEBUG_BLOCK_SIZE : DEFAULT_BLOCK_SIZE );
89 
90 const size_t DMATDMATMULT_JBLOCK_SIZE = ( BLAZE_DEBUG_MODE ? DMATDMATMULT_DEBUG_JBLOCK_SIZE : DMATDMATMULT_DEFAULT_JBLOCK_SIZE );
91 const size_t DMATDMATMULT_IBLOCK_SIZE = ( BLAZE_DEBUG_MODE ? DMATDMATMULT_DEBUG_IBLOCK_SIZE : DMATDMATMULT_DEFAULT_IBLOCK_SIZE );
92 const size_t DMATDMATMULT_KBLOCK_SIZE = ( BLAZE_DEBUG_MODE ? DMATDMATMULT_DEBUG_KBLOCK_SIZE : DMATDMATMULT_DEFAULT_KBLOCK_SIZE );
93 
94 const size_t TDMATTDMATMULT_IBLOCK_SIZE = ( BLAZE_DEBUG_MODE ? TDMATTDMATMULT_DEBUG_IBLOCK_SIZE : TDMATTDMATMULT_DEFAULT_IBLOCK_SIZE );
95 const size_t TDMATTDMATMULT_JBLOCK_SIZE = ( BLAZE_DEBUG_MODE ? TDMATTDMATMULT_DEBUG_JBLOCK_SIZE : TDMATTDMATMULT_DEFAULT_JBLOCK_SIZE );
96 const size_t TDMATTDMATMULT_KBLOCK_SIZE = ( BLAZE_DEBUG_MODE ? TDMATTDMATMULT_DEBUG_KBLOCK_SIZE : TDMATTDMATMULT_DEFAULT_KBLOCK_SIZE );
98 //*************************************************************************************************
99 
100 } // namespace blaze
101 
102 
103 
104 
105 //=================================================================================================
106 //
107 // COMPILE TIME CONSTRAINT
108 //
109 //=================================================================================================
110 
111 //*************************************************************************************************
113 namespace {
114 
115 BLAZE_STATIC_ASSERT( blaze::BLOCK_SIZE >= 4UL );
116 
117 BLAZE_STATIC_ASSERT( blaze::DMATDMATMULT_IBLOCK_SIZE >= 4UL );
118 BLAZE_STATIC_ASSERT( blaze::DMATDMATMULT_JBLOCK_SIZE >= 64UL && blaze::DMATDMATMULT_JBLOCK_SIZE % 32UL == 0UL );
119 BLAZE_STATIC_ASSERT( blaze::DMATDMATMULT_KBLOCK_SIZE >= 4UL );
120 
121 BLAZE_STATIC_ASSERT( blaze::TDMATTDMATMULT_IBLOCK_SIZE >= 64UL && blaze::TDMATTDMATMULT_IBLOCK_SIZE % 32UL == 0UL );
122 BLAZE_STATIC_ASSERT( blaze::TDMATTDMATMULT_JBLOCK_SIZE >= 4UL );
123 BLAZE_STATIC_ASSERT( blaze::TDMATTDMATMULT_KBLOCK_SIZE >= 4UL );
124 
125 }
127 //*************************************************************************************************
128 
129 #endif
Header file for basic type definitions.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
Compile time assertion.
#define BLAZE_STATIC_ASSERT(expr)
Compile time assertion macro.In case of an invalid compile time expression, a compilation error is cr...
Definition: StaticAssert.h:143
System settings for the debugging policy of the Blaze library.