Deletions are marked like this. | Additions are marked like this. |
Line 15: | Line 15: |
---- === Implemented === |
|
Line 16: | Line 18: |
=== mrisComputeMetricPropertiesCUDA === | ==== mrisComputeMetricPropertiesCUDA ==== |
Line 22: | Line 24: |
=== mrisIntegrateCUDA === | ==== mrisIntegrateCUDA ==== |
Line 29: | Line 31: |
=== mrisLineMinimizeCUDA === |
==== mrisLineMinimizeCUDA ==== |
Line 37: | Line 38: |
=== mrisComputeDistanceErrorCUDA === | ==== mrisComputeDistanceErrorCUDA ==== |
Line 44: | Line 45: |
=== MRIScomputeSSE_CUDA === | ==== MRIScomputeSSE_CUDA ==== |
Line 50: | Line 51: |
---- === Planned === |
See also: CUDADevelopersGuide
CUDA mrisurf
Author: T.Witzel
Notes on CUDA implementation of some of the surface functions in mrisurf.c.
see dev/utils/mrisurf.c, dev/utils/mrisurf_cuda.cu and dev/include/mrisurf_cuda.h
TODO
- handle ripflag
- handle corner-cases
- consolidate cpu and cuda routines (the routines listed below are copies of the cpu versions, so much is redundant, making long-term maintenance a hassle)
Implemented
mrisComputeMetricPropertiesCUDA
static int mrisComputeMetricPropertiesCUDA(MRI_CUDA_SURFACE *mrics, MRI_SURFACE *mris);
mrisIntegrateCUDA
static int mrisIntegrateCUDA(MRI_SURFACE *mris, INTEGRATION_PARMS *parms, int n_averages);
mrisLineMinimizeCUDA
static double mrisLineMinimizeCUDA(MRI_CUDA_SURFACE *mrisc, MRI_SURFACE *mris, INTEGRATION_PARMS *parms);
mrisComputeDistanceErrorCUDA
static float mrisComputeDistanceErrorCUDA(MRI_SURFACE *mris, MRI_CUDA_SURFACE *mrisc, INTEGRATION_PARMS *parms);
MRIScomputeSSE_CUDA
static double MRIScomputeSSE_CUDA(MRI_SURFACE *mris, MRI_CUDA_SURFACE *mrisc, INTEGRATION_PARMS *parms);