Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

CUDASegmentation.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *cr
00003  *cr            (C) Copyright 1995-2019 The Board of Trustees of the
00004  *cr                        University of Illinois
00005  *cr                         All Rights Reserved
00006  *cr
00007  ***************************************************************************/
00008 /***************************************************************************
00009  * RCS INFORMATION:
00010  *
00011  *      $RCSfile: CUDASegmentation.h,v $
00012  *      $Author: johns $        $Locker:  $             $State: Exp $
00013  *      $Revision: 1.10 $        $Date: 2020/02/26 20:16:56 $
00014  *
00015  ***************************************************************************/
00022 #ifndef CUDA_SEGMENTATION
00023 #define CUDA_SEGMENTATION
00024 
00025 typedef struct {
00026   void *tmp_d; // GPU memory buffer for temporary storage
00027   unsigned long sz;   // size of the GPU memory buffer
00028 } gpuseg_temp_storage;  
00029 
00030 void free_gpu_temp_storage(gpuseg_temp_storage *tmp);
00031 
00032 template <typename GROUP_T>
00033 long sequentialize_groups_cuda(GROUP_T* groups_d, GROUP_T* group_map_d, 
00034                                unsigned long nVoxels, unsigned long nGroups, 
00035                                gpuseg_temp_storage *tmp = NULL,
00036                                gpuseg_temp_storage *scanwork = NULL);
00037 
00038 template <typename GROUP_T, typename IMAGE_T>
00039 void find_groups_max_idx_cuda(GROUP_T* groups_d, IMAGE_T* image_d, unsigned long* max_idx, unsigned long nVoxels, unsigned long nGroups, gpuseg_temp_storage *tmp = NULL);
00040 
00041 template <typename GROUP_T, typename IMAGE_T>
00042 void hill_climb_merge_cuda(GROUP_T* groups_d, IMAGE_T* image_d, unsigned long* max_idx_d, GROUP_T* group_map_d,
00043                              int height, int width, int depth, unsigned long nGroups);
00044 
00045 template <typename IN_T, typename OUT_T>
00046 void copy_and_convert_type_cuda(IN_T* in, OUT_T* out, long num_elements);
00047 
00048 template <typename GROUP_T, typename IMAGE_T>
00049 void watershed_hill_climb_merge_cuda(GROUP_T* segments_d, GROUP_T* new_segments_d, IMAGE_T* image_d,
00050                                      GROUP_T* group_map_d, unsigned long* max_idx_d,
00051                                      long height, long width, long depth, unsigned long nGroups);
00052 
00053 #endif

Generated on Sat Apr 20 02:42:35 2024 for VMD (current) by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002