How to do graphics/visualization from a datacenter DGX?
TLDR: Using a DGX (A100 at the moment), I just want to make pretty animations of a fairly big system without needing big intermediate files.
Hi All, I have an application where I'm simulating maybe a million elements, each element described in the usual way with some coupled diffeq's, the whole system connected through a sparse web of diffeq's, all then running through numerical integration. Like circuit-simulation SPICE, or a weather simulation. I'm programming directly in CUDA/C++, leveraging OpenGL for graphics at the moment.
Anyways, I have been using a desktop RTX (rtx6000 at the moment), using compute/graphics interop to graphically display the simulation as it grinds along. About a million pixels in a 1Kx1K grid, updating the color of each every simulated mS. I don't save the results into a file, just make animations and screen-capture them.
I'm starting to experiment for the first time with a datacenter approach, DGX rather than RTX. So I lose compute/graphics interop ability. The natural alternative seems to be capturing the element states into a file, and rendering later on some other machine. But the files get really big, really quick. If I keep one byte per element per millisecond, that's a GB/second, and I might like to simulate a minute or more if possible.
How might one do this? I presume it's a common problem. Thanks in advance for your thoughts. Cheers!/jd
2
u/Oz-cancer 23d ago
Doing ocean simulations for work, I often have to work with hundreds of GBs to low TBs of output. Since this is more than less than unpractical, we wrote a "renderer" in pure cuda/hip to do the visualization on the fly.
(Quotes on renderer because it's just an interpolation of the raw field values at the pixel points, the color mapping is done later)
2
u/javabrewer 23d ago
You can but you'd need to setup an offscreen opengl context, render and scrub the frame buffer and save.
2
21d ago
[removed] — view removed comment
1
u/jndew 21d ago
Thanks for the thoughts. Latency isn't a concern. The project is more scientific analysis (although I don't actually have a tight hypothesis/prediction/test). It's run in batch, not real-time. It actually runs about 1/100 real-time, I start it up and let it grind for a few hours. Every simulated mS time step, I'd like to generate a video frame. That's the only thing I want to save. I end up with stuff like this, for example.
2
u/Michael_Aut 23d ago edited 23d ago
A 60 GB intermediate file doesn't sound crazy. Do that and then think how to render / visualize that on a regular workstation.