News for hackers. Stuff that matters.
Re:Chip Design Shifts as Fundamental Laws Run Out of Steam by djmips on Tuesday November 01, 2022 @06:03AM (#33419093)
I agree with the parent of your post. I work in a field where Moore's law gets artificially arrested for often a decade at a time - console games - and we no stranger to being critically aware of how much memory we are copying around - we will reach for hand coded SIMD math and we stare at our shader assembly looking for more performance. You should see what some do to get top line performance in collision detection. It even leaves me a bit sweaty... I'm not discounting what you conjecture about the next Carmack being in the machine learning arena - that's how I feel too, but I still strongly believe that we will see more demand for programming that can eke our performance with what we have.
Re:Chip Design Shifts as Fundamental Laws Run Out of Steam by urthor on Tuesday November 01, 2022 @07:18AM (#33419647)
Physical simulation is unique due to latency requirements. The impossibility of using the data center is the common denominator in high performance programming.

In my field, Spark, functional programming for data parallelism, few if any problems of Moore's law ever truly eventuate.

"Compute bottlenecks" are so uncommon. Databricks has almost no lines of Scala written, SQL/Python are "fast enough." Commoditization, "good enough" libraries, packaged in SQL/Python for the lowest common denominator.

Carmack's genius of the inverse square misses the point.

Carmack's genius was the video game Quake itself.

The mathematical brilliance, the high performance programming, was genius applied to overcome a bottleneck.

(And what temporary genius. Contrast Carmack with Unity).

Originality, usefulness. Imagination meeting relevance, is the engine that powers software.

Re:Chip Design Shifts as Fundamental Laws Run Out of Steam by Panzer04 on Tuesday November 01, 2022 @07:55AM (#33420005)
But within reason, these are areas where huge returns can be made with higher performance programming as opposed to speed of development - a 10% performance increase can save stupid amount of money on hardware - and with hardware lasting longer I think there will be an increasing focus on that.
Re:Chip Design Shifts as Fundamental Laws Run Out of Steam by urthor on Tuesday November 01, 2022 @07:18AM (#33419656)
I'd cheekily argue.

The video game industry has downloaded more memory leaks personal machines than all the other domains of software combined. So many lines of terrible C++ have been written...

The importance of Moore's law falls flat in front of good old "bugger good code, Morrowind's rebooting the Xbox."

Re:Chip Design Shifts as Fundamental Laws Run Out of Steam by bjourne on Tuesday November 01, 2022 @10:15AM (#33421526)
When I play console games on my Xbox 360 the biggest annoyance by far is the loading times. You run around in Skyrim and you enter a house so you have to wait 30 seconds for the content to load. Then you leave the house and have to wait 30 seconds again. My point is that the relevant performance metric isn't speed of number crunching anymore - it is speed of transporting data from one part of the system to another.
Re:Chip Design Shifts as Fundamental Laws Run Out of Steam by adamc on Tuesday November 01, 2022 @01:52PM (#33424758)
DirectStorage is an attempt to address that, no?
Re:Chip Design Shifts as Fundamental Laws Run Out of Steam by syntheweave on Wednesday November 02, 2022 @06:26AM (#33433638)
I believe a critical difference between the high performance of now vs yesteryear is the degree to which it's a design problem vs an implementation problem.

When writing 6502 assembly, you have "tricks" galore. You do have a design trade-off to make: memory vs CPU cycles, and when looking at algorithms in really old programs, they often dispensed with even basic caching to save a few bytes. But a lot of the savings came from gradually making the program as a whole a tighter specimen, doing initializations and creating reports with just a few less instructions. The "middle" of the program was of similar importance to the design and the inner loops, and it popularized ideas like "a program with shorter variable names will run faster" or "a program with the inner loop subroutines at the top of the listing will run faster". (both true of many interpreters) An engineer of this period worked out a lot of stuff on paper, because the machine itself wasn't in a position to give much help. And so the literal "coding" was of import: you had to polish it all throughout.

Today, the assumption is that the middle is always automated: a goop of glue that hopefully gets compiled down to something acceptable. Performance is really weighted towards the extremes of either finding a clever data layout or hammering the inner loop, and to get the most impactful results you usually have a little of both involved.

The hardware is in a similar position to the software: the masks aren't being laid out by hand, and they increasingly rely on automation of the details. But they still need a tight overall design to get the outcome of "doing more with less."

And the justifications for getting the performance generally have little to do with symbolic computation now: we aren't concerned about simply having a lot of live assets tracked in a game scene(a problem that was still interesting in the 90's, but more-or-less solved by the time we started having hundreds of megabytes of RAM available), we're concerned about having a lot of heavy assets being actively pushed through the pipeline to do something specific, which leans towards approaches that see the world in less symbolic or analytical terms and as more of a continuous space sampled to some approximation. Which digital computing can do, but isn't the obvious win like it once was.