libmorton
dynarmic
Our great sponsors
libmorton | dynarmic | |
---|---|---|
2 | 6 | |
567 | 967 | |
- | - | |
2.2 | 8.8 | |
8 months ago | about 2 months ago | |
C++ | C++ | |
MIT License | BSD Zero Clause 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.
libmorton
-
Morton: Bit Interleaving in C/C++
3. https://github.com/Forceflow/libmorton
I used it to accelerate nearest neighbor detection for collision processing in particle-laden flow for modeling complicated domains in 3d (for biological fluids simulation). I was using it a locality sensitive hashing to put particles near each other in the same bucket in an hash map. I came across the ideas of BIGMIN (big minimum) and LITMAX (little maximum) for range search in a morton encoded data that I found to be cool.
-
What are the implications of AVX-512 for emulation?
For example, I was able to accelerate ARM's vector-based arithmetic/logical bit-shifts into a single instruction compared to the 5 instructions it needed before thanks to AVX-512(also here's a little writeup I made on that). Or how I was able to accelerate ARM's vector bit-reversal into a just 2 fast instructions rather than the dozen that it needed before(another write-up I made on that). Or how using AVX512-BITALG can help accelerate interfacing with Morton Codes(common with encoding and decoding GPU texture formats).
dynarmic
- Dynarmic – An ARM dynamic recompiler (AArch32/64 to x86-64/AArch64)
-
RyujinX – Open Source Nintendo Switch Emulator
They're probably referring to dynarmic: https://github.com/merryhime/dynarmic
-
[News] TouchHLE: high-level emulator for iPhone OS apps released
As an HLE, touchHLE is radically different from a low-level emulator (LLE) like QEMU. The only code the emulated CPU executes is the app binary and a handful of libraries; touchHLE takes the place of iPhone OS and provides its own implementations of the system frameworks (Foundation, UIKit, OpenGL ES, OpenAL, etc).
-
Latest news from Emulation regarding Mac
https://github.com/merryhime/dynarmic/pull/697 - Dynarmic implementing Arm backend support. Dynarmic is a dynamic recompiler for ARM.
-
Ryujinx - Progress Report July 2021
I did some work on Dynarmic, so there's my bias I guess. But I def believe Dynarmic would emit better context-aware assembly than a CIL->Native jitteror the JVM would emit. Dynarmic takes advantage of instruction sets like BMI2 and AVX{2,512} and uses a pretty darn concise intermediate representation to the original ARM assembly to emit efficient x86 while a C# JIT probably still only emits baseline x86-64 and struggles with efficient vectorization of things like Arm's NEON instructions. Can't even imagine a C# or Java VM trying to automatically emit optimal assembly for an FMADD including handling NaN propagation or detecting that FMINNM can be very quickly emulated with a single vrangep{s,d} x86 instruction.
-
What are the implications of AVX-512 for emulation?
For emulators, it's currently used in dynarmic(Yuzu's ARM-to-x86 recompiler backend) for the fast emulation of ARM's NEON instruction set.
What are some alternatives?
rawspeed - fast raw decoding library
Ryujinx - Experimental Nintendo Switch Emulator written in C#
fastocloud_com - Self-hosted IPTV/NVR/CCTV/Video service (Community version) [Moved to: https://github.com/fastogt/fastocloud]
asmjit - Low-latency machine code generation
rpcs3 - PS3 emulator/debugger
fastocloud_media_part - Self-hosted IPTV/NVR/CCTV/Video service [Moved to: https://github.com/fastogt/fastocloud]
vvctre - A Nintendo 3DS emulator with Lua scripting for Windows 7+ and Linux (the default script is vvctre folder/script.lua)
fastocloud_mpart - Self-hosted IPTV/NVR/CCTV/Video service [Moved to: https://github.com/fastogt/fastocloud]
ClassicUO - ClassicUO - an open source implementation of the Ultima Online Classic Client.
nanocobs - A C99 implementation of the Consistent Overhead Byte Stuffing ("COBS") algorithm.
fujihack - Reverse engineering Fujifilm firmware