An Axis-Aligned BSP tree is a data structure that can be used to accelerate ray tracing of triangle meshes.
It uses an algorithm to transform an object into the Axis-Aligned BSP tree data structure as described here:
It does this by first subdividing the scene. This is done by recursively dividing a scene into smaller subspaces using an axis-aligned planes. These planes are chosen to minimize the number of triangles in each subspace.
Then it creates a tree hierarchy of the subspaces where each node represents a subspace. The root node represents the entire scene, and each child node represents a smaller subspace.
After that when you cast a ray you traverse the BSP tree to find the closest intersection point with a triangle. This is more efficient that a for loop as you eliminate large portions of the scene that the ray does not intersect with by going down each branch and checking if it's inside the bounding box and afterward checking the nodes inside the bounding box if they have a triangle that intersects with the ray instead of checking the entire scene.
This way the Axis-Aligned BSP tree eliminates a lot of unnecessary ray-triangle intersection tests by organising the scene into a tree structure that can be traversed which leads to faster rendering times by lighting the load on the GPU though it does increase the load on the CPU causing higher loading times for streaming objects into the gpu memory/buffers as the cpu has to calculate the BSP tree first.