simde icon indicating copy to clipboard operation
simde copied to clipboard

NEON functions

Open nemequ opened this issue 7 years ago • 12 comments

See https://gist.github.com/nemequ/fe2f276e1e7d33659cbf77ae0d5526be for progress.

nemequ avatar May 05 '17 06:05 nemequ

I just found intel/ARM_NEON_2_x86_SSE. It has a hard dependency on SSSE3, with optional dependencies on SSE4.1/4.2, so we would need to add portable fallbacks. It would still make an amazing starting point, though.

The license is a bit strange. It's a 2-clause BSD license, but not the 2-clause BSD license. It's the 3-clause license with clause 2 removed (the standard 2-clause license has the 3rd clause removed). TBH I prefer it to the standard 2-clause license, but still it's not MIT, so if we used the code we wouldn't be pure MIT anymore.

An article on Intel's web site about the project also links to christophe-lyon/arm-neon-tests, which could probably be adapted to integrate with our tests. It does use an MIT license.

nemequ avatar May 05 '17 07:05 nemequ

The infrastructure is in place now to make these pretty straightforward to knock out.

First add the relevant functions to the files in simde/arm/neon; they'll all follow the same pattern, so you can pretty much just write the function once then copy & paste and make some minor tweaks to the types.

Then, copy test/arm/neon/skel.c to $name.c, replace "xxx" with $name, and start generating some test vectors. Copy and paste them into the C file while removing the code to generate them, then you just need to add a couple lines each to test/arm/arm-internal.h, test/test.c, and test/CMakeLists.txt.

nemequ avatar Jul 10 '18 04:07 nemequ

FYI https://github.com/lemire/simdjson/pull/330/files#diff-be2e7b500e6796935bc5d2fc3b664a64

mr-c avatar Feb 19 '20 16:02 mr-c

Thanks. I'm actually working on this issue right now, so good timing :)

nemequ avatar Feb 21 '20 22:02 nemequ

Hi. I was willing to work on the project of implementing NEON function for GSOC 2021, i am quite familiar with C language and have a pretty vague idea about SIMDe programming, can you please guide me so that I can be familiar with getting started on this project.

syedsafi30 avatar Mar 18 '21 20:03 syedsafi30

Hi @syedsafi30!

Thanks for your interest, but I think I think the NEON project is already taken for this year; @Glitch18 got to it first, and has been doing some great work already to get ready. While there is more than enough work to go around, and I'd be happy to mentor you, I don't think Google is likely to grant two slots for the same task.

The AVX-512 project is still undecided for now, though I believe one student is just about ready to start submitting some patches so it's likely that we'll go with them since they did get contact me first.

For what it's worth, I can't offer to pay you but I would be happy to "mentor" you just as I would a GSoC student if you're still interested in this (that goes for anyone reading this in the future, too). I'm guessing you would prefer a paying project, so by all means you should keep searching, but if you don't find anything you're very welcome to come back here. Good luck!

nemequ avatar Mar 20 '21 00:03 nemequ

Hi, thanks for replying, i have put a lot of thought in what you have suggested and tried looking for other projects from different organisations but sadly couldn’t come across any of my liking, I really want to work for your organisation at the same time it’s very important to me to get into GSOC as it’s the only option I have to kick start my career. I really hope you could mentor me so that i could likely get a slot in google.

I know the other people got to you first, I assure you that my performance and enthusiasm wouldn’t disappoint you. I have to be a GSoC student even if it is without pay.
Thanks I’ll be looking forward to hearing from you.

On 20-Mar-2021, at 5:44 AM, Evan Nemerson @.***> wrote:

 Hi @syedsafi30!

Thanks for your interest, but I think I think the NEON project is already taken for this year; @Glitch18 got to it first, and has been doing some great work already to get ready. While there is more than enough work to go around, and I'd be happy to mentor you, I don't think Google is likely to grant two slots for the same task.

The AVX-512 project is still undecided for now, though I believe one student is just about ready to start submitting some patches so it's likely that we'll go with them since they did get contact me first.

