Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
exDM69
searching Neon…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
9 ms
·
1.
▲
by
exDM69
1mo ago
> I wonder how much easier/better the code would have been to write with portable_simd .. I had a quick glance of the code and it seems to use mostly basic arithmetic instructions on fixed width simd vectors using some helper macros
2.
▲
by
exDM69
1mo ago
> also think this is a deployment problem, not a build problem ... This I agree with, deploying and running code for the correct cpu is a problem with no established solution. As for actually writing the code, portable_simd is great. You
3.
▲
by
exDM69
1mo ago
> The second part of the problem is how you find the native vector length, so you can instantiate the generic function. IIRC this isn't even exposed in portable_simd and you have to use a seperate crate to get it. This is trivial (b
4.
▲
by
exDM69
1mo ago
I can and I do use this is "actual code" and I've got benchmarks to prove that it's got better throughput (for the particular use case, don't extrapolate from there) and the same applies to AVX2 and AVX512: twice th
5.
▲
by
exDM69
1mo ago
Counter question: why shouldn't it be portable? It's definitely a 80% solution where you occasionally need to drop down to intrinsics (at zero runtime perf cost) for CPU specific instructions. But just having vector types, arithme
6.
▲
by
exDM69
1mo ago
> They specifies a constant SIMD width so it's non-portable. This is incorrect, you can use vectors wider than native SIMD width and the compiler will break them down to register size of the target cpu. In fact it's sometimes b
7.
▲
by
exDM69
2mo ago
> misdirect Ukrainian drones toward NATO airspace (which has happened). Claims to such effect has been made in public by reputable persons but they are not very credible nor has any supporting evidence been shown in public. Drones gettin
8.
▲
by
exDM69
2mo ago
From what I have read (from unreliable sources), Ukrainian fighter pilots tried this a few years back and stopped due to too many losses. To engage a slow flying drone with cannons from a fighter jet, they have to get really close while fly
9.
▲
by
exDM69
2mo ago
The example code in this article is using Zig's portable SIMD features. Similar features are available for C/C++ (GCC/Clang extension) [0], (nightly) Rust [1] and C++26 [2]. All of these provide a similar set of features and
10.
▲
by
exDM69
2mo ago
> The best SIMD optimizations likely require changing your data format from AoS to SoA. We do have gather load instructions in SIMD instruction sets these days (AVX2 and newer), so AoS vs SoA is not nearly as important as it was once. Sc
11.
▲
by
exDM69
2mo ago
> Is the `@reduce()` function in the example a special... Yes, it is. In SIMD you can do a reduce for a commutative function in O(log N) steps. Sum, product, min, max, all, any, etc. Although in this case it might be better if you just t
12.
▲
by
exDM69
2mo ago
Thanks for listening to feedback. Seems like you've made many improvements since yesterday. I played a few more rounds today. Fun!
13.
▲
by
exDM69
2mo ago
Absolutely delightful, just played a few rounds. I really love ATC games and the "draw it by hand" aspect makes this kinda funny. Maybe I need to try with a real mouse, kinda slow on a trackpad. For a more serious entrant in this
14.
▲
by
exDM69
3mo ago
That's the whole point! You plug it into your project and it can be rendered on anything that can push pixels and/or triangles to the screen. Events from windowing system go in, list of triangles comes out. This is intended to b
15.
▲
by
exDM69
3mo ago
I started writing a software triangle rasterizer. Not sure exactly why, but I just felt like doing it. Like many software rasterizer projects I used Fabian Giesen's software rasterizer blog series [0] as the baseline. For solid color t
16.
▲
by
exDM69
5mo ago
Slightly related note, the pictures in the articles show a handheld digital oscillscope. It's an Owon HDS200 series oscilloscope with signal generator and they are amazing and the lower frequency models are quite inexpensive. I got mys
17.
▲
by
exDM69
5mo ago
> You can play with sensors (acidity, humidity etc) Can you share some useful sensors? Any good pH sensor that can work for some period of time without manual maintenance (cleaning the probes etc)?
18.
▲
by
exDM69
5mo ago
Great looking instruments. I've built half a dozen similar box guitars, it's such a fun little thing to build. Do I see a piezo disk under the bridge in the 3rd instrument? Do you use some kind of preamp with it? I have been recen
19.
▲
by
exDM69
6mo ago
That's a fun two minutes for any computer scientist drum and bass fan.
20.
▲
by
exDM69
7mo ago
I have shared the trick in this thread above.
21.
▲
by
exDM69
7mo ago
Good attempt, but it's simpler than that. For each AABB, you take the morton code of the minimum and maximum and store them in the array. But for sorting and searching, construct a sort key from the pair of morton codes so that the mos
22.
▲
by
exDM69
7mo ago
Nice and concise description of quadtrees implemented with classical pointer chasing data structures. A faster and (arguably) simpler way to construct quad/octrees is using morton codes, sorting and searching with flat arrays [0]. It&#
23.
▲
by
exDM69
7mo ago
> notorious Vulkan shader compilation lag spikes. Vulkan gives all the tools to avoid any "lag spikes" from shader compiling. In fact, causing them is much more difficult than OpenGL where they could happen in surprising places
24.
▲
by
exDM69
7mo ago
> or you leave performance on the floor The dynamic rendering local read feature is for this. You can get tiler gpus working on the happy path without the need for verbose render passes. But mobile driver support being what it is, it
25.
▲
by
exDM69
7mo ago
> look up the extension on vulkan.gpuinfo.org and see ... currently 0.3% of all devices support it. Afaik the extension isn't even finalized yet and they are pre-releasing it to gather feedback. And you can't use gpuinfo for as
26.
▲
by
exDM69
7mo ago
That's the right way to go for simple use cases and especially getting started on a new project.
27.
▲
by
exDM69
7mo ago
You can use descriptor heaps with existing bindless shaders if you configure the optional "root signature". However it looks like it's simpler to change your shaders (if you can) to use the new GLSL/SPIR-V functionality
28.
▲
by
exDM69
8mo ago
The GPS jamming maps are based on commercial air traffic flying in the area. While that gives some ideas of how widespread the jamming is, it won't give accurate information about the range (air traffic avoids areas with jamming) of th
29.
▲
by
exDM69
8mo ago
Starlink was also blocked by radio frequency interference. Granted that can't possibly cover the entire area of the country.
30.
▲
by
exDM69
8mo ago
Using printf and debuggers are complementary. Finding which pixel to debug, or just dumping some info from the pixel under mouse cursor (for example) is better done with a simple printf. Then you can pick up the offending pixel/vertex&
More ›