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
PORTNAME=               freeocl
PORTVERSION=            0.3.6
CATEGORIES=             devel

MAINTAINER=             po...@freebsd.org
COMMENT=                FreeOCL - a free OpenCL implementation for CPU

#MASTER_SITES=          
http://freeocl.googlecode.com/files/FreeOCL-0.3.6-src.tar.gz
MASTER_SITES=           http://freeocl.googlecode.com/files/
DISTNAME=               FreeOCL-${PORTVERSION}-src

WRKSRC=                 ${WRKDIR}/FreeOCL-${PORTVERSION}-Source

USE_CMAKE=              YES
CMAKE_BUILD_TYPE=       Release

USE_GCC=                4.7+

#CXXFLAGS+=             -stdlib=libc++

.include <bsd.port.mk>

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to