Skip to content

[AArch64] How to enable Neon (instead of SVE) kernels? #928

Description

@banach-space

Hi Folks 👋🏻 ,

First of all, thank you for BLIS and all the surrounding work - it's such a great reference for all GEMM enthusiasts :)

My question might be quite easy to answer - is it possible to enable Neon kernels and use them instead of SVE on architectures that do implement SVE, e.g. Neoverse-v2?

I've tried forcing the configuration (e.g. with --force-version=armv8a (*)), but keep seeing this in the logs:

configure: configuration 'armsve' is registered.
configure: 'armsve' is defined as having the following sub-configurations:
configure:    armsve
configure: which collectively require the following kernels:
configure:    armsve
configure: checking sub-configurations:
configure:   'armsve' is registered...and exists.
configure: checking sub-configurations' requisite kernels:
configure:   'armsve' kernels...exist.

I haven't tried experimenting on non-SVE hardware yet. Before I attempt that, what should be my expectations? 😅

And just to avoid folks spending too much time on this - longer term I am much more interested in SVE, so if NEON support is limited, I will simply switch to SVE sooner.

Thank you,
-Andrzej

(*) I realise that docs make it clear that armv8a is not an available config:

Notice that while kernel sets usually correspond to a sub-configuration, they do not always. For example, while the `armv7a` and `armv8a` kernel sets are referenced in the example `config_registry` file, there do not exist any registered sub-configurations by those names. However, the kernel directories exist and the kernel sets appear in the definitions of a few `cortex` singleton families.
I tried some other alternatives as well.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions