CUDASubdivideEdges

From K-3D

Jump to: navigation, search

Template:CUDASubdivideEdges

Description

The CUDASubdivideEdges plugin is a GPGPU implementation of the SubdivideEdges plugin using the CUDA API by Nvidia[1].

See the CUDA_Plugin for more details on the CUDA plugins in general.

Results

The following image shows the speedup obtained for the CUDASubdivideEdges plugin over the CPU implemetation.

Image:CUDASubdivideEdgesSpeedup.png

Analysis

In order to better understand the performance of the CUDASubdivideEdges plugin, the contributions of various sub-steps are plotted in the following image.

Image:CUDASubdivideEdgesBreakdown.png

Here it can be seen that the step that contributes most significantly to the total execution time is the Calculate companions step. This is due to the fact that this step contains a significant amount of serial code which is not well suited to run on the GPU. When comparing this breakdown to that of the CPU implementation of the SubdivideEdges plugin in the image below, it is clear that GPU implementations of the sub-steps excluding Calculate companions are of similar or better performance than their CPU counterparts. Furthermore, an improvement in the performance of Calculate companions will have the greatest impact on the performance of the entire CUDASubdivideEdges plugin.

Image:SubdivideEdgesBreakdown.png