Spline interpolation, a topic of Numerical Analysis, involves deriving the coefficients of an equation that models a curve that goes through two or more points. This technique is used heavily in data visualization and graphics to turn a discrete set of points into a continuous line. In the Advanced Computer Architectures class I took, my group created an implementation of a spline interpolation algorithm using an NVIDIA GPU and the CUDA framework, in an attempt to make an HDD data visualization tool easier to use.

The type of splines we chose to use (and that look the most natural) are called “natural cubic splines.” This means that each spline is made up of cubic functions that are added together to look continuous.

Here are before and after screenshots of the tool:

Image with linear splines - 500 sets     Image with cubic splines - 500 sets

As you can see, it is much easier to distinguish where a specific data set (one line) is going on the right, when using “natural cubic splines.” On the left, it simply looks as if there are sets of line segments that are somehow correlated.

If you’d like to read more about this project, view the paper: Spline Interpolation with CUDA.

See the CUDA code that computes the splines on my github.