Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 6 Sep 2012 12:16:39 +0200
From:      Matthieu Volat <mazhe@alkumuna.eu>
To:        freebsd-ports@freebsd.org
Cc:        "O. Hartmann" <ohartman@mail.zedat.fu-berlin.de>
Subject:   Re: Help. Porting "FreeOCL" fails (atomic_ops.h missing, CLANG++ libc++ issues ...)
Message-ID:  <20120906121639.4b7d894d089b2ddeb42f31b4@alkumuna.eu>
In-Reply-To: <5047659D.8000107@mail.zedat.fu-berlin.de>
References:  <5047659D.8000107@mail.zedat.fu-berlin.de>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 05 Sep 2012 16:45:49 +0200
"O. Hartmann" <ohartman@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 ^^

-- 
Matthieu Volat <mazhe@alkumuna.eu>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120906121639.4b7d894d089b2ddeb42f31b4>