One way to get the data is to render to a (hidden) surface/canvas. It’s just bytes to the computer, so just dump the result data in the display buffer. Then you take a “screenshot” and interpret the RGBA values as data.
Graphics Programmer here.
More likely you would just write data to a buffer (basically an array of whatever element type you want) rather than a render target and then read it back to the cpu. Dx, vulkan, etc. all have APIs to upload / download to / from the GPU quite easily, and CUDA makes it even easier, so a simple compute shader or CUDA kernel that writes to a buffer would make the most sense for general purpose computation like an advent of code problem.