For what it's worth, I can't offer to pay you but I would be happy to "mentor" you just as I would a GSoC student if you're still interested in this (that goes for anyone reading this in the future, too). I'm guessing you would prefer a paying project, so by all means you should keep searching, but if you don't find anything you're very welcome to come back here. Good luck!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

syedsafi30 avatar Mar 26 '21 00:03 syedsafi30

Sorry, this got buried in my notifications.

The problem is I doubt we can get a slot in GSoC, so it wouldn't officially be part of GSoC. You could definitely still have basically the same experience as (or more than) a GSoC project. Why don't you send me an e-mail (my first name at my last name dot com) or send me a DM on Gitter and we can discuss this in more detail without so many delays (again, sorry!).

nemequ avatar Mar 31 '21 14:03 nemequ

@syedsafi30, if you're still interested in this, the Institute of Software Chinese Academy of Sciences is running a similar program to GSoC, and SIMDe has a few projects you could apply for. I just posted them (I submitted 4, so far 2 have been approved), so they should be wide open.

The program is geared more towards you being more independent; I'm not supposed to help with coding or debugging. However, I can suggest resources, try to point you in the right direction, and review code.

nemequ avatar May 19 '21 05:05 nemequ

Hi Evan,

Thanks for reaching out to me, I have checked the program and it looks interesting to me, I went through the project details too but sadly I can see that the deadly for submitting applications for May 2021 is already over. Are you suggesting me to apply for the December program ?

Regards Safi

Sent from my iPhone

On 19-May-2021, at 10:36 AM, Evan Nemerson @.***> wrote:

 @syedsafi30, if you're still interested in this, the Institute of Software Chinese Academy of Sciences is running a similar program to GSoC, and SIMDe has a few projects you could apply for. I just posted them (I submitted 4, so far 2 have been approved), so they should be wide open.

The program is geared more towards you being more independent; I'm not supposed to help with coding or debugging. However, I can suggest resources, try to point you in the right direction, and review code.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

syedsafi30 avatar May 19 '21 07:05 syedsafi30

Hi Evan,

Thanks for reaching out to me, I have checked the program and it looks interesting to me, I went through the project details too but sadly I can see that the deadly for submitting applications for May 2021 is already over. Are you suggesting me to apply for the December program ?

Regards Safi

On 19-May-2021, at 10:36 AM, Evan Nemerson @.***> wrote:

 @syedsafi30, if you're still interested in this, the Institute of Software Chinese Academy of Sciences is running a similar program to GSoC, and SIMDe has a few projects you could apply for. I just posted them (I submitted 4, so far 2 have been approved), so they should be wide open.

The program is geared more towards you being more independent; I'm not supposed to help with coding or debugging. However, I can suggest resources, try to point you in the right direction, and review code.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

syedsafi30 avatar May 19 '21 07:05 syedsafi30

The deadline for me to submit projects to OSPP ends May 20th. The student application period is from May 24th through June 13th. The coding period is 3 months, from July 1s through September 30th. That puts it slightly later than GSoC (June 7th through August 16th, but not much).

See https://summer.iscas.ac.cn/#/howitworks?lang=en and/or https://summer.iscas.ac.cn/help/en/timeline/ for details.

If you have any questions, please follow up with me via e-mail (my first name at my last name dot com), on Gitter, or open up a new issue on here; this discussion isn't really relevant to the NEON issue (the NEON project will not be part of his program since I don't want it to conflict with GSoC), so we should move it away from the NEON issue.

nemequ avatar May 19 '21 13:05 nemequ

any progress ?

mgood7123 avatar Jul 26 '23 14:07 mgood7123

any progress ?

https://github.com/simd-everywhere/implementation-status/blob/main/neon.md

TL;DR: SIMDe currently implements 3766 out of 6670 (56.46%) NEON functions. If you don't count 16-bit floats and poly types, it's 3766 / 4969 (75.79%).

mr-c avatar Jul 26 '23 15:07 mr-c

NEON appears to be done, thank you @yyctw for finishing it!

https://github.com/simd-everywhere/implementation-status/blob/main/neon.md

mr-c avatar Nov 20 '23 16:11 mr-c