Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
Asm2D
searching Neon…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
23 ms
·
1.
▲
by
Asm2D
6mo ago
It would be great if Meta was able to sustain to support more open source projects, especially those they benefit from. For example they use AsmJit in a lot of projects (both internal and open-source) and it's now unmaintained because
2.
▲
by
Asm2D
7mo ago
That's interesting - 200kB should not be a big deal for it - maybe it uses something that I usually don't, like many function calls, or insane number of branches, etc... I would be interested in that case, but I'm not sure wh
3.
▲
by
Asm2D
7mo ago
Indeed, but this also means that you would get drastically different performance on platforms that have more physical registers vs on platforms that have less. For example x86_64 only has 16 GP registers, while AArch64 has 32 - if you use 2
4.
▲
by
Asm2D
7mo ago
AsmJit has only one place where a lot of time is spent - bin-packing. It's the least optimized part, which has quadratic complexity (at the moment), which starts to show when you have like hundreds of thousands of virtual registers. Th
5.
▲
by
Asm2D
7mo ago
Because pg_jitter uses AsmJit's Compiler, which also allocates registers. That's much more work than using hardcoded physical registers in SLJIT case. There is always a cost of such comfort. I think AsmJit's strength is compl
6.
▲
by
Asm2D
7mo ago
I write JITs so I know, but I always try to write in a way that even non-JIT people can understand :)
7.
▲
by
Asm2D
7mo ago
If I recall research papers regarding Umbra it's also using AsmJit as a JIT backend, which means that theoretically the compilation times would be comparable if you only consider code emitting overhead. The problem will always be queri
8.
▲
by
Asm2D
7mo ago
Many SQL engines have JIT compilers. The problems related to PostgreSQL are pretty much all described here. It's very difficult to do low-latency queries if you cannot cache the compiled code and do it over and over again. And once you
9.
▲
by
Asm2D
8mo ago
How JIT kills compatibility if it's only enabled on x86 and aaarch64? You can compile Blend2D without it and it would just work. So no, it doesn't kill any compatibility - it only shows a different approach. BTW GPU-only renderers
10.
▲
by
Asm2D
8mo ago
I think Vello CPU would always struggle with raster images, because it does a bounds check for every pixel fetched from a source image. They have at least described this behavior somewhere in Vello PRs. The obsession for memory safety just
11.
▲
by
Asm2D
8mo ago
Adding a power draw into the mix is pretty interesting. Just because a GPU can render something 2x faster in a particular test doesn't mean you have consumed 50% less power, especially when we talk about dedicated GPUs that can have po
12.
▲
by
Asm2D
8mo ago
You need to rerun the benchmarks if you want fresh numbers. The post was written when Blend2D didn't have JIT for AArch64, which penalized it a bit. Also on X86_64 the numbers are really good for Blend2D, which beats Blaze in some test
13.
▲
by
Asm2D
8mo ago
You know nothing. Skia is definitely not a good example at all. Skia started as a CPU renderer, and added GPU rendering later, which heavily relies on caching. Vello, for example, takes a completely different approach compared to Skia. NV p
14.
▲
by
Asm2D
8mo ago
Blend2D doesn't benchmark against GPU renderers - the benchmarking page compares CPU renderers. I have seen comparisons in the past, but it's pretty difficult to do a good CPU vs GPU benchmarking.
15.
▲
by
Asm2D
1y ago
I think AsmGrid has a great overview of X86 and AArch64 instructions: - https://asmjit.com/asmgrid/
16.
▲
by
Asm2D
1y ago
Then paint to a regular buffer and do a memcpy to the framebuffer that has no cache at the end of each frame, possibly only copying a region/tiles you want to update. All the libraries that exist are designed to work like this.
17.
▲
by
Asm2D
1y ago
It's not, SSA and an optimizing pipeline was never the goal of AsmJit actually. You emit your SIMD code as you want it an no optimizer or other transformations mess with it - that's the goal and it works great for use-cases that d
18.
▲
by
Asm2D
1y ago
Blend2D has C-API and no dependencies - it doesn't even need a C++ standard library - so generally it's not an issue to build it and use it anywhere. There is a different problem though. While many people working on Vello are paid
19.
▲
High-Performance PNG Decoding (Blend2D / C++)
(blend2d.com)
3 points
by
Asm2D
2y ago
|
1 comments
20.
▲
by
Asm2D
2y ago
Introduction of a new high performance PNG decoder provided by Blend2D library, which challenges existing decoders written in C++ and other programming languages.
21.
▲
by
Asm2D
3y ago
Nice project, thanks for sharing! BTW for comparison - Blend2D can render SVG tiger in 1.68ms on the same machine (I also have 7950X) so it can provide almost an order of magnitude better performance in this case, which is great I think. Bu
22.
▲
by
Asm2D
3y ago
That's right! I didn't consider closed source libraries when writing the list. There would be more options in that case like Direct2D and CoreGraphics. However, my opinion is that nobody should be using closed source libraries to
23.
▲
by
Asm2D
3y ago
I think that when it comes to 2D rendering libraries there is in general not too many options if you want to target CPU or both CPU+GPU. Targeting GPU-only is bad for users that run on a hardware where GPU doesn't perform well or is no
24.
▲
by
Asm2D
3y ago
That's true, Cairo still provides XRender backend. Not sure it's that usable though as I think nobody really focuses on improving XRender, so it's probably in the same state as Cairo itself.
25.
▲
by
Asm2D
3y ago
Cairo is in a maintenance-only mode. Nobody develops this library anymore and it only has a maintainer or two. Since nobody really worked on Cairo in the past 15 years it's not optimized for modern hardware. You can see some existing b
26.
▲
by
Asm2D
3y ago
GPU support was removed from Cairo, because it was slower than CPU rendering and nobody wanted to maintain it.
27.
▲
by
Asm2D
3y ago
Thanks! I'm doing what I can to make Blend2D even faster. It's been really exciting project to work on and I have big plans with this library.
28.
▲
by
Asm2D
3y ago
Text rendering is something that will get improved in the future. At the moment when you render text Blend2D queries each character from the font and then rasterizes all the edges and runs a pipeline to composite them. All these steps are s
29.
▲
by
Asm2D
3y ago
Yeah, I usually write compilers in C++ and it seems we have totally different use-cases :) High performance assembling is literally what asmjit was designed for and that allows it to be used in interesting projects - for example there are m
30.
▲
by
Asm2D
3y ago
The reason why it's written in C++ is to make it practical. I understand why some people would want it in C, but honestly I have never seen a nice JIT assembler library written in C - I saw few incomplete assemblers in C before as part
More ›