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";
357 template< grb::Backend implementation = default_backend >
358 class IMPLEMENTATION {};
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
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 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
unsigned int VectorIndexType
What data type should be used to store vector indices.
Definition: base/config.hpp:410
unsigned int ColIndexType
What data type should be used to store column indices.
Definition: base/config.hpp:384
unsigned int RowIndexType
What data type should be used to store row indices.
Definition: base/config.hpp:371
size_t NonzeroIndexType
What data type should be used to refer to an array containing nonzeroes.
Definition: base/config.hpp:397
The ALP/GraphBLAS namespace.
Definition: graphblas.hpp:450