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();
 
This file contains a register of all backends that are either implemented, under implementation,...
 
Benchmarking default configuration parameters.
Definition: base/config.hpp:211
 
Contains information about the target architecture cache line size.
Definition: base/config.hpp:86
 
Collects a series of implementation choices corresponding to some given backend.
Definition: base/config.hpp:387
 
Memory configuration parameters.
Definition: base/config.hpp:232
 
The SIMD size, in bytes.
Definition: base/config.hpp:115
 
size_t size(const Vector< DataType, backend, Coords > &x) noexcept
Request the size of a given vector.
Definition: io.hpp:235
 
Backend
A collection of all backends.
Definition: backends.hpp:46
 
static constexpr ALLOC_MODE defaultAllocMode()
Defines how private memory regions are allocated.
 
static constexpr size_t inner()
Definition: base/config.hpp:216
 
static constexpr size_t big_memory()
Definition: base/config.hpp:244
 
static constexpr size_t l1_cache_size()
Definition: base/config.hpp:237
 
static constexpr size_t outer()
Definition: base/config.hpp:221
 
static constexpr ALLOC_MODE sharedAllocMode()
Defines how shared memory regions are allocated.
 
unsigned int VectorIndexType
What data type should be used to store vector indices.
Definition: base/config.hpp:475
 
unsigned int ColIndexType
What data type should be used to store column indices.
Definition: base/config.hpp:449
 
unsigned int RowIndexType
What data type should be used to store row indices.
Definition: base/config.hpp:436
 
size_t NonzeroIndexType
What data type should be used to refer to an array containing nonzeroes.
Definition: base/config.hpp:462
 
ALLOC_MODE
The memory allocation modes implemented in the grb::reference and the grb::reference_omp backends.
Definition: reference/config.hpp:54
 
The ALP/GraphBLAS namespace.
Definition: graphblas.hpp:452