volk icon indicating copy to clipboard operation
volk copied to clipboard

Added MIPS support to volk_cpu.tmpl.c.

Open michael-roe opened this issue 2 years ago • 8 comments

michael-roe avatar May 26 '22 18:05 michael-roe

If we merge this PR, we enable VOLK on another architecture. We don't have any CI for that arch. Thus, we need to be clear that this is experimental.

jdemel avatar Jun 29 '22 09:06 jdemel

I'd say we should enable PPC in the same way & also tag it experimental.

michaelld avatar Jun 29 '22 16:06 michaelld

How and where should we communicate that MIPS support is experimental?

jdemel avatar Aug 07 '22 16:08 jdemel

I suggest to add a comment to the top-level README.md file under Hardware architectures.

jdemel avatar Aug 07 '22 18:08 jdemel

Even without this patch, we can build on MIPS.

Some kernels don't work on MIPS, because of the ABI issue with complex numbers.

The intent of this patch is to get in place most of the machinery you would need in order to have kernels that make use of MIPS Application Specific Extensions. (I wanted this for an experiment, and this part of the experiment seemed of sufficiently general usefulness as to be worth upstreaming).

Documenting MIPS support as experimental seems appropriate.

michael-roe avatar Aug 07 '22 21:08 michael-roe

top-level README.md file under Hardware architectures

Agreed! Maybe something like: Currently VOLK aims to run with optimized kernels on x86 with SSE/AVX and ARM with NEON. VOLK has experimental support for PPC and MIPS; we are happy to accept contributions to make these architectures less experimental.

michaelld avatar Aug 16 '22 15:08 michaelld

That seems ok to me. Do you want me to include that text in a revised version of this PR, or can it just go in as a separate commit?

michael-roe avatar Aug 18 '22 11:08 michael-roe

It'd be great if you made these changes. A separate commit for these changes seems appropriate.

jdemel avatar Aug 18 '22 12:08 jdemel

I'm pretty sure volk QA passes on risc-v. I've been thinking about adding qemu riscv builds to the sausage machine.

balister avatar Dec 21 '22 14:12 balister

It would be good if we ran QA on risc-v.

I think it will fail because of the issue to do with passing a C++ complex as an argument to a function that expects a C complex.

michael-roe avatar Dec 22 '22 15:12 michael-roe

Merging this PR now, since #609 contains the documentation change that should make it clear that MIPS support is experimental.

jdemel avatar Dec 25 '22 15:12 jdemel