Hi Bastian,
Thanks so much for sharing your research code. I tried to install it on Ubuntu 12.04 (with a GeForce GTX 580 card and Nvidia toolkit 5.5). The configure script did not report any problems and the compute capability is 2. However, when I run make I get the following error:
main.cpp:247:38: error: too many arguments to function ‘herr_t H5Eset_auto1(H5E_auto1_t, void*)’
/usr/include/H5Epublic.h:216:15: note: declared here
I have the libhdf5-serial-dev as required in the prerequisites, so I'm not sure why I'm getting this error. Do you maybe have any ideas why I get this error? Any help is welcome.
Thanks!
Ivana
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
unfortunately, the people responsible for the HDF5 library decided to change the interface of some functions sometime between the version shipped with Ubuntu 12.04 and Ubuntu 13.04.
Thus, around a year ago, I changed cocolib to compile with the newer versions of the HDF5 library, which broke compilation on older Ubuntus. Accordingly, what you need to do is make sure that you have a recent version of libhdf5 compiled somewhere locally, and that this version is what the compiler will use by adapting the respective include/lib paths in the ".pro" files (since I guess changing the HDF5 lib globally for the system will break stuff).
Cheers, hope that helps,
Bastian
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks Bastian, that was indeed helpful. I've managed to build it with the HDF5 1.18.2. However, when I run the test_lightfield_suite.sh script, I get an out of memory error for the GPU. I have a GeForce GTX580, so it's not one of the latests GPUs, but it still has compute capability > 1.3 (2.0).
I was wondering, is there a way to use the cocolib without the GPU?
Thanks,
Ivana
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
unfortunately it's a GPU library, so no way to use it without at the moment. Some of the light field algorithms are very memory intensive, but might offer additional config options to trade off memory requirements for time (i.e. by keeping some stuff in main memory and swapping it in when needed). You could also reduce resolution - check the config file which failed and see if it offers any options (or if you even need that particular algorithm).
Cheers, Bastian
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I replied to this because I have experienced the same problem as Ivana and once I have somehow fixed the HDF5 problem I ran into this.
lightfield_labeling.cu(527): error: too many arguments in function call
1 error detected in the compilation of "/tmp/tmpxft_00001d29_00000000-4_lightfield_labeling.cpp1.ii".
make[1]: [obj/lightfield_labeling_cuda.obj] Error 2
make[1]: Waiting for unfinished jobs....
lightfield_segmentation.cu(229): error: too many arguments in function call
1 error detected in the compilation of "/tmp/tmpxft_00001d3f_00000000-4_lightfield_segmentation.cpp1.ii".
make[1]: *** [obj/lightfield_segmentation_cuda.obj] Error 2
Any ideas?
Thanks.
Best regards,
Christian
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I checked the offending line of code, and it looks like you still have a problem with the HDF5 libraries - the function "H5Dopen" which caused compilation to fail had 2 arguments in the old HDF5 library, but 3 in the new ones.
Since it seems you were able to compile the main library if you managed to get to that point, maybe you changed an include path to point to the new HDF5 lib in one project file, but not in the other ones?
Cheers,
Bastian
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi Bastian,
Thanks so much for sharing your research code. I tried to install it on Ubuntu 12.04 (with a GeForce GTX 580 card and Nvidia toolkit 5.5). The configure script did not report any problems and the compute capability is 2. However, when I run make I get the following error:
main.cpp:247:38: error: too many arguments to function ‘herr_t H5Eset_auto1(H5E_auto1_t, void*)’
/usr/include/H5Epublic.h:216:15: note: declared here
I have the libhdf5-serial-dev as required in the prerequisites, so I'm not sure why I'm getting this error. Do you maybe have any ideas why I get this error? Any help is welcome.
Thanks!
Ivana
Hi Ivana,
unfortunately, the people responsible for the HDF5 library decided to change the interface of some functions sometime between the version shipped with Ubuntu 12.04 and Ubuntu 13.04.
Thus, around a year ago, I changed cocolib to compile with the newer versions of the HDF5 library, which broke compilation on older Ubuntus. Accordingly, what you need to do is make sure that you have a recent version of libhdf5 compiled somewhere locally, and that this version is what the compiler will use by adapting the respective include/lib paths in the ".pro" files (since I guess changing the HDF5 lib globally for the system will break stuff).
Cheers, hope that helps,
Bastian
Thanks Bastian, that was indeed helpful. I've managed to build it with the HDF5 1.18.2. However, when I run the test_lightfield_suite.sh script, I get an out of memory error for the GPU. I have a GeForce GTX580, so it's not one of the latests GPUs, but it still has compute capability > 1.3 (2.0).
I was wondering, is there a way to use the cocolib without the GPU?
Thanks,
Ivana
Hi Ivana,
unfortunately it's a GPU library, so no way to use it without at the moment. Some of the light field algorithms are very memory intensive, but might offer additional config options to trade off memory requirements for time (i.e. by keeping some stuff in main memory and swapping it in when needed). You could also reduce resolution - check the config file which failed and see if it offers any options (or if you even need that particular algorithm).
Cheers, Bastian
Hi Bastian,
I replied to this because I have experienced the same problem as Ivana and once I have somehow fixed the HDF5 problem I ran into this.
lightfield_labeling.cu(527): error: too many arguments in function call
1 error detected in the compilation of "/tmp/tmpxft_00001d29_00000000-4_lightfield_labeling.cpp1.ii".
make[1]: [obj/lightfield_labeling_cuda.obj] Error 2
make[1]: Waiting for unfinished jobs....
lightfield_segmentation.cu(229): error: too many arguments in function call
1 error detected in the compilation of "/tmp/tmpxft_00001d3f_00000000-4_lightfield_segmentation.cpp1.ii".
make[1]: *** [obj/lightfield_segmentation_cuda.obj] Error 2
Any ideas?
Thanks.
Best regards,
Christian
Hi Christian,
I checked the offending line of code, and it looks like you still have a problem with the HDF5 libraries - the function "H5Dopen" which caused compilation to fail had 2 arguments in the old HDF5 library, but 3 in the new ones.
Since it seems you were able to compile the main library if you managed to get to that point, maybe you changed an include path to point to the new HDF5 lib in one project file, but not in the other ones?
Cheers,
Bastian