browndeer / coprthr

The CO-PRocessing THReads (COPRTHR) SDK - latest release is v1.6.2 (Freewill)
http://www.browndeertechnology.com/coprthr.html
Other
94 stars 35 forks source link

CLETE issue #3

Closed kalwalt closed 11 years ago

kalwalt commented 12 years ago

I'm using Coprthr SDK on Ubuntu 11.04 32bit (Ubuntustudio). all standard example works fine but when i try to bulid the Clete examples i encounter this issue:

g++ -O3 -fpermissive -I/usr/local/cuda/include -I/usr/local/browndeer/include -c clete_clvector_example.cpp In file included from /usr/local/browndeer/include/clvector.h:101:0, from clete_clvector_example.cpp:21: /usr/local/browndeer/include/CLETE/clvector_CLETE.h: In function ‘void evaluate(clvector<T, Allocator>&, const Op&, const Expression&)’: /usr/local/browndeer/include/CLETE/clvector_CLETE.h:392:13: warning: there are no arguments to ‘exit’ that depend on a template parameter, so a declaration of ‘exit’ must be available clete_clvector_example.cpp: In function ‘int main()’: clete_clvector_example.cpp:42:11: error: no match for ‘operator+’ in ‘a + b’ /usr/include/c++/4.5/bits/stl_bvector.h:264:3: note: candidates are: std::_Bit_iterator std::operator+(ptrdiff_t, const std::_Bit_iterator&) /usr/include/c++/4.5/bits/stl_bvector.h:350:3: note: std::_Bit_const_iterator std::operator+(ptrdiff_t, const std::_Bit_const_iterator&) clete_clvectorexample.cpp:42:25: error: no match for ‘operator’ in ‘2.112e+3f * b’ clete_clvector_example.cpp:42:35: error: no matching function for call to ‘sqrt(clvector&)’ /usr/include/bits/mathcalls.h:157:1: note: candidates are: double sqrt(double) /usr/include/c++/4.5/cmath:438:3: note: long double std::sqrt(long double) /usr/include/c++/4.5/cmath:434:3: note: float std::sqrt(float) clete_clvectorexample.cpp:42:41: error: no match for ‘operator’ in ‘a * b’ clete_clvector_example.cpp:42:57: error: no matching function for call to ‘sqrt(clvector&)’ /usr/include/bits/mathcalls.h:157:1: note: candidates are: double sqrt(double) /usr/include/c++/4.5/cmath:438:3: note: long double std::sqrt(long double) /usr/include/c++/4.5/cmath:434:3: note: float std::sqrt(float) clete_clvector_example.cpp:42:68: error: no matching function for call to ‘cos(clvector&)’ /usr/include/bits/mathcalls.h:64:1: note: candidates are: double cos(double) /usr/include/c++/4.5/cmath:204:3: note: long double std::cos(long double) /usr/include/c++/4.5/cmath:200:3: note: float std::cos(float) clete_clvector_example.cpp:43:21: error: no matching function for call to ‘fabs(clvector&)’ /usr/include/bits/mathcalls.h:182:1: note: candidates are: double fabs(double) /usr/include/c++/4.5/cmath:252:3: note: long double std::fabs(long double) /usr/include/c++/4.5/cmath:248:3: note: float std::fabs(float) make: *\ [clete_clvector_example.o] Error 1

any idea? i have also installed clld and LLVM-ex and also all libraries suggested (libelf clang...)

browndeer commented 12 years ago

I can reproduce this by replacing CLETE/clvector_Operators.h with an empty file. This causes there to be no definitions for operators such as binop + to be used to resolve expressions. Since you are running on 32 bit I am curious how you configured the build and the build itself. The issue is that the SDK comes with a set of rather odd pre-compiled programs since they are confusing to build. They are located in src/CLETE/tools/ and called gen_operators* . We do not do much to support 32bit and so the default version that would be used is gen_operators-linux which is a 64bit executable and should not have been able to run. Perhaps this error went by silently but produced an empty clvector_Operators.h file. There is a 32bit version (gen_operators-linux32) that should work, but its not automatically used. You could hack the makefile src/CLETE/tools/Makefile, looking where GEN_OPERATORS is defined. This might fix things.

Note that llvm-ex and clld are not related to this example and also note that Ubuntu has been difficult to support in general - I am impressed you got this far. Standard Linux distros we support are any RHEL flavor like CentOS or Scientific Linux and also OpenSuSE. Final note is that a new release is days away. Many new features and much easier to build.

Let me know if you are able to get this to work or not.

Regards, David

Walter Perdan wrote:

I'm using Coprthr SDK on Ubuntu 11.04 32bit (Ubuntustudio). all standard example works fine but when i try to bulid the Clete examples i encounter this issue:

