Currently, the particle_interaction function implemented on GPU is taking the whole dataset. This can lead to out of memory errors, especially on GPUs with less VRAM. To mitigate this problem, the data should be batched into smaller chunks before processing!
This should be addressed by calculating the needed and available memory on the GPU. Dividing these two values gives a lower bound on the number of batches to divide the dataset into.
Static dividing of the data based on the total VRAM size of the GPU. This gives the index values to be passed down for calculation.
Dynamically determine how much space is left on the GPU and generate the index list. The number of elements of the index list changes every time, depending on how much the GPU is utilized.
Currently, only the phase function is batched due to the large number of angles that sometimes require calculation. The approach should be generalized further for other functions.
Currently, the particle_interaction function implemented on GPU is taking the whole dataset. This can lead to
out of memory
errors, especially on GPUs with less VRAM. To mitigate this problem, the data should be batched into smaller chunks before processing!This should be addressed by calculating the needed and available memory on the GPU. Dividing these two values gives a lower bound on the number of batches to divide the dataset into.