spla
|
Classes | |
class | spla::Descriptor |
Descriptor object used to parametrize execution of particular scheduled tasks. More... | |
class | spla::MtxLoader |
Loader for matrix data stored in matrix-market (.mtx) format. More... | |
class | spla::Library |
Library global state automatically instantiated on lib init. More... | |
class | spla::Matrix |
Generalized M x N dimensional matrix object. More... | |
class | spla::Object |
Base class for any library primitive. More... | |
class | spla::Op |
An callable operation to parametrize execution of math computations. More... | |
class | spla::OpUnary |
Unary operation with 1-arity. More... | |
class | spla::OpBinary |
Binary operation with 2-arity. More... | |
class | spla::OpSelect |
Select operation with 1-arity and bool return type. More... | |
class | spla::RefCnt |
Base class for object with built-in reference counting mechanism. More... | |
class | spla::ref_ptr< T > |
Automates reference counting and behaves as shared smart pointer. More... | |
class | spla::Scalar |
Box for a single typed scalar value. More... | |
class | spla::ScheduleTask |
Represent single smallest evaluation tasks which can scheduled. More... | |
class | spla::Schedule |
Object with sequence of steps with tasks forming schedule for execution. More... | |
class | spla::Timer |
Simple timer to measure intervals of time on CPU-side. More... | |
class | spla::Type |
Type representation for parametrisation of containers stored values. More... | |
class | spla::Vector |
Generalized N dimensional vector object. More... | |
class | Status |
Status of library operation execution. More... | |
class | AcceleratorType |
Types of supported accelerators for computations. More... | |
class | FormatMatrix |
Named storage format for library matrix data objects. More... | |
class | FormatVector |
Named storage format for library vector data objects. More... | |
class | MessageCallback |
Callback function called on library message event. More... | |
class | ScheduleCallback |
Callback function which can be scheduled in schedule. More... | |
Typedefs | |
using | spla::uint = std::uint32_t |
Library index and size type. More... | |
using | spla::MessageCallback = std::function< void(Status status, const std::string &msg, const std::string &file, const std::string &function, int line)> |
using | spla::ScheduleCallback = std::function< void()> |
using | spla::T_BOOL = bool |
using | spla::T_INT = std::int32_t |
using | spla::T_UINT = std::uint32_t |
using | spla::T_FLOAT = float |
Enumerations | |
enum class | spla::Status : uint { spla::Ok = 0 , spla::Error = 1 , spla::NoAcceleration = 2 , spla::PlatformNotFound = 3 , spla::DeviceNotFound = 4 , spla::InvalidState = 5 , spla::InvalidArgument = 6 , spla::NoValue = 7 , spla::CompilationError = 8 , spla::NotImplemented = 1024 } |
enum class | spla::AcceleratorType : uint { spla::None = 0 , spla::OpenCL = 1 } |
enum class | spla::FormatMatrix : uint { spla::CpuLil = 0 , spla::CpuDok = 1 , spla::CpuCoo = 2 , spla::CpuCsr = 3 , spla::CpuCsc = 4 , spla::AccCoo = 5 , spla::AccCsr = 6 , spla::AccCsc = 7 , spla::Count = 8 } |
enum class | spla::FormatVector : uint { spla::CpuDok = 0 , spla::CpuDense = 1 , spla::CpuCoo = 2 , spla::AccDense = 3 , spla::AccCoo = 4 , spla::Count = 5 } |
Functions | |
Status | spla::bfs (const ref_ptr< Vector > &v, const ref_ptr< Matrix > &A, uint s, const ref_ptr< Descriptor > &descriptor=spla::Descriptor::make()) |
Breadth-first search algorithm. More... | |
Status | spla::bfs_naive (std::vector< int > &v, std::vector< std::vector< spla::uint >> &A, uint s, const ref_ptr< Descriptor > &descriptor=spla::Descriptor::make()) |
Naive breadth-first search algorithm (reference cpu implementation) More... | |
Status | spla::sssp (const ref_ptr< Vector > &v, const ref_ptr< Matrix > &A, uint s, const ref_ptr< Descriptor > &descriptor=ref_ptr< Descriptor >()) |
Single-source shortest path algorithm. More... | |
Status | spla::sssp_naive (std::vector< float > &v, std::vector< std::vector< uint >> &Ai, std::vector< std::vector< float >> &Ax, uint s, const ref_ptr< Descriptor > &descriptor=spla::Descriptor::make()) |
Naive single-source shortest path algorithm (reference cpu implementation) More... | |
Status | spla::pr (ref_ptr< Vector > &p, const ref_ptr< Matrix > &A, float alpha=0.85, float eps=1e-6, const ref_ptr< Descriptor > &descriptor=spla::Descriptor::make()) |
PageRank algorithm. More... | |
Status | spla::pr_naive (std::vector< float > &p, std::vector< std::vector< uint >> &Ai, std::vector< std::vector< float >> &Ax, float alpha=0.85, float eps=1e-6, const ref_ptr< Descriptor > &descriptor=spla::Descriptor::make()) |
Naive PageRank algorithm (reference cpu implementation) More... | |
Status | spla::tc (int &ntrins, const ref_ptr< Matrix > &A, const ref_ptr< Matrix > &B, const ref_ptr< Descriptor > &descriptor=spla::Descriptor::make()) |
Triangles counting algorithm. More... | |
Status | spla::tc_naive (int &ntrins, std::vector< std::vector< spla::uint >> &Ai, const ref_ptr< Descriptor > &descriptor=spla::Descriptor::make()) |
Naive triangles counting algorithm (reference cpu implementation) More... | |
template<typename T , typename... TArgs> | |
ref_ptr< T > | spla::make_ref (TArgs &&... args) |
ref_ptr< Schedule > | spla::make_schedule () |
Makes new schedule for making execution schedule. More... | |
using spla::MessageCallback = typedef std::function<void(Status status, const std::string& msg, const std::string& file, const std::string& function, int line)> |
using spla::ScheduleCallback = typedef std::function<void()> |
using spla::T_BOOL = typedef bool |
using spla::T_FLOAT = typedef float |
using spla::T_INT = typedef std::int32_t |
using spla::T_UINT = typedef std::uint32_t |
using spla::uint = typedef std::uint32_t |
Library index and size type.
|
strong |
|
strong |
Enumerator | |
---|---|
CpuLil | Matrix list of lists format for fast increment build |
CpuDok | Matrix dictionary of keys for fast look-up of values |
CpuCoo | Matrix coordinates list format |
CpuCsr | Matrix compressed sparse rows format |
CpuCsc | Matrix compressed sparse columns format |
AccCoo | Matrix acceleration structured coo format |
AccCsr | Matrix acceleration structured csr format |
AccCsc | Matrix acceleration structured csc format |
Count | Total number of supported matrix formats |
|
strong |
Enumerator | |
---|---|
CpuDok | Vector dictionary of keys representation |
CpuDense | Vector dense array of values representation |
CpuCoo | Vector list of values for sparse data |
AccDense | Vector acceleration structured dense format |
AccCoo | Vector acceleration structured coo format |
Count | Total number of supported vector formats |
|
strong |
Enumerator | |
---|---|
Ok | No error |
Error | Some error occurred |
NoAcceleration | Library has no configured accelerator for computations |
PlatformNotFound | Accelerator platform not found |
DeviceNotFound | Accelerator device not found |
InvalidState | Call of the function is not possible for some context |
InvalidArgument | Passed invalid argument for some function |
NoValue | No such requested value in matrix, vector or scalar storage |
CompilationError | Failed to compile GPU/ACC kernel |
NotImplemented | Some library feature is not implemented |
Status spla::bfs | ( | const ref_ptr< Vector > & | v, |
const ref_ptr< Matrix > & | A, | ||
uint | s, | ||
const ref_ptr< Descriptor > & | descriptor = spla::Descriptor::make() |
||
) |
Breadth-first search algorithm.
v | int vector to store reached distances |
A | int matrix filled with 1 where exist edge from i to j |
s | start vertex id to search |
descriptor | optional descriptor for algorithm |
Status spla::bfs_naive | ( | std::vector< int > & | v, |
std::vector< std::vector< spla::uint >> & | A, | ||
uint | s, | ||
const ref_ptr< Descriptor > & | descriptor = spla::Descriptor::make() |
||
) |
Naive breadth-first search algorithm (reference cpu implementation)
v | int vector to store reached distances |
A | int graph adjacency lists filled with 1 where exist edge from i to j |
s | start vertex id to search |
descriptor | optional descriptor for algorithm |
ref_ptr<T> spla::make_ref | ( | TArgs &&... | args | ) |
Makes new schedule for making execution schedule.
Status spla::pr | ( | ref_ptr< Vector > & | p, |
const ref_ptr< Matrix > & | A, | ||
float | alpha = 0.85 , |
||
float | eps = 1e-6 , |
||
const ref_ptr< Descriptor > & | descriptor = spla::Descriptor::make() |
||
) |
PageRank algorithm.
p | float vector to store result vertices weights |
A | float graph matrix with weights A[i][j] = alpha / outdegree(i) |
alpha | float alpha to control PageRank (default is 0.85) |
eps | float tolerance to control precision of PageRank (default is 1e-6) |
descriptor | optional descriptor for algorithm |
Status spla::pr_naive | ( | std::vector< float > & | p, |
std::vector< std::vector< uint >> & | Ai, | ||
std::vector< std::vector< float >> & | Ax, | ||
float | alpha = 0.85 , |
||
float | eps = 1e-6 , |
||
const ref_ptr< Descriptor > & | descriptor = spla::Descriptor::make() |
||
) |
Naive PageRank algorithm (reference cpu implementation)
p | float vector to store result vertices weights |
Ai | float graph matrix column indices |
Ax | float graph matrix weights A[i][j] = alpha / outdegree(i) |
alpha | float alpha to control PageRank (default is 0.85) |
eps | float tolerance to control precision of PageRank (default is 1e-6) |
descriptor | optional descriptor for algorithm |
Status spla::sssp | ( | const ref_ptr< Vector > & | v, |
const ref_ptr< Matrix > & | A, | ||
uint | s, | ||
const ref_ptr< Descriptor > & | descriptor = ref_ptr<Descriptor>() |
||
) |
Single-source shortest path algorithm.
v | float vector to store reached distances |
A | float matrix filled with >0.0f distances where exist edge from i to j otherwise 0.0f |
s | start vertex id to search |
descriptor | optional descriptor for algorithm |
Status spla::sssp_naive | ( | std::vector< float > & | v, |
std::vector< std::vector< uint >> & | Ai, | ||
std::vector< std::vector< float >> & | Ax, | ||
uint | s, | ||
const ref_ptr< Descriptor > & | descriptor = spla::Descriptor::make() |
||
) |
Naive single-source shortest path algorithm (reference cpu implementation)
v | float vector to store reached distances |
Ai | uint matrix column indices |
Ax | float matrix values with >0.0f distances where exist edge from i to j |
s | start vertex id to search |
descriptor | optional descriptor for algorithm |
Status spla::tc | ( | int & | ntrins, |
const ref_ptr< Matrix > & | A, | ||
const ref_ptr< Matrix > & | B, | ||
const ref_ptr< Descriptor > & | descriptor = spla::Descriptor::make() |
||
) |
Triangles counting algorithm.
ntrins | Number of triangles counted |
A | Lower trilingual int matrix with 1 where has edge in a graph |
B | Buffer int matrix to store result |
descriptor | optional descriptor for algorithm |
Status spla::tc_naive | ( | int & | ntrins, |
std::vector< std::vector< spla::uint >> & | Ai, | ||
const ref_ptr< Descriptor > & | descriptor = spla::Descriptor::make() |
||
) |
Naive triangles counting algorithm (reference cpu implementation)
ntrins | Number of triangles counted |
A | Lower trilingual int matrix structure |
descriptor | optional descriptor for algorithm |
ref_ptr< Type > spla::FLOAT = TType<T_FLOAT>::make_type("FLOAT", "F", "float", "4 byte floating point type", 4) |
ref_ptr< Type > spla::INT = TType<T_INT>::make_type("INT", "I", "int", "signed 4 byte integral type", 2) |
ref_ptr< Type > spla::UINT = TType<T_UINT>::make_type("UINT", "U", "uint", "unsigned 4 byte integral type", 3) |