simde
simde copied to clipboard
NEON functions
- ARM NEON Intrinsics Reference
- ARM C Language Extensions (good overview in chapter 12)
See https://gist.github.com/nemequ/fe2f276e1e7d33659cbf77ae0d5526be for progress.
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.
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.
FYI https://github.com/lemire/simdjson/pull/330/files#diff-be2e7b500e6796935bc5d2fc3b664a64
Thanks. I'm actually working on this issue right now, so good timing :)
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.
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!
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.
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!).
@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.
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.
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.
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.
any progress ?
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%).
NEON appears to be done, thank you @yyctw for finishing it!
https://github.com/simd-everywhere/implementation-status/blob/main/neon.md