4 ms·
What is extremely telling is what is missing ... Design Rule Checking (DRC) and Layout Vs Schematic (LVS). These require: 1) Longer bit length arithmetic 32-
by bsder 5y ago
What is extremely telling is what is missing ... Design Rule Checking (DRC) and Layout Vs Schematic (LVS).
These require:
1) Longer bit length arithmetic
32-bit float simply isn't enough. 64-bit float is close, but limited. You really want 128-bit integer. And nVidia isn't delivering that.
2) Real algorithmic improvements
We're still stuck with computational geometry algorithms that don't parallelize. It would be awfully useful if nVidia would actually research some new algorithms instead of just waving around the ML/AI marketing wand.
But, then, this is the company that built itself on benchmarketing, so ...
- Dylan16807 5y ago> You really want 128-bit integer. And nVidia isn't delivering that. How much slower (per unit area) is that to do in software, compared to a full 128-bit hardware unit?
- erwincoumans 5y ago"as of 11.5, CUDA and nvcc support __int128_t in device code when the host compiler supports it (e.g., clang/gcc, but not MSVC). 11.6 added support for debug tools with __int128_t." See: https://developer.nvidia.com/blog/cuda-11-6-toolkit-new-release-revealed/ https://developer.nvidia.com/blog/cuda-11-6-toolkit-new-rele... https://developer.nvidia.com/blog/implementing-high-precision-decimal-arithmetic-with-cuda-int128/ https://developer.nvidia.com/blog/implementing-high-precisio...
- FutureZeitgeist 5y agoCan you explain why you need greater precision/range?
- tboerstad 5y agoDRC and LVS are just logical checks right? “Is the minimal distance between all metal routing > 10 nm” etc. Can you explain why high precision is needed for that?
- atq2119 5y agoHaving worked in EDA myself, though not on these final signoff steps, I agree that purely geometry-based checks really don't need doubles. Most of it should just be done as 32-bit fixed point. Both because it's better for performance, and because it drives home the point that you need to think carefully about precision issues for correctness reasons. Using doubles is just a band-aid. I'm less confident about it when it comes to anything that involves calculating anything electromagnetic because I just don't know that subfield.
- jiggawatts 5y agoCan you explain why such large numbers are required? Back-of-the-napkin maths is that a chip that is 3cm on each side -- which is huge -- can be subdivided into 0.007 nanometre increments using 32 bit integers. That's 1/7th of the diameter of a hydrogen atom! The resolution with 64-bit floats (let alone integers) would be absurd, roughly a million times finer-grained still. That's probably enough to simulate individual electrons zipping around in their orbitals with acceptable precision. Even if the simulation codes did something silly like simply assigning 1.0 = 1cm, a 64-bit float still allows resolutions of something like a billionth of a nanometre...
- qayxc 5y ago> The resolution with 64-bit floats (let alone integers) would be absurd, roughly a million times finer-grained still. Careful there! Floating point numbers do not form a proper field, not even a semi-group. Due to the uneven distribution of elements, the field axioms don't hold (e.g. both commutativity and distributivity can be violated) and great care has to be taken to assure the numeric stability of computations.
- jiggawatts 5y agoMy physics professor had some good examples of how numeric precision vastly outstrips reality: if modelling a 1m iron bar using 32-bit numbers, the error in length is substantially less than a dust mote landing on the end of it. It's about the same as a virus (not a bacterium) on the end... or not. The oil from a fingerprint is thicker. The mere presence of a human in the room will warm up the iron rod enough to cause it to expand more than this. You only get physically significant errors when using iterated algorithms where the errors accumulate, or when doing what amounts to equality comparisons, which is almost always an error. Note that 64-bit numbers aren't "twice" as precise.[1] They're four billion times more precise. Going to 128 bits is absurd beyond belief. Numbers like these would allow the entire visible universe to be modelled, down to the width of a proton. You do not need 128 bit numbers for anything made on Earth, by humans, ever. If you think you do, you've made a mistake. It's as simple as that. [1] floating point numbers and integers are obviously different, but the concepts are the same. A 64-bit double is "just" 536 million times more precise that a 32-bit float, but that is still an awful lot of precision for anything made of matter...