On 09/06/12 12:16, Matthieu Volat wrote: > On Wed, 05 Sep 2012 16:45:49 +0200 > "O. Hartmann" <ohartman_at_mail.zedat.fu-berlin.de> wrote: > >> Hello. >> >> FreeBSD has fallen back far behind the standards of modern scientific >> computing and I dsperately look for solutions having OpenCL support on >> FreeBSD anyway. >> >> I stumbled into this project recently: >> >> FreeOCL at >> http://code.google.com/p/freeocl/ >> >> or the sources located at >> >> http://code.google.com/p/freeocl/downloads/detail?name=FreeOCL-0.3.6-src.tar.gz&can=2&q= >> >> For your convenience, please find my naive attempt of a port attached to >> this email. >> >> Well, I tried LLVM/CLANG, but Cmake of the sources fairly fails many >> checks especuially for OpenMP. Using clang++ requisites the usage of the >> new libc++ (CXXFLAGS+= -stdlib=libc++). But this fails with this error: >> >> >> [...] >> [ 17%] Building CXX object src/CMakeFiles/FreeOCL.dir/codebuilder.cpp.o >> In file included from >> /usr/ports/devel/freeocl/work/FreeOCL-0.3.6-Source/src/codebuilder.cpp:26: >> /usr/ports/devel/freeocl/work/FreeOCL-0.3.6-Source/src/parser/parser.h:118:15: >> error: no viable conversion from 'std::__1::basic_istream<char>' to >> 'const bool' >> const bool ok = in.get(c); >> ^ ~~~~~~~~~ >> /usr/ports/devel/freeocl/work/FreeOCL-0.3.6-Source/src/codebuilder.cpp:444:13: >> warning: 70 enumeration values not handled in switch: 'VOID', 'BOOL', >> 'HALF'... [-Wswitch] >> switch(native->get_type_id()) >> ^ >> 1 warning and 1 error generated. >> *** [src/CMakeFiles/FreeOCL.dir/codebuilder.cpp.o] Error code 1 >> [..] >> >> >> I tried also setting USE_GCC= 4.7+ using gcc-4.7 I installed, but that >> fails with >> >> [...] >> -- Build files have been written to: >> /usr/ports/devel/freeocl/work/FreeOCL-0.3.6-Source >> ===> Building for freeocl-0.3.6 >> Scanning dependencies of target FreeOCL >> [ 1%] Building CXX object src/CMakeFiles/FreeOCL.dir/freeocl.cpp.o >> In file included from >> /usr/ports/devel/freeocl/work/FreeOCL-0.3.6-Source/src/freeocl.cpp:18:0: >> /usr/ports/devel/freeocl/work/FreeOCL-0.3.6-Source/src/freeocl.h:71:2: >> error: 'u_int64_t' does not name a type >> *** [src/CMakeFiles/FreeOCL.dir/freeocl.cpp.o] Error code 1 >> [...] >> >> I think patches are required. >> >> More disturbing is the use of gcc-4.6 via >> >> USE_GCC= 4.6+ >> >> The error is then a compalin about a missing include file >> >> atomic_ops.h >> >> which is located in the abandoned KSE facility of the kernel, so the >> includes seem not to be installed anymore - but since I'm not involved >> in the development, I can only guess and ask the people here. >> >> Maybe some experienced freeBSD developers with the same need for OpenCl >> is willing to pick up this and help a bit. >> >> Well, as far as I see, the FreeOCL project of Roland Borchard is a >> OpenCL library for CPU usage. As far as I can understand, if we on >> FreeBSd could have a library "libOpenCL" as this is usually installed by >> the nVidia BLOB drivers on Linux for the use of OpenCL/GPGPU support >> with their GPUs, this would fill a still painfull open gap in FreeBSD as >> a scientific development platform. >> >> There is still no suitable compiler for OpenCL out here for freeBSD, but >> I have still the hope that LLVM can provide such a thing in the near future. >> >> I cross post this posting also to "performance" in the hope finding some >> people attracted and "lurd" into this subject. >> >> Regards, >> >> O. Hartmann > > Hello, > > I've taken a quick look in that implementation : it seems to depends on devel/libatomic_ops even if the devs did not write any CMake checks for that (grrr). > > After installing it, I was able to build the port with gcc-46 without problems, if I find some time, I will try to test it later. > > Btw, did you had a look to poCL too (http://sourceforge.net/apps/mediawiki/pocl/index.php?title=Main_Page)? I know the Debian people were considering it for a base implementation, but I'm a bit clueless about all those foss versions coming. A comparison could be helpful ^^ > I tried to add RUN_DEPENDS= ${LOCALBASE}/lib/libatomic_ops.a:${PORTSDIR}/devel/libatomic_ops to my provided Makefile, but this doesn't install the port devel/libatomic_ops. This is weird and inconsistent. I follow exact the steps suggested in the Porter's handbook, the _DEPENDS= section. The above RUN_DEPENDS= tag should ensure a check for the existence of the static library /usr/local/lib/libatomic_ops.a and if not existent, then install it. It doesn't work. Unfortunately, LIB_DEPENDS is considered for "shared libraries", so it isn't suitable. But LIB_DEPENDS get recognized, even if it fails, while RUN_DEPENDS seems not to be touched by the build process anyway ...
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:30 UTC