IBM creates 2nm chip
anandtech.com
anandtech.com
>>IBM states that the technology can fit ’50 billion transistors onto a chip the size of a fingernail’. We reached out to IBM to ask for clarification on what the size of a fingernail was, given that internally we were coming up with numbers from 50 square millimeters to 250 square millimeters.
<<Academically I have obtained a doctorate degree (DPhil, aka PhD) from the University of Oxford>>
It does not say he is/was a professor. (Please correct me if wrong.) Still, a PhD from Oxford is an amazing achievement!
And, yes, I also enjoyed that bone-dry humor about enquiry about size of fingernail...
I think to accommodate such variables the standard would really need to consider only the nail plate that covers the finder itself, not any overhand resulting from growing nails out longer.
Further, I would propose we settle on a single finger to use. While all fingers are important, the dominant role of the pointer finger makes it a clear candidate.
Really, if we're moving to a nail-based benchmark for generating transistor density metrics then these details really need to be, um... nailed down.
IBM achieved 50B transistors in 150mm^2, for a per-transistor area of 3000 nm^2.
TSMC's 5nm process (used by Apple's M1 chip) apparently achieves a transistor area of 5837 nm^2, while Intel's 10nm is lagging at roughly 10000 nm^2.
IBM TSMC Intel Samsung
22nm 16.50
16nm/14nm 28.88 44.67 33.32
10nm 52.51 100.76 51.82
7nm 91.20 237.18* 95.08
5nm 171.30
3nm 292.21*
2nm 333.33
Data from Wikichip, Different Fabs may have different counting methodologies* Estimated Logic Density
Cool. Following along here, I consider that transistors require multiple "features", and these days the more complicated transistor structure has enabled the increase in speed while lowering the power requirements. Power is also now a set of characteristics, the power needed to change transistor state, and the leakage current that remains when the transistor is not switching.
Not just a simple NPN junction FET anymore.
Then I think about those great microchip analyses on Ken Sheriff's blog. How very different transistor layouts show up in circuit designs. I can only imagine that modern high performance SOC design is even more complex.
55 nanometers per transistor sounds like a useful number to me.
Transistor density is weighted number that combines NAND2 transistors/area and scan flip-flops/area.
Tr/mm² = 0.6×(NAND2 Tr/mm²) + 0.4×(scan flip-flop/mm²)
Transistors with 2,3,.. gates are functionally identical to 2,3,.. transistors connected in series, but take chip area that is only a small fraction larger than 1 "normal" transistor. Counting those as either 1, or as multiple (by number of gates) would skew stats in a less-then-useful way.
That is - among other quirks. Ken Shirriff [1] has some excellent articles that touch the topic of what exactly counts as a "transistor".
Properly representing transistor density is a very hard problem, to which many different solutions have been proposed. It's just that the solution typically shows the processes of those who proposed it in the best possible light, so there is no industry consensus.
I could produce a physically smaller transistor, with a smaller gate, source, and drain. However, depending on the limitations of my process changes for scaling I may not actually be able to pack transistors more tightly. Notionally, the smaller transistor could use less energy which improves the chip design, but not be packed more tightly.
There is more than one way to improve a semiconductor at the feature, device, and chip level.
The node naming is a useful convention for the industry because saying something like '10nm' efficiently communicates historical context, likely technological changes, timelines, and other things that have nothing to do with the physical size of the devices on the chips.
It's basically a form of controlled vocabulary.
https://old.reddit.com/r/ECE/comments/jxb806/how_big_are_tra...
https://old.reddit.com/r/askscience/comments/jwgdld/what_is_...
Things like processor caches have similarly low average switching rates, so it doesn't seem out of the realm of possibility to see use of the third dimension for logic.
It's fun to go look back on old CPU coolers. They started around Pentium-era CPUs, then kept getting bigger. Around 100W TDP, they stopped. I think that's the largest practical air-cooled cooler.
Fancier vapor chambers and thicker, higher RPM fans can clear up to thousands in server environments.
To be more specific, one of the things node names have referred to is the M1 (metal 1) half-pitch, or half the center-to-center distance between the metal traces which connect directly (well, almost directly) between transistors. Originally, the closest width you could space those wires was the same as the thinnest width you could make them, since it's basically just a photo negative. If you take the half pitch, that's the width of a wire.
The width of that wire was the thinnest electrode you could make between the n and p regions of silicon, so that was your channel length. Over time we have pushed so that the distance between wires is different from the width of the wires, and the regions of silicon are larger than the distances between them, ect. etc.
So channel length started to shrink much faster than the wires, and in the 2000s it was less than half of the node name and fully a third of the M1 half-pitch. Since then things got even weirder, and "channel length" doesn't correspond to the changes in performance any more.
Since the M1 pitch doesn't track the nodes very well, area density probably won't either. The reason it does so well is probably more to do with the fact that its the other major process goal besides performance- the more transistors you squeeze in, the more chips you get per wafer at a given performance. Foundries ensure the area density keeps increasing as fast as performance, and the difficulty has kept rough pace with performance. It's entirely possible that relative difficulty will change and area density will start to underperform as a metric for performance.
Too many zeroes?
And it is a little strange how IBM decide to name it 2nm when it is much closer to 3nm.
Of course you aren't really because you cant fit the 1440 pins that processor needs to talk to the outside world. But it suggests to me that at some point we'll see these things in "sockets" that connect via laser + WDM to provide the I/O. An octagonal device with 8 laser channels off each of the facets would be kind of cool. Power and ground take offs on the top and bottom. That would be some serious sci-fi shit would it not?
I stopped eyeing for cpu advances a decade ago. If we could have a NN-driven prefetcher that is able to anticipate cache misses from instructions and data, 300 cycles ahead of time, that would be some speedup we all could benefit from, if it found its way into hardware.
https://drive.google.com/file/d/17THn_qNQJTH0ewRvDukllRAKSFg...
It’s not that critical for memory prefetcher because cache hierarchy is helping a lot. Most software doesn’t read random addresses. And prefetchers in modern CPUs are pretty good already. Another thing, prefetcher is not a great application of AI because the address space is huge.
Branch prediction is another story. CPUs only need to predict a single Boolean value, taken/not taken. Modern processors are actually using neural networks for that: https://www.amd.com/en/technologies/sense-mi https://www.youtube.com/watch?v=uZRih6APtiQ
Is there any literature or studies to back this?
I thought one of the downfalls of modern software is a ridiculous number of tiny dynamic allocations, often deliberately randomized in space. Lots of pointer chasing and hard-to-predict access patterns.
And some people work really hard to make their access patterns cache friendly, which is far from trivial and for most software, not a cost they can justify. Sometimes changing the access patterns means reorganizing all vital data structures and going SoA to AoS (or vice versa) and due to limited language support, that can mean sweeping changes across the entire code base. It doesn't help that as new features are added, requirements on these data structures and access patterns can change a lot.
They’re hard to predict individually, but statistically I think they’re rather predictable. Many programs indeed use tons of small allocations and chase quite a few of these pointers. Still, after the program runs for a while, the data is distributed appropriately across caches (e.g. my CPU has 32kb L1D, 512kb L2 and 32MB L3) and it sometimes becomes not terribly bad.
> work really hard to make their access patterns cache friendly, which is far from trivial and for most software
Depends on the goal. If the goal is approaching the numbers listed in CPU specs, FLOPS or RAM bandwidth, indeed, it can be prohibitively expensive to do.
If the goal is more modest, to make software that’s reasonably fast, for many statically typed languages it’s not that bad. Prefer arrays/vector over the rest of the containers, prefer B+ trees over red-black ones, prefer value types over classes, reduce strings to integer IDs when possible, and it might be good enough without going full-HPC with these structs-of-arrays and the complexity overhead.
I think it's important to remember that for instance Zelda: Link's Awakening was less than 512KiB in size and ran on a primitive 1MHz CPU.
But at the same time we have to acknowledge how better it can be to develop for a modern target. We can decide to waste this potential with bloated electron runtimes, but we can also leverage it to make things we thought impossible before.
You can have an exceptional experience with a game in less than the storage and processing power it takes to run Hello World today;
To that end you can make things better and nicer than Links Awakening with modern resources.
But can you make something 500-3000x better? (that's the order of magnitude we're talking about, with Slack vs Zelda)
320x200 was more or less where graphics started. 640x480 was much better. 720p was a lot better than broadcast TV. 1080p was a very nice improvement for a lot of uses. 4K is visibly better, but mostly eye candy. 8K is pointless for a desktop monitor.
The steps give you 4X the number of pixels. At 320x200 you're severely constrained in detail. You'd have a hard time for instance accurately simulating an aircraft's cockpit -- you don't have enough pixels to work with.
1080p to 4K is in most cases not the same kind of difference. There's little for which 1080p is actually constrained in some way and require sacrificing something or working around the lack of pixels.
This isn't because modern software design is bloated and sucks, but simply because improvements diminish. Our needs, abilities and physical senses are finite.
The DK1 was a proof of concept. The DK2 was barely usable for most uses, and not at all for others. The CV1 was about the minimum needed for viable commercial use -- earlier ones needed huge fonts, so many games' UI wouldn't translate well.
By Quest 2 the resolution is okay. It could be better still, but it's no longer horribly limiting for most purposes.
If I do text work on a 1440p 27” monitor I can see the pixels. Anything less than 4K is unacceptable to me. I could see an 8K monitor being a worthy upgrade if I could afford it and my computer could drive it, especially if it meant that I could make the screen larger or wider and still avoid seeing pixels.
Also, we might consider that digital tech is arguably still catching up in some aspects to our best analog technology like 70mm film.
Also, I can read smaller text when the resolution is higher.
When it comes to technology and innovation I believe that asking “why do I need this?” can often be the wrong question. It feels like a bias toward complacency.
Why drive a car when you’ve already got a horse?
Or realistically, to lower hiring costs.
At the top end, tech advancements go towards things that couldn't be done before. And at the bottom end, it's enabling smaller shops to do things they couldn't do before because it's now within their budget.
I'd go as far as saying that most devs do not want to use inefficient languages, write suboptimal code or program that new shiny UI. Quite to the contrary, but users and management demand most of those things just with other names.
The Game Boy CPU ran at 4.19 MHz.
Even in the x64 space massive advances have been made [0]. For 2.5x the power, you can have 8x the parallelism, with 50% faster single core speeds, (plus all the micro improvements with avx, or the other improvements that make 3.5GHz today faster than a 3.5GHz cpu from 10 years ago)
[0] https://cpu.userbenchmark.com/Compare/AMD-Ryzen-TR-3970X-vs-...
It feels like I spend more time now waiting for the computer than I did then. It's the same with the phone - click, wait, click, wait, click, wait. For a taste of what it could be like try running Windows 2000 in a VM. Zoooooooom.
Why? Developers will only optimise their software when it becomes unbearably slow - and in the absence of automated performance tracking and eternal vigilance software gets slower over time. The result is that there is no reason* to get excited about CPU advances. It doesn't make your life better, it's just a cost you have to pay to stop your life getting worse.
* Sure there are some reasons - if you're already using/dependant upon heavily optimised software like games or machine learning, but for most people that's a very small part of their computing use.
Similarly, developers take up the space that better hardware provides until the user experience starts to degrade and they are forced to optimize.
In both cases, you end up with the apparent contradiction that the user's experience doesn't seem to change despite improvements that on the face of it should translate to them.
It also feels like some kind of disdain for performance and optimization has taken root in certain parts of our industry and communities. The "client does not care about this" school of thought that aggressively sees optimizations as foolish to even think about.
While this kind of thinking obviously has its place especially when it comes to proper management, it has been way overblown to the point of not being able to mention performance advantages without someone appearing out of nowhere to smugly tell you how the evil performance and optimization (the enemies of creating revenue, apparently) should be ignored and looked down upon in the face of the allmighty "faster development times".
First, application launch times have to do with storage and memory speed over raw CPU power. So, without knowing your exact specs, I can’t tell you if your launch times for your new and old machine are actually a problem, especially if you’ve upgraded your older machine to an SSD or if your new machine still uses a HDD for its main drive.
Second, I simply don’t believe you that it takes a full three seconds to open gnome calculator on your new machine. Or your old one, really. (It makes me want to ask the annoying question: is Linux that bad? My Mac or Windows machine has opened the calculator instantly regardless of the era).
Finally, this is actually the most important point: capability of your computer is still miles ahead of what it used to be. Try playing 1080p video on your 2004 machine. Now try 4K.
Maybe you say that high resolution video isn’t important. I don’t agree, but fine, let’s move on:
Browser performance is another hugely important aspect where your 2004 machine will get smoked. Sure, you can remain cynical about websites getting “bloated,” but you should also realize that almost all business applications and some seriously complex general purpose applications are all moving to the web. Things like video conferencing in a browser window were a pipe dream in 2004. Microsoft word used to be considered a big complex and slow application, and now multiple competitors just run it right in your browser.
This is a very good thing for interoperability and for making your Linux system actually useful instead of having to jump on your Windows partition every time you want to collaborate on a Microsoft Word document.
You may not like Apple machines but step into an Apple store one day and play around with the cheapest M1 MacBook Air computer. It has no fan, doesn’t get hot on your lap, and the battery lasts 15 hours. Yet, it beats the 16-inch Intel MacBook Pro that is still the most current model on some benchmarks - a machine that is hot, loud, heavy, and will give you probably 6 hours of battery at best with the largest possible battery that’s legal to fly with.
I think the long story short is that software developers leveraging the hardware is actually a good thing. It means that our capabilities are increasing and developers have less friction, so they can deliver more complex and useful functionality. As long as UI latency is within the acceptable range, allowing developers to build more complex software and focus on functionality over performance optimization could be argued to be a very good thing.
In 2004 a developer would struggle to make a decent cross platform application with rich functionality. Something like a chat application with embedded media would need to be written three times to cover three platforms, and I’m still not aware of any chat app in 2004 that had a whole application and webhook ecosystem. The most important part about a chat application is for it to be interoperable! Now you’ve got Slack, which is practically a business operating system. Rather than being annoyed about that I think we should be impressed.
(I also disagree that gaming is just a niche use of hardware. That’s an industry with higher revenues than movies and sports combined).
I have an nvme ssd which gets around 450MB/s according to dd, a Ryzen 3900x (12 cores, 24 threads) and 64 gigabytes of RAM.
That being said, IntelliJ Community edition, installed as a snap, takes 24 seconds to get to splash screen, 57 additional seconds for the splash screen to disappear then another 35 seconds before the first text appears in the IntelliJ window (it's a blank gray window before that) for a grand total of 1 minute and 56 seconds of startup time.
Some things are just unreasonably slow despite absolute beastmode hardware.
I'm running WSL 2 with MobaXterm and from running idea.sh, intellij's splash screen comes up in less than 1 second, and my list of projects comes up in about 3 seconds.
I believe it. It takes 10 seconds or so for the Windows 10 calculator to cold-start on my laptop.
I was shocked the first time I did it because Win7 calculator was basically instant.
This is on a reasonable i7 PC with an SSD that is not slow for other office-y things.
Why God Why, Microsoft? You're a multi-billion dollar company. You can't make a calculator that starts quickly??
https://9to5google.com/2021/04/21/android-12-dp3-all-apps-no...
(You can also perform calculations straight from the Windows search bar. macOS also let’s you perform calculations directly from spotlight search without opening an app.)
alias x='noglob calc-raw'
calc-raw () {
python3 -c "from math import *; print($*)"
}This is why gpgpu processing seems like the wave of the future.
Alternatively, human level AI won't come from OpenAI but the final desperate Intel team trying to create a system that anticipates all serial routines the processor can run in parallel.
It's worth noting that the M1 has a reorder buffer of more 600 micro-ops, which essentially means it can be 600 instructions in the "future" (it's only the future from the point of view of instruction commit).
So have you completely missed the huge advance of ARM that you have in your phone now?
I guess you could cheat and use the area of a thumb nail, but then you could take it a step further and use the area of a horse's fingernail, which is at least 100 times larger...
And I really do support Intel's node renaming if the rumour were true. I am sick and tired of people arguing over it. It is wrong, but that is how the industry has decided to use. Adopt it and move on.
Overall the numbers of "X" nm mean very little
Hence, "Intel they have struggled". For 5years.
We still don't know how it's going to turn out.
> No details on the 2nm test chip have been provided, although at this stage it is likely to be a simplified SRAM test vehicle with a little logic. The 12-inch wafer images showcase a variety of different light diffractions, which likely points to a variety of test cases to affirm the viability of the technology. IBM says that the test design uses a multi-Vt scheme for high-performance and high-efficiency application demonstrations.
So, their function is that they look really cool ?
Yes, yes, I'm leaving...
The question might be more the same one I had: Are they actually making a 2nm POWER processor, or is this just some basic chip that shows that the process works?
Also curious if this development will affect apple silicon or TSMCs bottom line in the near future
Power seems to be more and more out of fashion and other chips seems to preform way better. They cant be making much of those?
Soon IBM will be the biggest consumer of Power as they continue to move customers to Power on IBM Cloud. https://www.ibm.com/cloud/power-virtual-server
In some benchmarks power is faster but instead of spending the extra money on power you can just buy more intel/AMD cpus and not bother with making sure your software work on power.
Every few years we hear "IBM made actually-smallest node" and what ? Just x86 cabal keep trashing our lives.
It's possible IBM is making CPUs for secret govs projects. But if not then all that "IBM made x node" is fraud news. Or something other that change f* nothing. Just scary potential fab builders.
The article mention they will team up with Samsung and Intel. If Intel managed to produce have that chip at scale this would really helped them, given the fact they are behind Apple/TCMS and AMD.
Wouldn't an Intel partnership be bad for their entire Power 9 business? I'm not very familiar with Power 9, but as I understand it's marketed as an alternative to x86 in the server/cloud hardware.
This advancement along with Intel's stagnation could be a good opportunity for IBM to gain more market share there. Maybe Power 9 workstations will even become a thing most people can afford.
It's an interesting chip, and I'm a big fan of CPU diversity, but Power's time has come and gone. It's really only supported internally at this point: IBM i, AIX, RedHat, with Debian and (Open|Free)BSD as the outliers.
We'll just have ARM and RISC-V as non-x86 "real" CPUs, I guess.
And support goes out pretty far. Just to rattle some examples of public "support" for power8/9, Anaconda lists power9 binaries under x86 for their installer (no mention of ARM), PyPy has Power support, V8 has Power support (the basis for Power ports of Chromium w/JIT'd javascript), nvidia has Power drivers/CUDA runtimes on their main download portal.
I'm not trying to paint it as largely supported or even a great platform, but I think it might now be better supported than it ever has been. It's little-endian now, software compatibility is almost 100% outside of JIT'd things (and many JIT'd things have Power ports). If/when it fails or fades away, it'll be because it wasn't good enough to displace the alternatives, rather than because no one supported it or it was too difficult to use/support.
https://www.google.com/search?q=google+cloud+IBM+power has lots of stuff, including a video from 2 years back about how to fire a Power VM up and use it : //www.youtube.com/watch?v=_0ml4AwewXo
(disclaimer : Ex-googler, involved once upon a time in the project, no current knowledge of status).
But yeah, even seeing it is rare. Maybe some console could use a Power chip again (like the GameCube/Wii), though I doubt it.
Intel should pay them to help get stuff into production maybe?
Napkin math: 50b transistors/chiplet x 6 chiplets/socket x 4 socket/motherboard = 1200b transistors/motherboard
If you are willing to count the transistors in your dram (dram has one transistor per bit), then you can already get over 35T transistors (32x 128GB ECC DIMMs with 1.2T transistors per DIMM) per 1RU, or over a quadrillion transistors per rack.
28nm probably where you want to be for cost - check out what raspberry pi and other lower cost products use
http://www.imf.org/~/media/Files/Conferences/2017-stats-foru...
http://www.monolithic3d.com/blog/moores-law-did-indeed-stop-...
https://www.gizmochina.com/2021/03/31/tsmc-price-increase-ru...
It has been true for Intel up until at least 2015, and I expect that ignoring the recent supply chain weirdness it will remain true for a while longer.
http://www.imf.org/~/media/Files/Conferences/2017-stats-foru...
Just look back over CPU development and costs over the last couple decades. The latest gen stuff got ever more complex and ever more capable but cost roughly the same at the time it hit the market.
Also peak performance is allready passed even with multicore because of RAM latency.
I still think 14nm or larger will be coming out on top after a few decades of intense use.
Time will tell!
By that logic CPUs from today should be slower than those from 2005, since the real (uncached) memory latency has increased (significantly) for most systems.
Though I suppose this means you could actually engineer workloads that run slower on a modern 5 GHz CPU than on a 2005-era Athlon 64.
Indeed. At this feature size I'd already start to be worried how long the chip will work.