[ITK-users] GPU Implementation

Michael Pinkert mpinkert at wisc.edu
Tue Dec 9 14:15:56 EST 2014


Hi Xiaopeng,

Unfortunately, I was not able to fix this problem in my code. Please let us know if Jim's explanation is accurate. 

Best regards,
Michael Pinkert

On 11/26/14, Xiaopeng Yang  wrote:
> Hi,
> 
> I tried to compile the code from Modules\Registration\GPUPDEDeformable\test
> folder. Enclosed please find the code and CMakeLists file. I am quite new to
> GPU, sorry I could not understand your explanation. Could you point out what
> I missed please?
> 
> Thanks,
> Xiaopeng
> 
> -----Original Message-----
> From: Jim Miller [mailto:millerjv at gmail.com](javascript:main.compose() 
> Sent: Wednesday, November 26, 2014 9:10 PM
> To: Xiaopeng Yang
> Cc: Michael Pinkert; insight-users at itk.org
> Subject: Re: [ITK-users] GPU Implementation
> 
> This doesn't look like any issue with finding OpenCL. The link error is
> saying it cannot find the implementation of an ITK method. 
> 
> I think GPUPDEDeformableRegistrationFilterKernel::GetOpenCLSource(void) is
> supposed to return the kernel's implementation (probably as a string
> containing the OpenCL code). 
> 
> Is there a txx file that is not being included? Does your program contain
> the same headers and test?
> 
> (I guess the error could occur if OpenCL was not found if the implementation
> of this method in GPUPDEDeformableRegistrationFilterKernel is within
> #ifdef/#endif on OpenCL.)
> 
> Jim
> 
> > On Nov 25, 2014, at 10:03 PM, Xiaopeng Yang <yxp233 at postech.ac.kr> wrote:
> > 
> > Hi Michael,
> > 
> > I also had the same errors while building my GPU registration program. 
> > Have you solved the problems? I guess the error was caused by improper 
> > setting in CMakeLists.txt file, but I could not find any 
> > CMakeLists.txt sample regarding GPU implementation in ITK. I doubt 
> > whether there are users using this GPU module or not.
> > 
> > Best regards,
> > Xiaopeng Yang
> > 
> > 
> > This is the question you raised:
> > 
> > I am trying to implement the GPU demons registration algorithm, but I 
> > have been having difficulty getting the program to compile. I believe 
> > the errors are because it cannot find the OpenCL library correctly, 
> > but I'm not sure how to fix it.
> > 
> > I am using a NVIDIA Quadro FX 570 and am currently using OpenCL 
> > through the CUDA Computing Toolkit 4.2. My cmake file is attached, 
> > but I have had to manually enter in the directory locations to CMake 
> > because I have not been able to find a FindOpenCL.cmake file that 
> > works correctly. My operating system is Windows 7 x64.
> > 
> > I am able to compile ITK after generating it in CMake with manually 
> > linked directories and Itk_Use_Gpu checked, but I have not been able 
> > to compile my program without getting errors, which are listed at the
> bottom.
> > 
> > Does anyone have suggestions as to how to fix this? 
> > 
> > Best regards,
> > Michael Pinkert
> > 
> > 2>registrationFunctions.obj : error LNK2019: unresolved external 
> > 2>symbol
> > "public: static char const * __cdecl
> > itk::GPUPDEDeformableRegistrationFilterKernel::GetOpenCLSource(void)"
> > (?GetOpenCLSource at GPUPDEDeformableRegistrationFilterKernel@itk@@SAPEBD
> > XZ) referenced in function "public: static char const * __cdecl 
> > itk::GPUPDEDeformableRegistrationFilter<class 
> > itk::GPUImage<float,3>,class itk::GPUImage<float,3>,class 
> > itk::GPUImage<class itk::Vector<float,3>,3>,class 
> > itk::DemonsRegistrationFilter<class
> > itk::GPUImage<float,3>,class itk::GPUImage<float,3>,class 
> > itk::GPUImage<class itk::Vector<float,3>,3> > >::GetOpenCLSource(void)"
> > (?GetOpenCLSource@?$GPUPDEDeformableRegistrationFilter at V?$GPUImage at M$0
> > 2 at itk@ 
> > @V12 at V?$GPUImage at V?$Vector at M$02 at itk@@$02 at 2@V?$DemonsRegistrationFilter
> > @V?$GP 
> > UImage at M$02 at itk@@V12 at V?$GPUImage at V?$Vector at M$02 at itk@@$02 at 2@@2@@itk@@SA
> > PEBDXZ
> > )
> > 
> > 2>registrationFunctions.obj : error LNK2019: unresolved external 
> > 2>symbol
> > "public: static char const * __cdecl
> > itk::GPUDemonsRegistrationFunctionKernel::GetOpenCLSource(void)"
> > (?GetOpenCLSource at GPUDemonsRegistrationFunctionKernel@itk@@SAPEBDXZ)
> > referenced in function "public: static char const * __cdecl 
> > itk::GPUDemonsRegistrationFunction<class itk::GPUImage<float,3>,class 
> > itk::GPUImage<float,3>,classitk::GPUImage<class 
> > itk::Vector<float,3>,3>
> >> ::GetOpenCLSource(void)"
> > (?GetOpenCLSource@?$GPUDemonsRegistrationFunction at V?$GPUImage at M$02 at itk
> > @@V12@
> > V?$GPUImage at V?$Vector at M$02 at itk@@$02 at 2@@itk@@SAPEBDXZ)
> > 
> > 
> > 
> > 
> > _____________________________________
> > Powered by www.kitware.com
> > 
> > Visit other Kitware open-source projects at 
> > http://www.kitware.com/opensource/opensource.html
> > 
> > Kitware offers ITK Training Courses, for more information visit:
> > http://www.kitware.com/products/protraining.php
> > 
> > Please keep messages on-topic and check the ITK FAQ at:
> > http://www.itk.org/Wiki/ITK_FAQ
> > 
> > Follow this link to subscribe/unsubscribe:
> > http://public.kitware.com/mailman/listinfo/insight-users


More information about the Insight-users mailing list