sse2neon
Tow-Boot
sse2neon | Tow-Boot | |
---|---|---|
7 | 24 | |
1,224 | 481 | |
1.2% | 3.5% | |
7.3 | 8.3 | |
14 days ago | 13 days ago | |
C++ | Nix | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
sse2neon
- sse2neon - A C/C++ header file that converts Intel SSE intrinsics to Aarch64 NEON intrinsic
- A C/C++ header file that converts Intel SSE intrinsics to Aarch64 NEON intrinsic
-
Porting Architecture Specific C/C++ Intrinsics to Graviton
The sse2neon project is a quick way to get C/C++ applications compiling and running on Graviton. The sse2neon header file provides NEON implementations for x64 intrinsics so no source code changes are needed. Each function call (intrinsic) is simply replaced with NEON instructions and will just work on Graviton.
-
An AWS Community Builder Story
To continue our collaboration I contributed some small changes to KasmVNC on GitHub to use sse2neon for a performance critical part of the application which uses SSE intrinsics and needed to be changed to NEON intrinsics.
-
Deserializing JSON Fast
I think the talk is very clearly laid out as an incremental journey, and each stepping stone involves contextual decision-making. I don't think Andreas is saying "you must end up with the SSE2 implementation at the end". Using machine-specific intrinsics is another dependency decision very similar to deciding to use a given library. I would have loved the talk and probably still thought of it and posted it, even if it ended before the intrinsics (but I think he does an excellent job at that part too).
And porting SSE2 to Neon is actually pretty easy -- if you use https://github.com/DLTcollab/sse2neon, IME it's very easy to do incrementally (or avoid or postpone indefinitely, depending on your needs).
-
PortableGL: An MIT licensed implementation of OpenGL 3.x-ish in clean C
I have a private cross-platform port, I’m waiting on the resolution of his latest GitHub issue to submit my changes. sse2neon (https://github.com/DLTcollab/sse2neon) was a big help - I also wrote a very primitive sse2scalar for raspbian builds where neon is unavailable. Honestly SIMD doesn’t help much, as you’re usually memory bound under SWGL. The biggest perf win is any amount of asynchronous execution - running off the main thread is good enough and could be applied to your library externally through a command buffer without any changes to your code.
-
Success porting VCV into aarch64 linux! (Usable on Android Devices)
You should go to /include/simd and download sse2neon.h into the folder. Replace appearing in any source files in that directory with "sse2neon.h". You will still encounter errors; remove the lines causing problems, typically containing the phrase ZERO_MODE. ARM processors does not require it.
Tow-Boot
-
Building an ARM64 home server the hard way
For the Pine family of SBCs I highly recommend installing Tow-Boot - https://tow-boot.org/ - on the SPI flash memory to allow yourself much better boot options, including booting directly from NVMe so you don't need to keep the MicroSD card plugged-in.
-
I fucked up with my Pinephone Pro (postmarket edition), do not boot anymore
TL:DR: Install Tow-boot first, then install in Mobian image.
- Can't get PinePhone to boot
- Another one of those "which distro runs better these days"
-
Not booting on Micro SD
I opened a ticket on Two-Boot because I wasn't sure Tow-Boot was actually installed, and every information on the internet assume you don't use Tow-Boot (and so, Micro SD is booted if present).
-
Back to Android (for the time being) - Sadly my PinePhone experiment has - after several months of running one as a daily driver - come to an end for now and I'm back on my Pixel 2.
Also the PinePhone and PinePhone Pro both can (and the PPP already does in postmarketOS) boot with UEFI nowadays. For that we use Tow-Boot currently but it could be any platform firmware really.
-
Unable to compile ATF to build Uboot
Also you should use Tow-boot which is more user-friendly than u-boot. you can download it here. Make sure you select the one for "pine64-pinephonePro" and not "pine64-pinephoneA64". You can find instructions for installing it here.
-
How does ARM support for Linux work? Why do they use custom kernels, OS instead of mainline and the typical distros?
U-boot is quite the nice project. Any opinion on tow-boot as a tool for it?
-
PINE64 has let its community down
This seems way overblown, from pretty much all perspectives.
1) Listening to community. People can suggest all kinds of conflicting things, and you just can't satisfy everyone. My experience is that many of my HW modification suggestions were listened to, even some I'd expect the Pine64 might have found a bit frivolous, like desire to have some GPIO exposed as easily accessible solderable pads on the Pinephone keyboard's PCB, so that I can mod the keyboard later on and add some buttons to the bottom side of it, etc. I got some help with aquiring of information about various chips, that I requested, etc. I didn't get everything I wanted. Life is hard I guess. OTOH, Pine64 probably did not listen to some other HW mod suggestions that I have participated in group thinking about in the chats.
I think those were the mods that would require more risky redesign, and would cause incompatibilities between Pinephone and the Pro, like sugestion to split DC-IN and USB-IN on the Original Pinephone PMIC to better support the keyboard, or suggestions to redesign battery charging circuitry in Pinebook Pro, so that drivers can limit input current to be able to follow the Type-C/PD specs more closly.
These are risky to follow from us randos on the internet. Even simple suggestions are risky to follow, even if they are correct! Take the addition of diode to prevent some issues with the pinephone keyboard's charging circuitry. The suggestion was followed, but mistakes were made in the long chain that engineering the change takes, and the diode was placed incorrectly and prevented charging the keyboard completely.
2) Bootloader/SPI thing. Yeah it's unpleasant for distros to have to include U-Boot as part of the distro image, especially when things are in flux and fixing bootloader is required for fixing things in general, too, and you have to track non-mainline patches, because Pro support can't be mainlined, yet.
So now there's Tow-Boot to come to the rescue as bit of a center of gravity for U-Boot development/support. Except that it's not really that maintained either with last patches added like 6 months ago https://github.com/Tow-Boot/Tow-Boot/tree/released/boards/pi... despite persistent issues with Pinephone Pro bootlooping, because bootloader allows boot when there's not enough energy in the battery. Some hack patches are available, but not included. Etc.
Also because things are in flux, allowing users to combine arbitrary U-Boot with arbitrary kernel version can lead to all kind of fun things, like hard to explain overheating of the phone, because kernel enabled cpuidle support, and U-Boot version in SPI lacks it and similar things.
3) Diversity/monoculture angle
Focing Tow-Boot can easily be construed as just another thing that Pine64 is forcing on users by default, too. Pinephone/pinephone pro has bootloader diversity, with alternative bootloaders being much better for users in several aspects (like not having charging or bootloop issues, or having multi-boot functionality or GUI) and maybe worse in others. So on one hand Drew is arguing that there's monoculture in distros, but wants to force monoculture in bootloader, barely maintained or developed one from Pine64 support perspective.
In the end, the most important thing is that there's not technical lockdown (secure boot not enabled). Pine64 has no say in what user can flash or not. Escaping the default bootloader is as easy as booting the preloaded Manjaro and erasing it from SPI and eMMC. The phone or pinebook will then boot whatever user wants to boot from SD card.
- I Left PINE64
What are some alternatives?
yenten-arm-miner-yespowerr16 - ARM 64 CPU miner for Yespower variant algorithms
Jumpdrive - Flash/Rescue SD Card image for PinePhone and PineTab. This is NOT a bootloader
KasmVNC - Modern VNC Server and client, web based and secure
electron-discord-webapp - A Discord and SpaceBar :electron:-based client implemented without Discord API.
simde - Implementations of SIMD instruction sets for systems which don't natively support them.
uefi-simple - UEFI development made easy
libsamplerate - An audio Sample Rate Conversion library
edk2 - EDK II
cglm - 📽 Highly Optimized 2D / 3D Graphics Math (glm) for C
plasma-mobile - Manjaro Plasma-Mobile
android-inline-hook - :fire: ShadowHook is an Android inline hook library which supports thumb, arm32 and arm64.
mobile-nixos - Questions? #nixos-aarch64 (or #nixos) on Freenode!