[Rtk-users] Compiling with CUDA
Simon Rit
simon.rit at creatis.insa-lyon.fr
Thu Dec 6 08:52:32 EST 2012
We had a report earlier from someone who had troubles with block
sizes. I have pushed a change this morning that fixed it:
https://github.com/SimonRit/RTK/commit/36d25ceadf659a154dd620303a66025f6c1082c2
Are you trying the current github version? If this still doesn't help,
you should maybe play with the block dimension in
rtkCudaFDKBackProjectionImageFilter.cu and
rtkCudaFFTRampImageFilter.cu to see if that helps.
On Thu, Dec 6, 2012 at 2:40 PM, Andy Shieh <hsieandy at gmail.com> wrote:
> The NVIDIA examples run fine.
> Did you have to do anything in specific to set up CUDA?
>
> What I did was:
> 1. Install CUDA 5.0 production release.
> 2. Build RTK with Cmake. It finds the CUDA toolkit location automatically.
> But in the case of CUDA 5.0, there is no SDK folder. In the case where I
> installed CUDA 4.2, the toolkit and SDK folder are separated, so RTK could
> find both the toolkit and SDK folders.
> 3. Compile with VStudio2010.
>
> Am I missing any steps?
> I might just try another computer and see how things go.
>
> Cheers,
> Andy
>
>
> 2012/12/6 Simon Rit <simon.rit at creatis.insa-lyon.fr>
>>
>> Yes, 256 MB should be sufficient. I have never encountered a problem
>> similar to yours.
>> RTK should work with any cuda greater than 3.2. It's compiled nightly
>> with cuda 3.2, 4.0, 4.1, 4.2 and 5.0:
>> http://my.cdash.org/index.php?project=RTK.
>> Do the NVIDIA examples run fine?
>> Simon
>>
>> On Thu, Dec 6, 2012 at 2:09 PM, Andy Shieh <hsieandy at gmail.com> wrote:
>> > Hi Simon,
>> >
>> > Thanks for your patient help.
>> > My GPU memory is 256MB, which I guess should be quite sufficient? It is
>> > a
>> > FX1700M.
>> > And it is the only cuda device found on my laptop.
>> > Reducing the dimension or lowering the memory burden didn't seem to do
>> > the
>> > trick. RTK still responded with "invalid configuration argument".
>> > I'm guessing there may be some mistakes with my cuda setup or with
>> > compiling
>> > RTK with cuda. I'll try harder and let you know.
>> > Does RTK happen to be compatible with only a specific version of CUDA?
>> >
>> > Cheers,
>> > Andy
>> >
>> >
>> > 2012/11/30 Simon Rit <simon.rit at creatis.insa-lyon.fr>
>> >>
>> >> Hi Andy,
>> >> It seems that you have very little GPU memory. Do you know what
>> >> graphics card you have?
>> >> If I were you, I would start with a smaller volume with the
>> >> --dimension option if you use my command line tools (modify as well
>> >> the spacing at first, e.g., --spacing 8 --dimension 32). You can also
>> >> use the --divisions option to split the volume in pieces but you then
>> >> redo the filtering of all projection images.
>> >> BTW, would you have two graphics card, there is nohing to select one
>> >> over the other. Maybe this is what happens to you? You can then modify
>> >> "GetListOfCudaDevices" and add some parameters to select the graphics
>> >> card based on the memory.
>> >> Let me know if I can help more,
>> >> Simon
>> >>
>> >>
>> >> On Thu, Nov 29, 2012 at 1:53 PM, Andy Shieh <hsieandy at gmail.com> wrote:
>> >> > Hi Simon,
>> >> >
>> >> > Thanks for the suggestion. I tried, but it gave another error
>> >> > message.
>> >> >
>> >> > When I set the m_ProjectionSubsetSize to 1, 2, or 3, I get the
>> >> > following
>> >> > runtime error:
>> >> > ===============
>> >> > Reconstructing and writing...
>> >> > ExceptionObject caught with writer->Update()
>> >> >
>> >> > itk::ExceptionObject (0000000000A5E8D8)
>> >> > Location: "void CUDA_fft_convolution(const int3 &, float *, float2
>> >> > *)"
>> >> > File: C:/RTK/code/rtkCudaFFTRampImageFilter.cu
>> >> > Line: 102
>> >> > Description: itk::ERROR: CUDA ERROR: invalid configuration argument
>> >> > ================
>> >> >
>> >> >
>> >> > When I set it to the default value of 4, I get the CUFFT error in the
>> >> > previous maile.
>> >> >
>> >> >
>> >> > When I set it to 5, 6, and beyond, I get the following runtime error:
>> >> > ==============
>> >> > Reconstructing and writing...
>> >> > ExceptionObject caught with writer->Update()
>> >> >
>> >> > itk::ExceptionObject (0000000000A2ECB8)
>> >> > Location: "void CUDA_fft_convolution(const int3 &, float *, float2
>> >> > *)"
>> >> > File: C:/RTK/code/rtkCudaFFTRampImageFilter.cu
>> >> > Line: 69
>> >> > Description: itk::ERROR: CUDA ERROR: out of memory
>> >> > ==============
>> >> >
>> >> > Cheers,
>> >> > Andy
>> >> >
>> >> >
>> >> > 2012/11/29 Simon Rit <simon.rit at creatis.insa-lyon.fr>
>> >> >>
>> >> >> Hi,
>> >> >> It's seems to be an allocation problem. How big are your projection
>> >> >> images?
>> >> >> You can always change the parameter m_ProjectionSubsetSize to 1 with
>> >> >>
>> >> >>
>> >> >>
>> >> >> http://www.openrtk.org/Doxygen/classrtk_1_1FDKConeBeamReconstructionFilter.html#a5a87bf9cfddd8781a018f3b5cdd374e2
>> >> >> to lower the amount of projection images in the GPU memory.
>> >> >> Simon
>> >> >>
>> >> >> On Thu, Nov 29, 2012 at 9:57 AM, Andy Shieh <hsieandy at gmail.com>
>> >> >> wrote:
>> >> >> > Hi Simon,
>> >> >> >
>> >> >> > I do encounter another problem though.
>> >> >> > So everything compiled file and rtkfdk works fine with cpu.
>> >> >> > However, when I change the hardware argument to cuda, I get the
>> >> >> > following
>> >> >> > runtime error when rtkfdk is "Reconstructing and Writing":
>> >> >> >
>> >> >> > ========================
>> >> >> > ExceptionObject caught with writer->Update()
>> >> >> >
>> >> >> > itk::ExceptionObject (0000000000B3EC88)
>> >> >> > Location: "void CUDA_fft_convolution(const int3 &, float *, float2
>> >> >> > *)"
>> >> >> > File: C:/RTK/code/rtkCudaFFTRampImageFilter.cu
>> >> >> > Line: 85
>> >> >> > Description: itk::ERROR: CUFFT ERROR #2
>> >> >> > ==========================
>> >> >> >
>> >> >> >
>> >> >> > I did try different CUDA toolkit versions (5.0 and 4.2) but it
>> >> >> > didn't
>> >> >> > help.
>> >> >> > Do you know what might be happening? Thanks!
>> >> >> >
>> >> >> > Cheers,
>> >> >> > Andy
>> >> >> >
>> >> >> >
>> >> >> > 2012/11/29 Simon Rit <simon.rit at creatis.insa-lyon.fr>
>> >> >> >>
>> >> >> >> Great! I had no clue what the problem was.... Let us know if when
>> >> >> >> we
>> >> >> >> can
>> >> >> >> help you with anything else,
>> >> >> >> Simon
>> >> >> >>
>> >> >> >> On Nov 29, 2012 8:11 AM, "Andy Shieh" <hsieandy at gmail.com> wrote:
>> >> >> >>>
>> >> >> >>> Hi Simon,
>> >> >> >>>
>> >> >> >>> The problem seems to disappear when I updated the whole
>> >> >> >>> directory
>> >> >> >>> to
>> >> >> >>> the
>> >> >> >>> newest version of RTK.
>> >> >> >>>
>> >> >> >>> Cheers,
>> >> >> >>> Andy
>> >> >> >>>
>> >> >> >>>
>> >> >> >>> 2012/11/29 Andy Shieh <hsieandy at gmail.com>
>> >> >> >>>>
>> >> >> >>>> Hi Simon,
>> >> >> >>>>
>> >> >> >>>> Lately I've been trying to build RTK with CUDA. I tried both
>> >> >> >>>> the
>> >> >> >>>> CUDA
>> >> >> >>>> production release 5.0 and 4.2. I doubled checked that CUDA is
>> >> >> >>>> actually
>> >> >> >>>> working (the CUDA examples run properly). And I made sure that
>> >> >> >>>> the
>> >> >> >>>> CUDA and
>> >> >> >>>> CUDA SDK directories are correctly specified in the
>> >> >> >>>> configuration
>> >> >> >>>> when
>> >> >> >>>> generating the build files. However, I keep getting these
>> >> >> >>>> linking
>> >> >> >>>> errors
>> >> >> >>>> when I tried to compile RTK using Visual Studio 2010. Do you
>> >> >> >>>> have
>> >> >> >>>> any
>> >> >> >>>> idea
>> >> >> >>>> what might be going on? Thanks.
>> >> >> >>>>
>> >> >> >>>> I'm using Win7 64bit, and my CUDA toolkit is for 64 bit as
>> >> >> >>>> well.
>> >> >> >>>>
>> >> >> >>>> =============================================
>> >> >> >>>> Error 1 error LNK2019: Unresolved external symbols "void
>> >> >> >>>> __cdecl
>> >> >> >>>> CUDA_reconstruct_conebeam_init(int * const,int * const,float *
>> >> >> >>>> &,float *
>> >> >> >>>> &,float * &)"
>> >> >> >>>> (?CUDA_reconstruct_conebeam_init@@YAXQEAH0AEAPEAM11 at Z)
>> >> >> >>>> referenced in function "public: void __cdecl
>> >> >> >>>> rtk::CudaFDKBackProjectionImageFilter::InitDevice(void)"
>> >> >> >>>> (?InitDevice at CudaFDKBackProjectionImageFilter@rtk@@QEAAXXZ)
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>> C:\SimonRit-RTK-4353(withHNC)\build\applications\rtkcuda.lib(rtkCudaFDKBackProjectionImageFilter.obj)
>> >> >> >>>> rtkinlinefdk
>> >> >> >>>> Error 2 error LNK2019: Unresolved external symbols "class
>> >> >> >>>> std::vector<int,class std::allocator<int> > __cdecl
>> >> >> >>>> GetListOfCudaDevices(void)"
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>> (?GetListOfCudaDevices@@YA?AV?$vector at HV?$allocator at H@std@@@std@@XZ)
>> >> >> >>>> referenced in function "public: void __cdecl
>> >> >> >>>> rtk::CudaFDKBackProjectionImageFilter::InitDevice(void)"
>> >> >> >>>> (?InitDevice at CudaFDKBackProjectionImageFilter@rtk@@QEAAXXZ)
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>> C:\SimonRit-RTK-4353(withHNC)\build\applications\rtkcuda.lib(rtkCudaFDKBackProjectionImageFilter.obj)
>> >> >> >>>> rtkinlinefdk
>> >> >> >>>> Error 3 error LNK2019: Unresolved external symbols "void
>> >> >> >>>> __cdecl
>> >> >> >>>> CUDA_reconstruct_conebeam_cleanup(int * const,float *,float
>> >> >> >>>> *,float
>> >> >> >>>> *,float
>> >> >> >>>> *)" (?CUDA_reconstruct_conebeam_cleanup@@YAXQEAHPEAM111 at Z)
>> >> >> >>>> referenced
>> >> >> >>>> in
>> >> >> >>>> function "public: void __cdecl
>> >> >> >>>> rtk::CudaFDKBackProjectionImageFilter::CleanUpDevice(void)"
>> >> >> >>>> (?CleanUpDevice at CudaFDKBackProjectionImageFilter@rtk@@QEAAXXZ)
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>> C:\SimonRit-RTK-4353(withHNC)\build\applications\rtkcuda.lib(rtkCudaFDKBackProjectionImageFilter.obj)
>> >> >> >>>> rtkinlinefdk
>> >> >> >>>> Error 4 error LNK2019: Unresolved external symbols "void
>> >> >> >>>> __cdecl
>> >> >> >>>> CUDA_reconstruct_conebeam(int * const,int * const,float *,float
>> >> >> >>>> *
>> >> >> >>>> const,float *,float *,float *)"
>> >> >> >>>> (?CUDA_reconstruct_conebeam@@YAXQEAH0PEAMQEAM111 at Z) referenced
>> >> >> >>>> in
>> >> >> >>>> function
>> >> >> >>>> "protected: virtual void __cdecl
>> >> >> >>>> rtk::CudaFDKBackProjectionImageFilter::GenerateData(void)"
>> >> >> >>>> (?GenerateData at CudaFDKBackProjectionImageFilter@rtk@@MEAAXXZ)
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>> C:\SimonRit-RTK-4353(withHNC)\build\applications\rtkcuda.lib(rtkCudaFDKBackProjectionImageFilter.obj)
>> >> >> >>>> rtkinlinefdk
>> >> >> >>>> Error 5 error LNK2019: Unresolved external symbols "void
>> >> >> >>>> __cdecl
>> >> >> >>>> CUDA_fft_convolution(struct int3 const &,float *,struct float2
>> >> >> >>>> *)"
>> >> >> >>>> (?CUDA_fft_convolution@@YAXAEBUint3@@PEAMPEAUfloat2@@@Z)
>> >> >> >>>> referenced
>> >> >> >>>> in
>> >> >> >>>> function "protected: virtual void __cdecl
>> >> >> >>>> rtk::CudaFFTRampImageFilter::GenerateData(void)"
>> >> >> >>>> (?GenerateData at CudaFFTRampImageFilter@rtk@@MEAAXXZ)
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>> C:\SimonRit-RTK-4353(withHNC)\build\applications\rtkcuda.lib(rtkCudaFFTRampImageFilter.obj)
>> >> >> >>>> rtkinlinefdk
>> >> >> >>>> Error 6 error LNK1120: Five unresolved external symbols
>> >> >> >>>> C:\SimonRit-RTK-4353(withHNC)\build\Release\rtkinlinefdk.exe
>> >> >> >>>> rtkinlinefdk
>> >> >> >>>> Error 7 error LNK2019: Unresolved external symbols "void
>> >> >> >>>> __cdecl
>> >> >> >>>> CUDA_reconstruct_conebeam_init(int * const,int * const,float *
>> >> >> >>>> &,float *
>> >> >> >>>> &,float * &)"
>> >> >> >>>> (?CUDA_reconstruct_conebeam_init@@YAXQEAH0AEAPEAM11 at Z)
>> >> >> >>>> referenced in function "public: void __cdecl
>> >> >> >>>> rtk::CudaFDKBackProjectionImageFilter::InitDevice(void)"
>> >> >> >>>> (?InitDevice at CudaFDKBackProjectionImageFilter@rtk@@QEAAXXZ)
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>> C:\SimonRit-RTK-4353(withHNC)\build\applications\rtkcuda.lib(rtkCudaFDKBackProjectionImageFilter.obj)
>> >> >> >>>> rtkfdk
>> >> >> >>>> Error 8 error LNK2019: Unresolved external symbols "class
>> >> >> >>>> std::vector<int,class std::allocator<int> > __cdecl
>> >> >> >>>> GetListOfCudaDevices(void)"
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>> (?GetListOfCudaDevices@@YA?AV?$vector at HV?$allocator at H@std@@@std@@XZ)
>> >> >> >>>> referenced in function "public: void __cdecl
>> >> >> >>>> rtk::CudaFDKBackProjectionImageFilter::InitDevice(void)"
>> >> >> >>>> (?InitDevice at CudaFDKBackProjectionImageFilter@rtk@@QEAAXXZ)
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>> C:\SimonRit-RTK-4353(withHNC)\build\applications\rtkcuda.lib(rtkCudaFDKBackProjectionImageFilter.obj)
>> >> >> >>>> rtkfdk
>> >> >> >>>> Error 9 error LNK2019: Unresolved external symbols "void
>> >> >> >>>> __cdecl
>> >> >> >>>> CUDA_reconstruct_conebeam_cleanup(int * const,float *,float
>> >> >> >>>> *,float
>> >> >> >>>> *,float
>> >> >> >>>> *)" (?CUDA_reconstruct_conebeam_cleanup@@YAXQEAHPEAM111 at Z)
>> >> >> >>>> referenced
>> >> >> >>>> in
>> >> >> >>>> function "public: void __cdecl
>> >> >> >>>> rtk::CudaFDKBackProjectionImageFilter::CleanUpDevice(void)"
>> >> >> >>>> (?CleanUpDevice at CudaFDKBackProjectionImageFilter@rtk@@QEAAXXZ)
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>> C:\SimonRit-RTK-4353(withHNC)\build\applications\rtkcuda.lib(rtkCudaFDKBackProjectionImageFilter.obj)
>> >> >> >>>> rtkfdk
>> >> >> >>>> Error 10 error LNK2019: Unresolved external symbols "void
>> >> >> >>>> __cdecl
>> >> >> >>>> CUDA_reconstruct_conebeam(int * const,int * const,float *,float
>> >> >> >>>> *
>> >> >> >>>> const,float *,float *,float *)"
>> >> >> >>>> (?CUDA_reconstruct_conebeam@@YAXQEAH0PEAMQEAM111 at Z) referenced
>> >> >> >>>> in
>> >> >> >>>> function
>> >> >> >>>> "protected: virtual void __cdecl
>> >> >> >>>> rtk::CudaFDKBackProjectionImageFilter::GenerateData(void)"
>> >> >> >>>> (?GenerateData at CudaFDKBackProjectionImageFilter@rtk@@MEAAXXZ)
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>> C:\SimonRit-RTK-4353(withHNC)\build\applications\rtkcuda.lib(rtkCudaFDKBackProjectionImageFilter.obj)
>> >> >> >>>> rtkfdk
>> >> >> >>>> Error 11 error LNK2019: Unresolved external symbols "void
>> >> >> >>>> __cdecl
>> >> >> >>>> CUDA_fft_convolution(struct int3 const &,float *,struct float2
>> >> >> >>>> *)"
>> >> >> >>>> (?CUDA_fft_convolution@@YAXAEBUint3@@PEAMPEAUfloat2@@@Z)
>> >> >> >>>> referenced
>> >> >> >>>> in
>> >> >> >>>> function "protected: virtual void __cdecl
>> >> >> >>>> rtk::CudaFFTRampImageFilter::GenerateData(void)"
>> >> >> >>>> (?GenerateData at CudaFFTRampImageFilter@rtk@@MEAAXXZ)
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>> C:\SimonRit-RTK-4353(withHNC)\build\applications\rtkcuda.lib(rtkCudaFFTRampImageFilter.obj)
>> >> >> >>>> rtkfdk
>> >> >> >>>> Error 12 error LNK1120: Five unresolved external symbols
>> >> >> >>>> C:\SimonRit-RTK-4353(withHNC)\build\Release\rtkfdk.exe rtkfdk
>> >> >> >>>> =============================================
>> >> >> >>>>
>> >> >> >>>> Cheers,
>> >> >> >>>> Andy
>> >> >> >>>
>> >> >> >>>
>> >> >> >>>
>> >> >> >>> _______________________________________________
>> >> >> >>> Rtk-users mailing list
>> >> >> >>> Rtk-users at openrtk.org
>> >> >> >>> http://public.kitware.com/cgi-bin/mailman/listinfo/rtk-users
>> >> >> >>>
>> >> >> >
>> >> >
>> >> >
>> >
>> >
>
>
More information about the Rtk-users
mailing list