Like, can you arrange, say, ten flagship graphic cards for realtime rendering? Do we have game engines that can scale to that number?
Like, can you arrange, say, ten flagship graphic cards for realtime rendering? Do we have game engines that can scale to that number?
Sidenote: I've read that John Carmack and id Software liked to develop on workstations that were "ahead of the curve" that way. It gave them an edge, in that they were able to develop future games for hardware that didn't yet exist, but knowing that consumer PCs would eventually catch up.
I think what made these SGI computers really amazing at the time is that there was no such thing as accelerated 3D graphics in the consumer market at the time (or much real-time 3D for that matter). They also had a cool Unix operating system with a UI that was way ahead of anything you could get on a consumer PC. I can also imagine that it was a much much more comfortable development environment than developing on say, MS-DOS, which didn't even have multitasking.
Add the other features like reliability (esp hot-swapping), servicability, and security (Trusted IRIX) to have some incredible machines. I always wanted inexpensive hardware with hot-swap, RAID, and something like NUMAlink connecting it. Never quite got that. One company did make a NUMA for AMD and Intel:
Unfortunately I wouldn’t say it feels like the future, more like a normal CentOS Linux desktop.
You’ll struggle to get a PC whose BIOS can handle much more than that too.
We used to build clusters for the same thing in the past, but that was largely standard supercomputing stuff but very similar to how the InfiniteReality machines were used. I believe our software once ran on Onyx machines in the dim & distant past.
So in short I wouldn’t say having loads of GPUs is enough to make it feel futuristic.
1) find some graphics problems which people say are not possible on any near-term hardware
2) study the algorithms and identify low level calculations which, if you could do orders of magnitude more of them, would allow you to solve the problem.
3) get a bunch of FPGAs and try to design a machine which can (very slowly) run that architecture
4) once you’ve got it working, slowly replace the FPGAs with ASICs
5) build a box with 16-64 of everything.
I would avoid polygons, since the current architectures are all extremely good at filling polygons. SDFs and raytracing are where you may find the “not on current gen” problems.
An easy one would be: have each GPU raytrace a (say) 320x240 scene, each offset by fractions-of-a-pixel[0] or multiples-of-a-screen from each other, then have a final GPU stitch them together into a full-res video.
0: If you this with 60x1080 resolution, you might be able to replace the final GPU with a dumb hardware multiplexer, though that would make compositing painful at best.
We had hardware that the would merge DVI from up to 8 GPUs, in separate nodes, and produce a single image.
https://www.nvidia.com/en-us/data-center/hgx/
It shows up to the host computer as one really big GPU. Of course, you're going to get worse performance than just a single Titan V because it can handle any game already and there's inevitably going to be latency added by doing work over NVLink/NVSwitch. Those massive GPU products are targeted toward offline rendering or machine learning applications, not so much realtime simulation.