Comments (1)
In general the BLASFEO own API is closely related to the standard BLAS API, with the key difference that there is an additional argument for the result, such that the API is "non destructive".
The standard BLAS API is "destructive" and an explicit matrix copy has to be performed in the rather common case the input/output argument should be preserved.
So the BLASFEO API gives a bit more flexibility, and it is always possible to have the added output argument coincide with the argument acting as the input/output in the standard BLAS API.
E.g. if you take the dgemm
in the standard BLAS API, it is something like
C = beta * C + alpha * A * B
then in BLASFEO there would be the additional argument D
for the result
D = beta * C + alpha * A * B
that can possibly (but not necessarily) coincide with C
.
Similarly, for dtrsm
the standard BLAS API would be
B = alpha * inv(A) * B
and in the BLASFEO API again there is an additional argument D
for the result
D = alpha * inv(A) * B
that can possibly (but not necessarily) coincide with B
.
All other limitations about arguments overlapping are analogue to the standard BLAS API, where BTW are also not so clearly described but rather implicit in the understanding of the operation performed.
E.g. in case A
and C
coincide in dgemm
in the BLAS API, clearly A
would be overwritten with the result as soon as this is computed a bit at a time, so the result would be wrong in an unpredictable and implementation-dependent way.
from blasfeo.
Related Issues (20)
- BLASFEO_PROCESSOR_FEATURES as identifier instead of object HOT 3
- SIGSEGV using hpipm HOT 1
- Bug in blasfeo drowpe?
- Problem with blasfeo_drowpe? HOT 4
- Error on multiple definition of `BLASFEO_PROCESSOR_FEATURES'
- Need to link against math library? HOT 1
- Linker error: SHF_MERGE section size (456) must be a multiple of sh_entsize (32) HOT 4
- Tests fail to build: libblasfeo.so: undefined reference to kernel_dpack_buffer_fn HOT 1
- Are there routines for matrix norms? HOT 2
- Incorrect documentation for dtrmm in blasfeo_d_blasfeo_api.h? HOT 3
- blasfeo_dtrmm_rltn not implemented HOT 1
- Missing symbols kernel_dpack_buffer_* in the shared library HOT 2
- Tests fail: error: undefined symbol: blasfeo_sgemm HOT 1
- What are m, n, k in dgemm routines? HOT 1
- blasfeo_target.h:1:0: error: unterminated #ifndef HOT 2
- MacOS M2 compiling issue HOT 2
- Calling certain triangular matrices routines leads to `undefined symbol` error HOT 2
- `blasfeo_dtrmm_rlnn` accesses invalid memory with offset on the lower triangular matrix HOT 1
- How can I build BLASFEO and HPIPM for microcontrollers? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from blasfeo.