Viewing profile — 414owen
414owen
HN member- Joined
- Tue, Oct 11, 2016, 5:57 PM UTC
- HN karma
- 370
- Public activity
- 36 items
- HN profile
- View on Hacker News ↗
About 414owen
[ my public key: https://keybase.io/414owen; my proof: https://keybase.io/414owen/sigs/QGb2QrkyTUSMzBiHib_rL_aoACN-NGtHJHQ8RmxQguY ]
Recent public activity
- story
- story
-
comment
Comment #46401140
Wow, okay. I would imagine this makes mathematicians quite angry? I guess you're responsible for all the operations you use in your proof being well-behaved. It sounds like subtrac…
-
comment
Comment #40571518
Word.
-
comment
Comment #39466145
re2c works like a charm. I'm generally confident that I couldn't write faster scanners by hand if I tried.
-
comment
Comment #37040272
This code was written a while ago, but I decided it merited a write-up recently.
- story
-
comment
Comment #36848204
I have DietPi running on a Raspberry pi Zero W (armv6l), which is a system that's supported by barely any distros nowadays. It was easy to preseed, has the absolute bare minimum am…
-
comment
Comment #36657790
This is pretty much `assembly language the game`: https://tomorrowcorporation.com/humanresourcemachine It's not a useful architecture, but it teaches the thought process really wel…
-
comment
Comment #36657666
The array lookup approach taken in part two: https://owen.cafe/posts/the-same-speed-as-c/ But taking the length of the string as a parameter is not, because that changes the proble…
-
comment
Comment #36628757
Kind words, much appreciated!
-
comment
Comment #36628372
I guess the question is whether the compiler should optimize a function containing a loop for a single null terminator, or for more data. I would suggest the latter is what you wan…
-
comment
Comment #36625014
So I actually did try that, but and IIRC it didn't produce a CMOV with either gcc or clang. I didn't put it in the repo because it wasn't an improvement (on my machine) and I decid…
-
comment
Comment #36624742
That's the thing, a C compiler has all the information it needs to know that the maximum amount of times a '\0' can be processed in the loop is once (because the function returns),…
-
comment
Comment #36624157
Very interesting approach. I should probably have specified that the somewhat naive assembly in `02-the-same-speed-as-c/loop-5.x64.s` is the fastest version I have. On my machine I…
-
comment
Comment #36623958
Nice! There's a part two in which I rewrote the C. I got a 12x speedup :) https://owen.cafe/posts/the-same-speed-as-c/ And as others have pointed out, you can tweak the input, then…
-
comment
Comment #36623823
The version that's friendly to the compiler is described in part two: https://owen.cafe/posts/the-same-speed-as-c/ It achieves 3.88GiB/s I intentionally didn't go down the route of…
-
comment
Comment #36623739
> because without FDO (or PGO) the compiler has no idea how likely each branch is to be taken So, the maximum amount of times you can hit '\0' is once in the string, because then t…
-
comment
Comment #36623500
Yes, I explained in the `Benchmarking setup` section that I used `march=native`, but I guess I forgot to mention I used -O3.
-
comment
Comment #36620483
I'd probably look for a tech co-founder. Such a small percentage of startups make it, and having a learning-as-you-go tech team will not help those already small chances. That said…
-
comment
Comment #36618345
A clickbait title for an in-depth look at hand-optimizing a very simple loop.
- story
-
comment
Comment #33340855
I would. A few basic requirements are: git, linux, a desktop computer (or to be allowed to use my own)
-
comment
Comment #32594977
I'm using lemon to parse a programming language. Lemon produces this report for my grammar: Parser statistics: terminal symbols................... 19 non-terminal symbols..........…
-
comment
Comment #32480699
I migrated my main personal project (a programming language written in C) to Tup recently. So far I love it, it seems to 'just work'. Some highlights: No need to map header (or oth…