g++ -O3 -fpermissive -I/usr/local/cuda/include -I/usr/local/browndeer/include -c clete_clvector_example.cpp In file included from /usr/local/browndeer/include/clvector.h:101:0, from clete_clvector_example.cpp:21: /usr/local/browndeer/include/CLETE/clvector_CLETE.h: In function ‘void evaluate(clvector<T, Allocator>&, const Op&, const Expression&)’: /usr/local/browndeer/include/CLETE/clvector_CLETE.h:392:13: warning: there are no arguments to ‘exit’ that depend on a template parameter, so a declaration of ‘exit’ must be available clete_clvector_example.cpp: In function ‘int main()’: clete_clvector_example.cpp:42:11: error: no match for ‘operator+’ in ‘a + b’ /usr/include/c++/4.5/bits/stl_bvector.h:264:3: note: candidates are: std::_Bit_iterator std::operator+(ptrdiff_t, const std::_Bit_iterator&) /usr/include/c++/4.5/bits/stl_bvector.h:350:3: note: std::_Bit_const_iterator std::operator+(ptrdiff_t, const std::_Bit_const_iterator&) clete_clvectorexample.cpp:42:25: error: no match for ‘operator’ in ‘2.112e+3f * b’ clete_clvector_example.cpp:42:35: error: no matching function for call to ‘sqrt(clvector&)’ /usr/include/bits/mathcalls.h:157:1: note: candidates are: double sqrt(double) /usr/include/c++/4.5/cmath:438:3: note: long double std::sqrt(long double) /usr/include/c++/4.5/cmath:434:3: note: float std::sqrt(float) clete_clvectorexample.cpp:42:41: error: no match for ‘operator’ in ‘a * b’ clete_clvector_example.cpp:42:57: error: no matching function for call to ‘sqrt(clvector&)’ /usr/include/bits/mathcalls.h:157:1: note: candidates are: double sqrt(double) /usr/include/c++/4.5/cmath:438:3: note: long double std::sqrt(long double) /usr/include/c++/4.5/cmath:434:3: note: float std::sqrt(float) clete_clvector_example.cpp:42:68: error: no matching function for call to ‘cos(clvector&)’ /usr/include/bits/mathcalls.h:64:1: note: candidates are: double cos(double) /usr/include/c++/4.5/cmath:204:3: note: long double std::cos(long double) /usr/include/c++/4.5/cmath:200:3: note: float std::cos(float) clete_clvector_example.cpp:43:21: error: no matching function for call to ‘fabs(clvector&)’ /usr/include/bits/mathcalls.h:182:1: note: candidates are: double fabs(double) /usr/include/c++/4.5/cmath:252:3: note: long double std::fabs(long double) /usr/include/c++/4.5/cmath:248:3: note: float std::fabs(float) make: *\ [clete_clvector_example.o] Error 1

any idea? i have also installed clld and LLVM-ex and also all libraries suggested (libelf clang...)


Reply to this email directly or view it on GitHub: https://github.com/browndeer/coprthr/issues/3

David Richie, Ph.D. Brown Deer Technology 204 Cartland Way Forest Hill, MD 21050 410-459-3848 drichie@browndeertechnology.com www.browndeertechnology.com

kalwalt commented 12 years ago

Dear Mr. David,First I must thank you for answering me. I tried to fix the problem but did not succeed. You are right: looking at / Coprthr / src / CLETE there is an empty file and another indecipherable.I changed two makefiles. The one in the / src / CLETE and the other in / src / CLETE / tools(see inside files.tar.gz) and since then I make again. But this did not solve the problem. I leave also the log configuration that has served me to configure the entire library in case you're curious about how the process went.  I know it's better to work with a 64 bit machine, I'm OpenCL still learning and I'm using a notebook SonyVaio vgn-ar51e with an Nvidia Geforce 8400MGT (bad I can not do much ...) but it is fine to start . Your library is very helpful and easy touse, the code is very clear and makes things much easier. I intend to use OpenCL in the graphic and interactive way to solve some calculations regarding Marching cube algorithm and the transformations of the image. I am using for this OpenFramework: http://www.openframeworks.cc/ .  There are addons to use OpenCL but are Mac oriented, I found it difficult to configure for linux.BUt even without the use of CLETE your software is a great help! If you have a new release and there are significant improvements, so much the better.Do you recommend to use  another Linux OS? maybe I should use another distribution perhaps with Virtualbox. thanks again for your attentionWalter Perdan

