Thanks for your comment!
Compute shader is definitely the way to achieve high performance here, but it's a headache to write.