Closed agerlach closed 11 years ago
Hi,
I am the author of VexCL, so please excuse me for the confusion :). Current version of VexCL does have only two template parameters for multivector. There is a pull request (#98) that should fix the issue. Could you please try and apply the changes to your local clone of odeint, and see if those work?
I'm sorry but I an new to using git and github. How do I do that?
This should do it:
git clone https://github.com/headmyshoulder/odeint-v2.git
cd odeint-v2
git remote add ddemidov https://github.com/ddemidov/odeint-v2.git
git fetch ddemidov
git merge ddemidov/vexcl-0.8-multivector-interface-changed
Sorry, I forgot to apply Denis pull request. I will do it NOW.
Thank you, agerlach for reporting this problem and thanks you Denis for your support!
On 10/25/2013 08:38 PM, Denis Demidov wrote:
This should do it:
git clone https://github.com/headmyshoulder/odeint-v2.git cd odeint-v2 git remote add ddemidov https://github.com/ddemidov/odeint-v2.git git fetch ddemidov git merge ddemidov/vexcl-0.8-multivector-interface-changed — Reply to this email directly or view it on GitHub https://github.com/headmyshoulder/odeint-v2/issues/105#issuecomment-27115845.
Thanks. I was able to update my repo to the latest version and helped eliminate those errors. Unfortunetly, I now have new errors which seem to be coming from the VexCL side of things. Even with an empty main() adding
#include <vexcl/vexcl.hpp>
produces over 200 errors. I don't even know where to start.
I had been using thrust and CUDA to do parallel parameters studies quite successfully but as I started considering more complex ODEs the need to use nested zip_iterators led me to try to find an easier solution. By looking at the odeint examples, it sure seems like using VexCL will be much easier.
Here are a few of the errors: ‘BOOST_PP_REPEAT_FROM_TO_M_1’ has not been declared vexclTry line 54, external location: /usr/local/include/boost/preprocessor/repetition/repeat_from_to.hpp C/C++ Problem
‘vector_expr_grammar’ was not declared in this scope vexclTry line 101, external location: /home/agerlach/git/vexcl/vexcl/vector_view.hpp
What version of boost do you use? On Oct 25, 2013 3:05 PM, "agerlach" notifications@github.com wrote:
Thanks. I was able to update my repo to the latest version and helped eliminate those errors. Unfortunetly, I now have new errors which seem to be coming from the VexCL side of things. Even with an empty main() adding
include <vexcl/vexcl.hpp>
produces over 200 errors. I don't even know where to start.
I had been using thrust and CUDA to do parallel parameters studies quite successfully but as I started considering more complex ODEs the need to use nested zip_iterators led me to try to find an easier solution. By looking at the odeint examples, it sure seems like using VexCL will be much easier.
Here are a few of the errors: ‘BOOST_PP_REPEAT_FROM_TO_M_1’ has not been declared vexclTry line 54, external location: /usr/local/include/boost/preprocessor/repetition/repeat_from_to.hpp C/C++ Problem
‘vector_expr_grammar’ was not declared in this scope vexclTry line 101, external location: /home/agerlach/git/vexcl/vexcl/vector_view.hpp
— Reply to this email directly or view it on GitHubhttps://github.com/headmyshoulder/odeint-v2/issues/105#issuecomment-27121627 .
1.54
May be we should move the discussion to vexcl issue list. I am on the road currently, but if you provide more details I'll try to help you on Monday. On Oct 25, 2013 4:06 PM, "agerlach" notifications@github.com wrote:
1.54
— Reply to this email directly or view it on GitHubhttps://github.com/headmyshoulder/odeint-v2/issues/105#issuecomment-27125777 .
@agerlach, I can not reproduce the issue with gcc v4.6, 4.7, 4.8 or clang 3.3. What compiler do you use? Could you provide the compilation command line?
@ddemidov , I think a lot the problems I was having was due to my installation of OpenCL. I did a complete reinstall and I have not seen any issues like those previously reported. I was using the OpenCL libraries supplied with the CUDA drivers. This time I installed the intel SDK for OpenCL.
I am still getting some other errors I cannot explain though. On Ubuntu 12.04 with gcc 4.6.3 I try to compile the devlist.cpp example with
g++ devlist.cpp -std=c++0x -I/home/agerlach/git/vexcl -lOpenCL -o devlist
I get the following errors:
/tmp/ccxwLEtG.o: In function __static_initialization_and_destruction_0(int, int)': devlist.cpp:(.text+0xa95): undefined reference to
boost::system::generic_category()'
devlist.cpp:(.text+0xaa1): undefined reference to boost::system::generic_category()' devlist.cpp:(.text+0xaad): undefined reference to
boost::system::system_category()'
Thank you again for your time and patients!
You will need to link against libboost_system:
g++ devlist.cpp -std=c++0x -I/home/agerlach/git/vexcl -lOpenCL -lboost_system -o devlist
Thanks, that fixed that problem.
So, what I did was go back to make sure I could compile a simple OpenCL example and then a VexCL example. Now that I know both OpenCL and VexCL are working I tried to compile the VexCL odeint example lorenz_ensemble.cpp but, even after pulling odeint with Denis's pull request I still have errors regarding the templates arguments for vex::multivector.
Both vexcl_algebra_dispatcher.hpp and vexcl_norm_inf.hpp in $BOOSTHOME/numeric/odeint/external/vexcl need to be modified as well to reflect these changes. Its appears that the pull request only modified vexcl_resize.hpp
After removing the "own" arguments in these two files I was able to compile lorenz_ensemble.cpp
Sorry about that, there is a new pull request (#106) that addresses the issue.
No, thank you for all your help and patients and such awesome opensource tools!
I am having trouble compiling your simple VexCL example using the most current version of VexCL (v0.8.5). I get a long list of errors. All the errors seem to originate from the fact that the number of template argumentsfor vex::multivector has changed at some point. The errors indicate that their should be 2, but 3 are being supplied.
What version of VexCL has odeint been tested on? Is there simply a vexcl tag I could checkout that will fix these errors?