OptiX works with both CUPY and NUMPY buffers, while CUPY is handled natively, Numpy can't so we allocate a GPU buffer to copy the numpy pointer into, then run the calculations on the GPU buffer, and then we transfer the results back to the numpy pointer. While this kind of workflow is expected, I've noticed that numba produces a user-facing warning that this usage results in an unnecessary overhead. Maybe we should produce such a warning as well.