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.
Great stuff. I find it really funny that a big feature of modern API’s is that applications place barriers instead of being handled by the driver, and we all tried it for a while and then threw up our hands and decided to write graph systems to automatically place them because it was too hard.