CUDASubdivideEdges
From K-3D
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.
Analysis
In order to better understand the performance of the CUDASubdivideEdges plugin, the contributions of various sub-steps are plotted in the following image.
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.