Medical imaging began with the discovery of X-rays in the 19th century and the old-fashioned X-ray remains a powerful diagnostic tool. These days, however, doctors can often do much, much better with modern imaging technologies. While the traditional X-ray requires nothing more than a source of the rays and a sheet of film, today’s imaging is computationally intense.
Increasingly, that means the graphics systems of the computers at the heart of imaging technology end up doing double duty. High-performance graphics processors drive the super high-resolution displays that these devices demand. And the enormous processing power of those GPUs is used for the computational heavy lifting needed to create the images.
Computerized tomography (CT) is the oldest and still one of the most useful of the computerized imaging techniques. A CT scanner takes a series of X-ray pictures by rotating around the body. These pictures are then assembled to create an image of a cross-section of the body. A series of these slices can be used to construct a 3D image of a section of the body.
National Institutes of HealthThis sounds simple, but it takes a tremendous amount of math to get from individual exposures to the reconstructed image. Specifically, it involves the computation of a large number of Fourier transforms whose effect is to use data about neighboring points to increase the information about each point in the image.
If you have been following this series, you know that this is the sort of computation that profits tremendously from parallel processing, since the computation for each point can be carried out independently of any others. The effect can be dramatic. Klaus Mueller’s RapidCT project at the State University of New York-Stony Brook found that using GPU processing could reduce the time needed for a CT scan reconstruction from 135 seconds to less than seven seconds. And that was on an NVIDIA GeForce 8800 GTX GPU, a fairly modest unit by current high-performance standards.
X-rays, including CT scans, depend on the fact that certain tissues, such as bones, absorb far more radiation than others. Magnetic resonance imaging (MRI) depends of the different response of tissue types to strong magnetic fields and is more effective than CT in resolving soft tissue. Like CT, MRI depends of mathematics to reconstruct the data into an image. MRI math is a lot more complicated, but again, it can be set up for efficient parallel processing.
The Georgia Tech Center for Advanced Brain Imaging (CABI) uses Jacket software from Accelereyes, which supports GPU processing in MathWorks MATLAB. CABI uses functional MRI (fMRI) scans to observe brain activity as it happens.
The key challenge in analyzing the scans, is “segmentation,” the process of dividing the brain image into the tissues, such as blood vessels, grey matter, white matter and cerebro-spinal fluid. CABI uses Accelereyes Statistical Parametric Mapping for bspline interpolation, a mathematical technique that accurately fits smooth curves to data points.
“The main factor that makes b-spline interpolation work nicely with parallelization is that it can be performed independently over individual data points,” says Ani Dasgupta, a Geogia Tech graduate student at CABI. “So as opposed to a CPU performing interpolation one data point at a time, a GPU would take up a chunk of points and interpolate them in parallel, since the interpolation of one point does not depend on the outcome of others.”
Parallel processing on the GPU has resulted in a 3.6X speedup of segmentation time, compared with CPU-only processing on an Intel quad core Nahalem-class processor. More recent tests point to a speedup of up to 15X.
Dasgupta also says that GPU-based parallel processing has gotten much easier: “Another important factor in favor of this is the ease of programming with GPUs after the advent of CUDA from nVIDIA. Traditionally, solving non-graphics problems on the GPU used to be very difficult, involving treating non-graphics data like vertices or pixel data points and using complicated graphics APIs to process this information. But with CUDA, a person who knows the C language can get around with writing a program for the GPU. So things are now better and easier for scientists from other fields, should they wish to do such work, than it was before.”
Ultrasound imaging uses high-frequency sound waves to create pictures of internal tissues. But again, it takes a lot of calculation to convert what is basically a pattern of echoes into a usable image. Spencer Technologies, another Accelereyes customer, uses Doppler ultrasound, which, like Doppler radar, uses frequency shifts to detect motion, to analyze blood flow in the brain or motion of the brain relative to the skull. Using an NVIDIA GeForce GTX 280 and Accelereyes Jacket software, Spencer was able to calcuate brain displacement 12 times faster than with CPU processing alone. Spencer think is will soon be able to get a 16X improvement.
The bottom line on all these projects is that GPU-based parallel computing is producing better medical images faster. And as the tools get easier to use, the benefits should spread.
This post is an entry in The World Isn’t Flat, It’s Parallel series running on nTersect, focused on the GPU’s importance and the future of parallel processing. Today, GPUs can operate faster and more cost-efficiently than CPUs in a range of increasingly important sectors, such as medicine, national security, natural resources and emergency services. For more information on GPUs and their applications, keep your eyes on The World Isn’t Flat, It’s Parallel.
Image credits: National Institutes of Health, UC San Diego, Spencer Technologies.