Da: "Brown Deer Technology" reply@reply.github.com A: "Walter Perdan" info@kalwaltart.it Cc: Data: Wed, 15 Feb 2012 13:11:42 -0800 Oggetto: Re: [coprthr] CLETE issue (#3)

I can reproduce this by replacing CLETE/clvector_Operators.h with an empty file. This causes there to be no definitions for operators such as binop + to be used to resolve expressions. Since you are running on 32 bit I am curious how you configured the build and the build itself. The issue is that the SDK comes with a set of rather odd pre-compiled programs since they are confusing to build. They are located in src/CLETE/tools/ and called gen_operators* . We do not do much to support 32bit and so the default version that would be used is gen_operators-linux which is a 64bit executable and should not have been able to run. Perhaps this error went by silently but produced an empty clvector_Operators.h file. There is a 32bit version (gen_operators-linux32) that should work, but its not automatically used. You could hack the makefile src/CLETE/tools/Makefile, looking where GEN_OPERATORS is defined. This might fix things.

Note that llvm-ex and clld are not related to this example and also note that Ubuntu has been difficult to support in general - I am impressed you got this far. Standard Linux distros we support are any RHEL flavor like CentOS or Scientific Linux and also OpenSuSE. Final note is that a new release is days away. Many new features and much easier to build.

Let me know if you are able to get this to work or not.

Regards, David

Walter Perdan wrote:

I'm using Coprthr SDK on Ubuntu 11.04 32bit (Ubuntustudio). all standard example works fine but when i try to bulid the Clete examples i encounter this issue:

g++ -O3 -fpermissive -I/usr/local/cuda/include -I/usr/local/browndeer/include -c clete_clvector_example.cpp In file included from /usr/local/browndeer/include/clvector.h:101:0, from clete_clvector_example.cpp:21: /usr/local/browndeer/include/CLETE/clvector_CLETE.h: In function ‘void evaluate(clvector&, const Op&, const Expression&)’: /usr/local/browndeer/include/CLETE/clvector_CLETE.h:392:13: warning: there are no arguments to ‘exit’ that depend on a template parameter, so a declaration of ‘exit’ must be available clete_clvector_example.cpp: In function ‘int main()’: clete_clvector_example.cpp:42:11: error: no match for ‘operator+’ in ‘a + b’ /usr/include/c++/4.5/bits/stl_bvector.h:264:3: note: candidates are: std::_Bit_iterator std::operator+(ptrdiff_t, const std::_Bit_iterator&) /usr/include/c++/4.5/bits/stl_bvector.h:350:3: note: std::_Bit_const_iterator std::operator+(ptrdiff_t, const std::_Bit_const_iterator&) clete_clvectorexample.cpp:42:25: error: no match for ‘operator’ in ‘2.112e+3f * b’ clete_clvector_example.cpp:42:35: error: no matching function for call to ‘sqrt(clvector&)’ /usr/include/bits/mathcalls.h:157:1: note: candidates are: double sqrt(double) /usr/include/c++/4.5/cmath:438:3: note: long double std::sqrt(long double) /usr/include/c++/4.5/cmath:434:3: note: float std::sqrt(float) clete_clvectorexample.cpp:42:41: error: no match for ‘operator’ in ‘a * b’ clete_clvector_example.cpp:42:57: error: no matching function for call to ‘sqrt(clvector&)’ /usr/include/bits/mathcalls.h:157:1: note: candidates are: double sqrt(double) /usr/include/c++/4.5/cmath:438:3: note: long double std::sqrt(long double) /usr/include/c++/4.5/cmath:434:3: note: float std::sqrt(float) clete_clvector_example.cpp:42:68: error: no matching function for call to ‘cos(clvector&)’ /usr/include/bits/mathcalls.h:64:1: note: candidates are: double cos(double) /usr/include/c++/4.5/cmath:204:3: note: long double std::cos(long double) /usr/include/c++/4.5/cmath:200:3: note: float std::cos(float) clete_clvector_example.cpp:43:21: error: no matching function for call to ‘fabs(clvector&)’ /usr/include/bits/mathcalls.h:182:1: note: candidates are: double fabs(double) /usr/include/c++/4.5/cmath:252:3: note: long double std::fabs(long double) /usr/include/c++/4.5/cmath:248:3: note: float std::fabs(float) make: *\ [clete_clvector_example.o] Error 1

any idea? i have also installed clld and LLVM-ex and also all libraries suggested (libelf clang...)


Reply to this email directly or view it on GitHub: https://github.com/browndeer/coprthr/issues/3

David Richie, Ph.D. Brown Deer Technology 204 Cartland Way Forest Hill, MD 21050 410-459-3848 drichie@browndeertechnology.com www.browndeertechnology.com


Reply to this email directly or view it on GitHub: https://github.com/browndeer/coprthr/issues/3#issuecomment-3989198

kalwalt commented 12 years ago

i reply by my email i'm not sure that the files are arrived to destination, if you want i can send to you to a valid email address. regards Walter