Openblas: openBLAS FIXEDPOINT IMPLEMENTATION

Created on 12 Feb 2018  路  10Comments  路  Source: xianyi/OpenBLAS

HI,
Is there any Fixed Point Implementation for OPEN-BLAS ?

All 10 comments

OpenBLAS, no. There appears to be a fixed point implementation of the GEMM functions in https://github.com/google/gemmlowp

Since I'm Using openBLAS as a supportive Library For a Speech Recognition (KALDI) Project, And I'm using few Functions in cblas.h like cblas_sgemm, cblas_dgemm, cblas_daxpy, cblas_saxpy , cblas_dger & cblas_sger only.
Is there any Possibility to Take a respective C source files from Openblas and detach the supportive Openblas Library for KALDI Project?

Possible but probably a bit tedious. Some functions have their implementation directly in interface,
where some Makefile magic sees to it that one source file gets transformed into all permutations of
blas/cblas interface and float/double/complex variable type.
For others this pulls in the respective code from driver/level2 or driver/level3 which in turn calls the cpu-specific implementation from kernel - you will probably want to use their generic C fallback implementations from kernel/generic.

cblas.h is used as backend for kaldi api that manipulates abstract FLOAT matrices. I.e. You are NOT expected to call BLAS directly and call it KALDI
While integers are good for FPU-less DSP, they will certainly overflow with more complex computations.

Hii...Actually If i want to implement the Function for example cblas_saxpy() , But the function definition calls internally some FORTRAN based function such as F77_saxpy() , But In the Visual Studio2017 Community Version I found that there is NO fortran Compiler available, So I think I can't Implement the Function since there is no Fortran Compiler support for VS2017, Please give me your valuable Suggestions So that I can implement that functions and Finally detach the Library.

You are looking in reference implementation. OpenBLAS saxpy saxpy_ and cblas_saxpy is built from interface/axpy.c

Actually I'm looking exactly in "OpenBLAS-developlapack-netlibCBLASsrc" where i can see cblas_saxpy "C" file is present, So Can u Tell me , If i want to redefine cblas_saxpy() function Independently in VS2017 what function exactly i have to replace???
Thanks In advance 馃憤

Actually the code from lapack-netlibCBLAS is not used by OpenBLAS, it is only included since it is included with the sources of the LAPACK reference implementation.
The OpenBLAS versions of saxpy() and cblas_saxpy() are both built from interfaceaxpy.c with appropriate options in the Makefile. The AXPYU_K you will see in axpy.c is declared in common_d.h to be daxpy_k, which gets built by kernelMakefile.L1 from the cpu-specific assembly file that matches the cpu OpenBLAS was built for, e.g. kernelx86_64axpy.S (with a fallback implementation in C that you can find in kernelarmaxpy.c - for most functions, these are in kernelgeneric).
This is why I wrote above that it is "possible but tedious" to extract individual functions from OpenBLAS...

what about the benchmark codes for BLAS?? I can see "axpy.c" file in benchmark folder, So....Can it help out?? Actually i want to know how benchmark codes for BLAS usefull for user?

Benchmark codes are programs that call some function and report how fast it runs on your computer. Nothing more, nothing less - if you do not want to compare the speed of OpenBLAS on different computers, or try to improve the implementation of some function for a specific cpu they will be useless to you.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

1kastner picture 1kastner  路  18Comments

winpassuser picture winpassuser  路  8Comments

twadleigh picture twadleigh  路  8Comments

rgommers picture rgommers  路  12Comments

wyphan picture wyphan  路  5Comments