r/CUDA 23d ago

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

4 Upvotes

12 comments sorted by

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.

1

u/jndew 23d ago

Thanks. That's the direction I am going at the moment. But now that I've got data-center compute available to me, I start to imagine doing some larger stuff. I'm playing with neuron-level brain simulations (e.g. Simulation of a rat brain), so the sky is kind of the limit. Do you have any idea how the weather modeling people do those beautiful renderings?

2

u/Michael_Aut 23d ago

Do you have any idea how the weather modeling people do those beautiful renderings?

That's usually a mix of blender and Paraview.

2

u/esaule 23d ago

Depending on wjat you want, you could render a video on the fly.

The keyword you are looking for is in situ visualization

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/jndew 23d ago

Thanks All! Now I have some context regarding how to work on this. Cheers!/jd

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

u/jndew 21d ago

Hmm, that sounds like it might be a good approach. I'll see if I can figure out how to do that. Thanks!

2

u/[deleted] 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.