Turbo-BrainVoyager v4.4

Enabling GPU Sinc Interpolation

Before being able to use sinc interpolation for real-time 3D motion correction, one must once check the capabilities of the graphics card using the GPU Settings dialog that can be invoked from the File menu.

GPUSettingsDlg

The screenshot above shows the GPU Settings dialog on a computer that supports a compatible graphics card. In case that the computer used for real-time processing does not contain a compatible graphics card, the entries in the GPU OpenCL options field are disabled and GPU-based sinc interpolation can not be used. In case that the options are enabled, it is adviced to test the speed of GPU sinc interpolation by pressing the Test button on the right side of the 3D MC sinc interpolation option (see screenshots below). To finally enable the option to use GPU-based sinc interpolation in the TBV Settings dialog, you need to check the 3D MC sinc interpolation option before clicking the OK button to close the GPU Settings dialog.

GPUSettingsDlg2

Note that the Implementation variant box offers several parallelized implementations to support specific hardware details of different graphics card. While it is recommended to use the default OpenCL, using image object option, you may also test which specific variant of code implementation provides best results, i.e. the shortest calculation time. Since option 1 (C++, single-threaded) and option 5 (OpenCL, using 4-element vectors) are meant as control cases, only options 2 (OpenCL, one work-item per (x,y)), 3 (OpenCL, local work-group size (4,4,4)) and 4 (default: OpenCL, using image object) need to be considered in case fine-tuning of performance is desired. After clicking the Test button, the program loads an anatomical dataset for testing (Colin27 in MNI space). It then presents a dialog to start the sinc interpolation process (see screenshot above). After clicking OK the sinc interpolation resampling is performed by applying a rotation (90 degrees around y axis) and scale (1.33) transformation to the test dataset (see screenshot below).

GPUSettingsDlg3

Besides the transformed dataset, the program also presents a dialog informing about the duration of sinc interpolation with the currently specified Implementation variant. In the example case above, the GPU of the used computer was able to perform the resampling of a 1mm dataset with 256 voxels per dimension in 193 milliseconds. This is a very good result since functional volumes have usually smaller dimensions. While it depends on the used TR and the computation time for other analyses, obtained values below 500 ms seem to be good enough to enable sinc interpolation for real-time motion correction. Note, however, that resampling (motion correction) is only one part of the volume-by-volume motion correction process, i.e. also the iterative detection of motion requires further (CPU) processing time.


Copyright © 2002 - 2024 Rainer Goebel. All rights reserved.