28 #ifndef _H_GRB_CONFIG_BASE 29 #define _H_GRB_CONFIG_BASE 46 #define _GRB_BACKEND reference 79 static constexpr
grb::Backend default_backend = _GRB_BACKEND;
94 static constexpr
size_t bytes = 64;
104 static constexpr
size_t value() {
123 static constexpr
size_t bytes = 64;
133 static constexpr
size_t value() {
145 template<
typename T >
146 class SIMD_BLOCKSIZE {
158 static constexpr
size_t unsafe_value() {
159 return SIMD_SIZE::value() /
sizeof( T );
168 static constexpr
size_t value() {
169 return unsafe_value() > 0 ? unsafe_value() : 1;
185 class HARDWARE_THREADS {
200 static long value() {
201 return sysconf( _SC_NPROCESSORS_ONLN );
269 static constexpr
double random_access_memspeed() {
294 static constexpr
double stream_memspeed() {
306 const std::string prefix,
const std::string action,
307 const size_t size,
const bool printNewline =
true 316 constexpr
size_t big =
323 std::cout <<
"Info: ";
324 std::cout << prefix <<
" ";
325 std::cout << action <<
" ";
326 if(
sizeof(
size_t ) * 8 > 40 && (
size >> 40 ) > 2 ) {
327 std::cout << (
size >> 40 ) <<
" TB of memory";
328 }
else if(
sizeof(
size_t ) * 8 > 30 && (
size >> 30 ) > 2 ) {
329 std::cout << (
size >> 30 ) <<
" GB of memory";
330 }
else if(
sizeof(
size_t ) * 8 > 20 && (
size >> 20 ) > 2 ) {
331 std::cout << (
size >> 20 ) <<
" MB of memory";
332 }
else if(
sizeof(
size_t ) * 8 > 10 && (
size >> 10 ) > 2 ) {
333 std::cout << (
size >> 10 ) <<
" kB of memory";
335 std::cout <<
size <<
" bytes of memory";
386 template< grb::Backend backend = default_backend >
421 static constexpr
bool fixedVectorCapacities();
481 #endif // end _H_GRB_CONFIG_BASE The SIMD size, in bytes.
Definition: base/config.hpp:115
unsigned int RowIndexType
What data type should be used to store row indices.
Definition: base/config.hpp:436
This file contains a register of all backends that are either implemented, under implementation,...
static constexpr size_t outer()
Definition: base/config.hpp:221
Benchmarking default configuration parameters.
Definition: base/config.hpp:211
ALLOC_MODE
The memory allocation modes implemented in the grb::reference and the grb::reference_omp backends.
Definition: reference/config.hpp:54
unsigned int ColIndexType
What data type should be used to store column indices.
Definition: base/config.hpp:449
Collects a series of implementation choices corresponding to some given backend.
Definition: base/config.hpp:387
static constexpr size_t inner()
Definition: base/config.hpp:216
unsigned int VectorIndexType
What data type should be used to store vector indices.
Definition: base/config.hpp:475
Backend
A collection of all backends.
Definition: backends.hpp:49
static constexpr size_t l1_cache_size()
Definition: base/config.hpp:237
Contains information about the target architecture cache line size.
Definition: base/config.hpp:86
static constexpr size_t big_memory()
Definition: base/config.hpp:244
The ALP/GraphBLAS namespace.
Definition: graphblas.hpp:477
Memory configuration parameters.
Definition: base/config.hpp:232
static constexpr ALLOC_MODE sharedAllocMode()
Defines how shared memory regions are allocated.
size_t size(const Vector< DataType, backend, Coords > &x) noexcept
Request the size of a given vector.
Definition: io.hpp:235
size_t NonzeroIndexType
What data type should be used to refer to an array containing nonzeroes.
Definition: base/config.hpp:462
static constexpr ALLOC_MODE defaultAllocMode()
Defines how private memory regions are allocated.