Fix cmake building with cblas_bgemm#5397
Conversation
|
I assume this works without Interestingly, if you do that, you'll miss out on GEMV forwarding. Depending on your use case, it might be quite a performance boost: Lines 425 to 430 in f4caa61 |
|
@Mousius it does look as if the restrictive |
|
@martin-frbg yip, I added the limiter. It was actually because it calls I was just giving a friendly heads up, using the new |
|
Oh right, I need to make sure that GEMV is hooked up correctly now |
I'll try poking around with these settings. Thanks for the info. The matrix sizes are predetermined, so direct calls to
Yeah, I'm testing it in an LLM inference engine. I have successfully wired up the attention layer in full bfloat16, but the performance is ~60x worse than float32 right now, as my CPU lacks AVX512 BF16 extensions. So this is a proof-of-concept experiment which may be useful years later (when most CPUs being sold have BF16 extensions) |
|
@Mousius all forwarding should be pointing to GEMV i.e. the driver code, not gemv the interface function, so I think the only unresolved references to sgemv et al., if any, should be coming from LAPACK and perhaps the tests. (What's a bit annoying is that currently the CMake build will attempt to build the utest even with ONLY_CBLAS, which means the build |
Hello, I'm using CMake build with the following options:
And I need the shiny new
cblas_bgemm. However, these are the problems I encounter:undefined reference to bgemm_nn, and more
I believe that to create this function, GenerateNamedObjects needs to be called one more time with an additional
BGEMMmacro; otherwise, it will only producesbgemmfunctions.And after that,
undefined reference to sbstobf16_ and sbf16tos_
These are not built if FBLAS is disabled; yet, cblas interface functions call into them (and they are called by
cblas_bgemm), so it's necessary to build them even ifNO_FBLASis defined.