[ITK-users] GPU Implementation
Xiaopeng Yang
yxp233 at postech.ac.kr
Wed Dec 10 09:02:06 EST 2014
Hi Michael,
I solved the problem according to Jim's explanation. You need to add
ITKGPUPDEDeformable to your target_link_libraries line in CMakeLists:
target_link_libraries(itkGPUDemonsRegistrationFilterTest ITKGPUPDEDeformable
${ITK_LIBRARIES} ).
Best regards,
Xiaopeng
-----Original Message-----
From: Michael Pinkert [mailto:mpinkert at wisc.edu]
Sent: Wednesday, December 10, 2014 4:16 AM
To: Xiaopeng Yang; 'Jim Miller'
Cc: insight-users at itk.org
Subject: RE: [ITK-users] GPU Implementation
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@@SAPE
> > BD
> > 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?$DemonsRegistrationFilt
> > er
> > @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 i
> > tk
> > @@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