2. Ray Tracing with Embree Kernels using Intel Xeon Phi

Ray Tracing with Embree Kernels using Intel Xeon Phi

Ray tracing is a well understood algorithm and many applications exist to implement it. A synthetic scene can be generated using known properties of light and materials.

Simply, a ray of light is sent into the scene and the physics of the rays of light are simulated. Ray tracing has been around for many years and implemented on a wide range of architectures. Since each ray is basically independent of each other ray, this leads to a highly parallel implementation which leads to using all the cores in a system. In addition, ray tracing is highly floating point intensive.

With multithreading on a multicore system, the time to render a scene can be reduced dramatically. If there was one core per ray on a system, the time to completion would be the time it would take to render the most complex ray. As primary rays are shot in to the scene, secondary and other rays may also be used to determine the final pixel color.

The Embree rendering kernels were developed to enable other application developers to create high quality and fast ray tracing applications, or to incorporated into existing applications that needed this feature. These kernels exploit parallelism on multiple levels. Various techniques for ray tracing are used in the kernels to take advantage of the parallelism on the Intel Xeon Phi coprocessors.