Which is kind of lost in the days that everyone wants to be the next unicorn.
I.e. what's the FL2 benchmark on Gen 12 compared to FL1?
Did AMD engineers or seasoned hardware experts from server vendor assist in this implementation?
Were the "Nodes Per Socket", "CCX as NUMA", "Last Level Cache as NUMA" settings tested/optimized? I don't see them mentioned in the article. They can make A LOT of difference for different workloads, and there's no single setting/single recommendation that would fit all scenarios.
"The locality of cores, memory, and IO hub/devices in a NUMA-based system is an important factor when tuning for performance” - „AMD EPYC 9005 Processor Architecture Overview” page 7
What was the RAM configuration? 12 DIMM modules (optimal) or 24 (suboptimal)?
Was the virtualization involved? If so, how was it configured? How does bare metal performance compare to virtualized system for this specific code?
So many opportunities to explore not mentioned in the text.
Viva el Celeron
> for 2x performance
You wish.
Are people at Coudfare so young that they didn't heard about Celeron and Duron ?
Nah I'm good thanks. Slop takes more effort to read and just raises questions of accuracy. It's just disrespectful to your reader to put that work on them. And in a marketing blog post it's just a bad idea.
AI text is everywhere, but this isn’t it.
Remember when they had "implemented a serverless post-quantum Matrix server", where they blatantly lied saying it's production ready, when most of the encryption features were not even implemented. (Then rushed to removed the LLM's 'todo' tags from the code). https://tech.lgbt/@JadedBlueEyes/115967791152135761
To your point, this would register as “human bloviating for word count subtly” if llms didn’t exist, and at this point is probably the most useful feedback. I doubt it’s 100% one-shot AI, but someone definitely optimized it in parts, but the AI heard “concise” as “bullets and short sentences.”
> For our FL1 request handling layer, NGINX- and LuaJIT-based code, this cache reduction presented a significant challenge. But we didn't just assume it would be a problem; we measured it.
It’s not that the “it’s not just A, it’s B” pattern. It’s just that humans don’t write like that. You don’t go “I didn’t just assume; I measured”. People usually say something like “but we didn’t know for sure, so we decided to measure it”. The LLM text is over-confident.
Here’s an example on HN https://news.ycombinator.com/item?id=47538047
> The choice to never invert raster images isn't a compromise, it's the design decision. The problem veil solves is exactly that: every dark mode reader today inverts everything, and the result on photos, histology, color charts, scans is unusable. Preserving all images is the conservative choice, and for my target (people reading scientific papers, medical reports, technical manuals) it's the right one.
It’s like a guy putting together a promo packet or something. A normal person would be a little hesitant and wouldn’t just go. “And what I’m doing isn’t because of constraints. It’s because I am making the right choices!”
It’s just an oddly stilted way of speaking in conversation. Imagine talking to someone like that in real life. It would be all like “And then I thought the problem was that the global variable was set wrong. But I didn’t just assume that, I verified it.”
No one’s accusing you of assuming it, dude. You don’t have to pre-emptively tell us you didn’t just assume it. Normal people don’t say that.
I don’t have much of a problem with LLM text because I just skip over flavor like this to charts, code, and tables but this is obviously LLM
I'd like to make it a bit more normalized to have public writing be transparent about if llms were used and how. That makes it quite a bit easier for readers to focus on the content instead of debating how something was written lol
“But we didn't just assume it would be a problem; we measured it.”
“ Instead of compromising, we built FL2. ”
Idk if i am now seeing this pattern everywhere because it is all AI slop or if people really do write this way.
Skimming it, this looks like they got a partnership with amd and tacked it onto an ongoing project as if it were planned. This confuses us as it makes it harder to understand how much was the rewrite generally or was it some hardware thing? Man, i used to really enjoy cloudflares technical blogs.
Was all the code they rewrote originally in Lua? So was it just a matter of moving from a dynamic language with pointer-heavy data structures to a static language with value types and more control over memory layout? Or was there something else going on?