233 karma · joined October 22, 2022
And while decreasing the gate and metal pitch, also the logic gates have shrunk to be smaller (typically expressed by measuring the height of a gate in amount of metal tracks) from 9tracks down to 6tracks.
Changing the transistor from planar to fins, and now hopefully to ribbons with eventually stacked pmos and nmos are a big enabler.
That said, we’re still not hitting the ideal scaling numbers. We’re just doing somewhat better than what’s suggested by poly and metal pitch only.
I’ve worked with Andrew, one of the authors on occasion in the past, and he and his team of students are among the best academic teams in the world on this topic.
I do think a lot of the secret sauce lives as trade secret with Cadence, Synopsys, Mentor… They see all the real problems in designs from all their customers in bleeding edge nodes like 3nm and beyond.
Having used swig to create Python bindings for C++ code over 10 years ago, what’s the recommended way to do this in 2023? There’s still swig, there’s Cython, pybind11 and a few others. I do know swig and how complicated it can get with footguns abound when things grow more complex.
Is Cython the way to go? How does it hold up to the alternatives? Google search gives many articles on the topic, but many typical SEO optimized low-value, and those that do show a bit of depth, focus on the basic mechanics, not really on things hold up for larger projects…
- Small memory usage within a fixed-sized memory region — no mallocs
- Practical for small scripts (extension scripts, config files)
- Concise source — less than 1000 loc
- Portable ANSI C (Windows, Linux, DOS — 32 and 64bit)
- Simple and easy to understand source
- Simple and easy to use C API
I would say they are more like GPUs or DSPs: programmable but optimised for a specific application domain, ML/AI workloads in this case. Sometimes people call this ASIPs: application specific instruction set processors. While maybe not a very commonly used term, it is technically more correct.
In my view, it's only awkward when the money side of things is not aligned with the personal investment.
That dinner example from the article actually shows this: I buy you all Olive garden dinner, or: I take the time to invite you to my home, spend some time clean the house think on what to by and prepare, what music to play, maybe a movie to watch after etc. in order to have a good time together. This is a much more thoughtful and mutually beneficial form of investment in friendship than just throwing money at it.
Another example could be: Hey, I bought a new board game (or PS5 or something else), wanna come over and play? You might have spent quite some money, but the goal is to be able to invest in spending time with your friends.
The moment that is (or is perceived to be) your main intent, most folks would have a hard time looking at this as bribery.
If you have the chance: check out on of their exhibitions. I saw it back in December in SFMOMA. It's a special and humbling experience to see wall after wall full of all kinds of variations on the same industrial theme, like water towers. (almost like they were generated by a NN, and the Bechers just played with temperature, prompts to create variations...)
You could say the same of these oil rigs: Massive feats of human engineering and ingenuity, worth capturing for eternity, as over time many of them might disappear or will be replaced.
UVM definitely has its place still in verification flows. It for something as complex and flexible as a CPU for sure, it’s hard to beat the amount of cycles and coverage you get from verilator. (EDA license fees are a big part of that, but also the fact that verilator generates just C++ code you can integrate with the rest of your s/w flow is invaluable).
But: What is also important for CPU is good validation and compliance test, (random or replayed or directed) instruction stream generators, ISS to validate agains etc. There are so much more scenarios to check because a CPU needs to handle any sequence of any instructions flawlessly.
Those tools are also crucial. And they are being built or sold for RISC-V now too. And also: I much prefer combining those with verilator than with commercial eda tools. And don’t forget: before you start building a lot of RTL, you’ll typically will also build C based higher level performance models of the micro architecture, eg https://github.com/riscv-software-src/riscv-perf-model
But it’s going to be a chaotic gold rush with many competing solutions for a while, before a de facto standard will emerge (the way it usually goes).
Will it be UCIe, or something else? What will change when people introduce co packaged optics as well? Etc.
On the underlying packaging techniques there’s not many companies in the race.
I feel as a foundry, TSMC is technically most strongly positioned here: best offering across multiple technologies and definitely far ahead in offering complex chiplet based solutions.
Samsung and intel bring design into the picture as well, so they play multiple sides. Intel could have made a nice play with their foundry solutions to open up to fabless companies and their chiplet technology. But they failed to leverage that in house so far (their GPUs and accelerators, like pointe vecchio and others seem not commercially viable), which makes it much less likely to succeed in the broader market.
I hope that over time Classical will make it onto the Mac as well. I listen to a lot of classical music while I work and it's more than a bit annoying that the play/volume controls on my Mac don't work...
As an example: there are so many low level ways to run a conv2D kernel on a SIMT machine, but CuDNN will pick the best option for you based on the card you have, and the tensor sizes you are using.
And then add to that the complexity of speculative and out of order execution: you will want to very early decide, i.e. (pre)decode, where branch instructions are, in order to make sure your branch prediction unit has the right inputs in time, to decide where to fetch the next instructions from.
And after all that, on a branch mispredict earlier on (or pipeline flush for another reason), you might need to throw almost all of that expensively decoded instructions away and start fetching from elsewhere...
CPUs are fun :)
Having worked more with images based NN than language models before, I wonder: are LLM inherently more suited to aggressive quantisation, due to their very large size? I see people suggesting here 4b is pretty good, and 3b should be the target.
I remember ResNets etc can of course also be quantized, and up to 8-6b you get pretty good results with very little effort, with low-ish degradation in performance. Trying to go down to 4b is more challenging, though this paper claims with quantisation aware training 4b is possible indeed, but that means a lot of dedicate training compute needed to get to 4b (not just finetuning post-training): https://arxiv.org/abs/2105.03536
Japan is on that list as well, though I think the Mario Kart micro transactions and gambling like mechanisms are still legal.
Belgium probably has one of the strictest laws: “Looking at various games, such as FIFA 18 and Overwatch, Belgium determined that the randomized risk/reward system innate to loot boxes is tantamount to gambling.” Mario Kart Tour, for example, is simply not available there.
[1] https://screenrant.com/lootbox-gambling-microtransactions-il...
Of course, bot x86 and Arm started like that as well - but after 20+ years of evolution, they have to drag along a lot of history. (and one never really takes things away from an ISA, you only add new features, and at best deprecate old ones).
That said, with the extensibility of the ISA in mind as a design principle, I do have good hopes, RISC-V will stand the test of time reasonable well in that sense...
This works well for the uses cases you describe: dedicated inspection equipment or very niche small scale nano fabrication needed. But making a a fully working VLSI CMOS process needs much higher complexity and many more different process steps and equipment.
Which brings me to the second point: - Research labs typically don't care much about yield: they need sufficient amount of working devices to measure and show things are possible and publish about it, but they do not need to bring it up to reliably reproducible results. However when you make an ASIC with millions to billons of transistors and wires, you typically depend on ALL vias and ALL transistors working, not just 80-90% of them, to get a functional chip. This is a lot of hard and dedicated work, in a way it's an art, black magic almost to most: very few people and companies have the expertise to pull this off. It's not a big exaggeration to say only TSMC can do this really well. Just look at how much even Intel is struggling to get their next node out (it's been how many years of Tick Tock Tock Tock Tock.. now?)
Now the website claims a fast fab, but leaves it open what that means: fast production of wafers? Or slow production of wafers that run fast?