Thread/Block Allocation and Bounding Box Questions

Hello, I have two questions for a project I am involved in using OptiX.

How does OptiX allocate threads? I understand that it allocates a set number per block, so I’m assuming there is no way to change that. Is there? Also can you change the number of blocks allocated or is this just something OptiX manages?

In a program which tests rays against triangles to find hit points, you can use bounding boxes to optimize finding intersections. What are the trade-offs in speed/accuracy, and where is the optimal spot to place a bounding box. Should it be places over all of the triangles? Is it better to just use one bounding box, or many for a certain number of triangles? In some literature about OptiX it says that bounding boxes operate based on primitive indexes. This leads me to think that one bounding box per primitive would be optimal, is this correct?

Any answers are much appreciated.