Advice for generation of diffracted rays

I am planning on moving some simulation code from a CPU only raytracer to optix - I am an optix newbie, but very familiar with RT concepts and programming. Part of the simulation involves generating diffracted rays when a ray hits a “sharp” edge ( it is up to the application to define what is a sharp edge- in an RT engine we use lines with a radius - aka ‘hair’ ). When a ray hits an edge up to , say, 256 new rays in a cone shape can be generated from that hit . This can be done in a recursive algorithm, or a multi-pass approach where we save the rays to be cast at diffraction each level. Recommendations? A diffraction level of about 5 is a practical limit as the ray loses energy each time - after 5 diffractions the ray is typically ‘all worn out’…