|
%!s(int64=3) %!d(string=hai) anos | |
---|---|---|
.. | ||
CMakeLists.txt | de2939e222 HPCC-27136 Clean up CMake warnings and errors | %!s(int64=3) %!d(string=hai) anos |
README.md | adae826495 HPCC-16282 Add BLAS wrappers as standard library attributes and plugins | %!s(int64=8) %!d(string=hai) anos |
dasum.cpp | 937173f4fe HPCC-16571 Mangle the functions exported from eclblas plugin | %!s(int64=8) %!d(string=hai) anos |
daxpy.cpp | 937173f4fe HPCC-16571 Mangle the functions exported from eclblas plugin | %!s(int64=8) %!d(string=hai) anos |
dgemm.cpp | bcf397408e HPCC-17543 Work around misaligned double access in eclblas::dgemm | %!s(int64=8) %!d(string=hai) anos |
dgetf2.cpp | 937173f4fe HPCC-16571 Mangle the functions exported from eclblas plugin | %!s(int64=8) %!d(string=hai) anos |
dpotf2.cpp | 937173f4fe HPCC-16571 Mangle the functions exported from eclblas plugin | %!s(int64=8) %!d(string=hai) anos |
dscal.cpp | 937173f4fe HPCC-16571 Mangle the functions exported from eclblas plugin | %!s(int64=8) %!d(string=hai) anos |
dsyrk.cpp | 937173f4fe HPCC-16571 Mangle the functions exported from eclblas plugin | %!s(int64=8) %!d(string=hai) anos |
dtrsm.cpp | 937173f4fe HPCC-16571 Mangle the functions exported from eclblas plugin | %!s(int64=8) %!d(string=hai) anos |
eclblas.cpp | adae826495 HPCC-16282 Add BLAS wrappers as standard library attributes and plugins | %!s(int64=8) %!d(string=hai) anos |
eclblas.hpp | 116fab0239 Merge branch 'candidate-6.2.0' into candidate-6.4.0 | %!s(int64=8) %!d(string=hai) anos |
extract_tri.cpp | fa2e97e93e HPCC-16655 Extract_Tri anomaly in eclblas | %!s(int64=8) %!d(string=hai) anos |
lib_eclblas.ecllib | fa2e97e93e HPCC-16655 Extract_Tri anomaly in eclblas | %!s(int64=8) %!d(string=hai) anos |
make_diag.cpp | 937173f4fe HPCC-16571 Mangle the functions exported from eclblas plugin | %!s(int64=8) %!d(string=hai) anos |
sourcedoc.xml | adae826495 HPCC-16282 Add BLAS wrappers as standard library attributes and plugins | %!s(int64=8) %!d(string=hai) anos |
This is the ECL plugin to utilize the Basic Linear Algebra Sysem (BLAS). It utilizes the C wrappers for BLAS
To build the plugin with the HPCC-Platform, is required.
sudo apt-get install atlas-dev
The libcblas.so library can be found in several packages including ATLAS and LAPACK.
The eclblas plugin features are exposed via the ECL Standard library Std.BLAS module.
###An ECL Example
IMPORT Std.BLAS AS BLAS;
IMPORT BLAS.Types AS Types;
Types.matrix_t init1 := [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0];
Types.matrix_t init2 := [9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0];
Types.matrix_t init3 := [1.0, 2.0, 3.0];
Types.matrix_t init4 := [2.0, 2.0, 2.0];
Test1_mat := BLAS.dgemm(FALSE, TRUE, 3, 3, 1, 1.0, init3, init4);
Test2_mat := BLAS.dgemm(TRUE, FALSE, 1, 1, 3, 1.0, init3, init4);
Test3_mat := BLAS.dgemm(FALSE, TRUE, 3, 1, 3, -1.0, init1, init4);
Test4_mat := BLAS.dgemm(FALSE, TRUE, 3, 1, 3, 1.0, init1, init4, 5, init3);
OUTPUT(Test1_mat);
OUTPUT(Test2_mat);
OUTPUT(Test3_mat);
OUTPUT(test4_mat);
Yields the various matrix products.
All of the arrays are column major. The underlying Fortran code expects column major, so we do not need the library to interpret the data as row major (usual C convention).