I am in the process of using uniform space partitioning to reduce the number of intersection tests. It is almost ready, but I need to finish the code for the intersection of a ray with a box (AABB). Right now I am testing with the front plane (just the plane -- not if it's within those two points of the box).
Uniform space partitioning now works. The test scene is rendered at 8 seconds, while it needed 11. The difference is small, and this is because the Box (AABB) and ray collision detection function is SLOW. I must improve it soon.