Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
mpu
searching Neon…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
5 ms
·
1.
▲
Fastgen – SOTA LLM inference in 3k lines of Python
(github.com)
3 points
by
mpu
1y ago
|
1 comments
2.
▲
by
mpu
1y ago
We just released a tiny (~3kloc) Python library that implements state-of-the-art inference algorithms on GPU and provides performance similar to vLLM. We believe it's a great learning vehicle for inference techniques and the code is qu
3.
▲
A suggestion for test framework writers
(c9x.me)
1 points
by
mpu
9y ago
|
0 comments
4.
▲
An undefined behavior adventure
(c9x.me)
1 points
by
mpu
10y ago
|
0 comments
5.
▲
by
mpu
10y ago
Hi, thanks for the information, but LLVM still does not provide ABI compatibility. If you reduce the struct to 3 i32, it is passed in edi, esi, and edx on my machine. However according to the ABI it should be packed in rdi and rsi. Check
6.
▲
by
mpu
10y ago
I actually decided to take more time to answer your comment more throughly than others. Also, I TA'd twice the class from where you linked the article below, so I know about it :).
7.
▲
by
mpu
10y ago
It's only a goal I set to myself, if we can do better, heck let's do it! Keeping the code short, on the other hand, is really something I care about.
8.
▲
by
mpu
10y ago
I think the extra load/stores clutter the IL. Also, QBE does not really "alternate" SSA/non-SSA, SSA form is built once at the beginning of the compilation pipeline and preserved later. I don't understand what you m
9.
▲
by
mpu
10y ago
Cool, thank you guys!
10.
▲
by
mpu
10y ago
At least, I can try! And also, we are seeing more and more certified C programs: see the DeepSpec NSF expedition grant, the Verified Software Toolchain, and the CertiKOS project for examples. I work with these guys.
11.
▲
by
mpu
10y ago
I take this as a compliment. It means my design choice was totally valid, and maybe even a good one.
12.
▲
by
mpu
10y ago
Then maybe I did not express myself in the best terms. QBE definitely supports stack slots and their registerization! Minic, a small C frontend shipped with QBE makes use of them. The difference is that LLVM forces you to use them even when
13.
▲
by
mpu
10y ago
It's an alternative if you fit in the use case. I did not try to clone LLVM.
14.
▲
by
mpu
10y ago
It's much much smaller (I think libfirm is over 100kloc, QBE is about 6k). But the major difference is the IL: I use a human-readable and easily-printable text IL. This means that you don't need a graph-viewing tool to read the IL
15.
▲
by
mpu
10y ago
Thank you for your words. It is often called NIH, but eh, I learned a lot! And I think that I made some modest improvements over LLVM, you can check them out in my comparison at http://c9x.me/compile/doc/llvm.html
16.
▲
Show HN: QBE – a new compiler back end
(c9x.me)
241 points
by
mpu
10y ago
|
68 comments
17.
▲
by
mpu
11y ago
12,000 links is probably too much.
18.
▲
Fnt: Create Bitmap Fonts with the Command Line
(github.com)
1 points
by
mpu
11y ago
|
0 comments
19.
▲
Fnt: Command Line Font Edition Tooling
(lists.suckless.org)
3 points
by
mpu
11y ago
|
0 comments
20.
▲
Resources for Amateur Compiler Writers [focus on the back end]
(c9x.me)
4 points
by
mpu
11y ago
|
0 comments
21.
▲
by
mpu
11y ago
Hurray, no floating points!
22.
▲
by
mpu
11y ago
So you rewrote the whole thing.
23.
▲
by
mpu
11y ago
You're wrong about the arrays, the standard guarantees that zeroing the bytes of an object of integer type will give a 0 value to the integer. Pointers are a different matter though.
24.
▲
by
mpu
11y ago
Bullshit, on x64 all 32 or 64 bit base arithmetic operations have the exact same cost, except the 64 bit version is one byte longer because of a REX prefix. This is why 32 bits is the natural int size for x64.
25.
▲
by
mpu
11y ago
Bc and dc do exact arithmetic.
26.
▲
by
mpu
11y ago
Anybody who wrote a medium-sized project in C is aware of such a trick. And also of the load of problems that comes with it! (They are not really pointers anymore.) Please stop trying to make C look like javascript, just create a new langua
27.
▲
by
mpu
11y ago
That's what Cello is about I think.
28.
▲
by
mpu
11y ago
Isn't it possible to talk about variance as soon as you have a type constructor (function from types to types)? In this case []. Edit: I don't know go, but if slices give write access, I think the automatic conversion the author
29.
▲
by
mpu
11y ago
Thank you, I fixed that. In my head I knew a REX prefix was necessary and thought it was sufficient, but i386 has shortcuts to load an immediate into a register that are not available in 64 bits version! Thanks for mentioning that.
30.
▲
Loading an x64 register, how hard could it be?
(c9x.me)
51 points
by
mpu
11y ago
|
17 comments
More ›