|
|
NOTE: All of the benchmarks listed below utilize the optimized versions
of the SCTL C++ API that are specifically
designed and tuned for the target processor. All benchmarks were built
using the 3.4 version of the standard GNU g++ compiler.
|
|
|
|
Probably most the relevant indication of a CPUs floating-point
performance is the scalar product, or dot product, operation.
This simple operation is a common calculation in numerous small
and medium sized dense matrix problems such as matrix
factorizations and iterative matrix-inverse solutions. Using the
analogy of a car engine to a CPU, this is like the quarter-mile
drag race test.
This benchmark is measured in terms of "billions of floating-point
operations per second" calculated using vectors of various sizes
where the mean performance values across the range of vector
lengths are reported. Both single and double-precision floating
point values are tested.
|
|
|
|
|
|
|
Conversely to dense vector solutions, sparse vectors are a
specialized form of a vector where only the non-zero elements are
stored. These types of vectors are very well suited for solving
medium to large finite element engineering problems and
conjugate-gradient matrix solutions where a majority of the values
in the matrix row-vectors are zero.
This benchmark calculates the scalar product of a sparse-vector
with a regular vector whereby the loading fraction of the
sparse-vector (fraction of non-zero elements) ranges from 10e-7 to
10e-2. Both vector lengths are maintained at 10-million elements
where only the non-zero values are stored for the sparse-vector.
The implementation of the sparse-vector is a custom hybrid
binary-tree/double-linked list of short dense vectors which offers
the benefits being able to dynamically add/modify/remove the
vector elements during execution.
This benchmark is measured in terms of "millions of floating-point
operations per second" where the mean performance values across the
range of tested loading fractions are reported. Both single and
double-precision floating point values are tested.
|
|
|
|
|
|
|
Singular value decomposition (SVD) is a very useful tool in the
solution of near-singular linear algebra problems. SVD is widely
used in many engineering disciplines although its strengths lie in
the analysis of near-singluar systems and linear least-squares
problems.
This benchmark calculates the singular value decompostion of a
regular M x N matrix where the number of rows (M) is fixed at 1024
and the number of columns (N) are powers-of-2 ranging from 4 to
128. In order to capture the processor cache effects, the original
M x N matrix is decomposed many times in succession where the
number of decompositions is inversely proportional to N^2.
This benchmark is measured in terms of "millions of floating-point
operations per second" where the mean values across the range of
tested matrix sizes are reported. Both single and double-precision
floating point values are tested.
|
|
|
|
|
|
top of page
|
|