ViennaCL and Visual Studio 2013/APP 2.8

2013-09-01
2013-11-26
  • Matthew Musto

    Matthew Musto - 2013-09-01

    I have been trying to integrate ViennaCL into an existing C++/openCL project using Visual Studio 2013 w/ AMD SDK 2.8 on Windows 8. Using Cmake I was able to get most of the examples running (excellent documentation btw). There were a few errors but I didn't look into them too deeply. I was easily able to integrate the device and platform information into my existing code, however, including (#include "viennacl\linalg\opencl\direct_solve.hpp") resulted in the following compilation errors. After a few hours of poking around to no avail I thought I would post on here to see if anyone has had a similar experience.

    1>------ Build started: Project: Cardinal, Configuration: Debug x64 ------
    1> Source.cpp
    1>C:\ViennaCL-1.4.2\viennacl\ocl\program.hpp(65): error C2079: 'temp' uses undefined class 'viennacl::ocl::kernel'
    1>C:\ViennaCL-1.4.2\viennacl\ocl\program.hpp(65): error C2078: too many initializers
    1>C:\ViennaCL-1.4.2\viennacl\ocl\program.hpp(65): error C2440: 'initializing' : cannot convert from 'const std::string' to 'int'
    1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
    1>C:\ViennaCL-1.4.2\viennacl\ocl\program.hpp(66): error C2664: 'void std::vector<viennacl::ocl::kernel,std::allocator<_Ty>>::push_back(const viennacl::ocl::kernel &)' : cannot convert parameter 2 from 'int' to 'viennacl::ocl::kernel &&'
    1> with
    1>
    1> _Ty=viennacl::ocl::kernel
    1>


    1> Reason: cannot convert from 'int' to 'viennacl::ocl::kernel'
    1> Source or target has incomplete type
    1>C:\ViennaCL-1.4.2\viennacl\ocl\program.hpp(78): error C2027: use of undefined type 'viennacl::ocl::kernel'
    1> C:\ViennaCL-1.4.2\viennacl/ocl/forwards.h(44) : see declaration of 'viennacl::ocl::kernel'
    1>C:\ViennaCL-1.4.2\viennacl\ocl\program.hpp(78): error C2039: 'name' : is not a member of 'std::_Vector_iterator<std::_Vector_val<std::_Simple_types<viennacl::ocl::kernel>>>'
    1>C:\ViennaCL-1.4.2\viennacl/ocl/context.hpp(409): error C2589: '(' : illegal token on right side of '::'
    1>C:\ViennaCL-1.4.2\viennacl/ocl/context.hpp(409): error C2059: syntax error : '::'
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

     
  • Matthew Musto

    Matthew Musto - 2013-09-01

    It is basically the inclusion of #include "viennacl/ocl/kernel.hpp" which is causing the error. There seems to be some bug associated with it on VS2013 or with my implementation. I can include many other headers without issue and run the examples so I am a little confused

     
  • Karl Rupp

    Karl Rupp - 2013-09-02

    Thanks for reporting, this is a new issue which hasn't shown up with older versions of Visual Studio. I'll check and see whether there is an easy workaround.
    Best regards,
    Karli

     
  • Matthew Musto

    Matthew Musto - 2013-09-02

    Thank you Karli. In the meantime, I am using the boost ublas functions and it is working well with viennacl::linalg::solve. I am hopeful this will be resolved soon so that openCL/gpu acceleration becomes an option.

     
  • Matthew Musto

    Matthew Musto - 2013-10-21

    Karli,

    I now have the official release of Visual Studio 2013 Ultimate and AMD SDK 2.8.1 running the latest 13.11 beta drivers. Version 1.4.2 of ViennaCL still does not work with openCL and I continue to use openMP, although it is not incredibly supported in Visual Studio. Anyway, if you are close with version 1.5.0 or want me to help test, I would be more than happy to try a beta.

    Thanks,
    -Matt

     
  • Karl Rupp

    Karl Rupp - 2013-10-21

    Hey,

    we are in fact fairly close to a release. You can have a look at our dev-repository here: https://github.com/viennacl/viennacl-dev
    The compilation issue you mentioned above is supposed to be fixed. Please let us know if there are any new issues, we don't have Visual Studio 2013 Ultimate available for testing...

    Best regards,
    Karli

     
  • Matthew Musto

    Matthew Musto - 2013-10-21

    Karli,

    No luck! Including direct_solve.hpp still gets me pretty much the same errors in the current development tree.

    Here is the output from my build:

    1>------ Build started: Project: Cardinal, Configuration: Debug x64 ------
    1> test.cpp
    1> Unknown compiler version - please run the configure tests and report the results
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(100): warning C4267: '=' : conversion from 'size_t' to 'unsigned int', possible loss of data
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(115): warning C4267: '=' : conversion from 'size_t' to 'unsigned int', possible loss of data
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(297): warning C4267: '=' : conversion from 'size_t' to 'unsigned int', possible loss of data
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(322): warning C4267: '=' : conversion from 'size_t' to 'unsigned int', possible loss of data
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(389): error C2027: use of undefined type 'viennacl::ocl::kernel'
    1> C:\viennacl-dev-master\viennacl/ocl/forwards.h(44) : see declaration of 'viennacl::ocl::kernel'
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(586): warning C4267: '=' : conversion from 'size_t' to 'cl_uint', possible loss of data
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(627): error C2079: 'temp' uses undefined class 'viennacl::ocl::kernel'
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(627): error C2078: too many initializers
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(627): error C2440: 'initializing' : cannot convert from 'const std::string' to 'int'
    1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(628): error C2664: 'void std::vector<viennacl::ocl::kernel,std::allocator<_Ty>>::push_back(const viennacl::ocl::kernel &)' : cannot convert argument 1 from 'int' to 'viennacl::ocl::kernel &&'
    1> with
    1>
    1> _Ty=viennacl::ocl::kernel
    1>


    1> Reason: cannot convert from 'int' to 'viennacl::ocl::kernel'
    1> Source or target has incomplete type
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(640): error C2027: use of undefined type 'viennacl::ocl::kernel'
    1> C:\viennacl-dev-master\viennacl/ocl/forwards.h(44) : see declaration of 'viennacl::ocl::kernel'
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(640): error C2039: 'name' : is not a member of 'std::Vector_iterator<std::_Vector_val<std::_Simple_types<viennacl::ocl::kernel>>>'
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(650): error C2027: use of undefined type 'viennacl::ocl::kernel'
    1> C:\viennacl-dev-master\viennacl/ocl/forwards.h(44) : see declaration of 'viennacl::ocl::kernel'
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(655): error C2065: 'p_context
    ' : undeclared identifier
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(655): error C2227: left of '->current_device' must point to class/struct/union/generic type
    1> type is 'unknown-type'
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(655): error C2228: left of '.type' must have class/struct/union
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(656): error C2065: 'p_context_' : undeclared identifier
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(656): error C2227: left of '->current_device' must point to class/struct/union/generic type
    1> type is 'unknown-type'
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(656): error C2228: left of '.type' must have class/struct/union
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(659): error C2065: 'local_work_size_' : undeclared identifier
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(660): error C2065: 'global_work_size_' : undeclared identifier
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(665): error C2065: 'local_work_size_' : undeclared identifier
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(667): error C2065: 'size_type' : undeclared identifier
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(667): error C2146: syntax error : missing ';' before identifier 'units'
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(667): error C2065: 'units' : undeclared identifier
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(667): error C2065: 'p_context_' : undeclared identifier
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(667): error C2227: left of '->current_device' must point to class/struct/union/generic type
    1> type is 'unknown-type'
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(667): error C2228: left of '.max_compute_units' must have class/struct/union
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(668): error C2065: 'size_type' : undeclared identifier
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(668): error C2146: syntax error : missing ';' before identifier 's'
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(668): error C2065: 's' : undeclared identifier
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(670): error C2065: 's' : undeclared identifier
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(670): error C2065: 'units' : undeclared identifier
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(670): fatal error C1903: unable to recover from previous error(s); stopping compilation
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

     
  • Karl Rupp

    Karl Rupp - 2013-10-27

    Hi,

    I checked the include hierarchy again and the only possibility I see is that a cyclic dependency gets messed up when adding direct_solve.hpp. Could you please try the following:
    a) Remove "#include "viennacl/ocl/kernel.hpp" from viennacl/linalg/opencl/direct_solve.hpp, line 27
    b) Add "#include "viennacl/ocl/context.hpp" right before line 27 in the same file?
    c) Combine a) and b)

    I couldn't reproduce the problem with VS 2010 even after including "direct_solve.hpp" directly...

    Best regards,
    Karli

     
  • Matthew Musto

    Matthew Musto - 2013-10-28

    Karli,

    Adding context.hpp produced the best results reducing the errors from 30 to 15. The include section of direct_solve.hpp now looks like this:

    #include "viennacl/vector.hpp"
    #include "viennacl/matrix.hpp"
    #include "viennacl/ocl/context.hpp"
    #include "viennacl/ocl/kernel.hpp"
    #include "viennacl/ocl/device.hpp"
    #include "viennacl/ocl/handle.hpp"
    #include "viennacl/linalg/opencl/kernels/matrix_solve.hpp"

    Here are the current errors:

    1>------ Rebuild All started: Project: Cardinal, Configuration: Debug x64 ------
    1> globals.cpp
    1> Source.cpp
    1> test.cpp
    1> Unknown compiler version - please run the configure tests and report the results
    1> Unknown compiler version - please run the configure tests and report the results
    1> Unknown compiler version - please run the configure tests and report the results
    1>C:\viennacl-dev-master\viennacl/ocl/enqueue.hpp(122): error C2027: use of undefined type 'viennacl::ocl::context' (test.cpp)
    1> C:\viennacl-dev-master\viennacl/ocl/forwards.h(47) : see declaration of 'viennacl::ocl::context'
    1>C:\viennacl-dev-master\viennacl/ocl/enqueue.hpp(122): error C2228: left of '.get_queue' must have class/struct/union (test.cpp)
    1>C:\viennacl-dev-master\viennacl/ocl/backend.hpp(301): error C2027: use of undefined type 'viennacl::ocl::context' (test.cpp)
    1> C:\viennacl-dev-master\viennacl/ocl/forwards.h(47) : see declaration of 'viennacl::ocl::context'
    1>C:\viennacl-dev-master\viennacl/ocl/backend.hpp(301): error C2228: left of '.get_queue' must have class/struct/union (test.cpp)
    1>C:\viennacl-dev-master\viennacl/ocl/backend.hpp(307): error C2027: use of undefined type 'viennacl::ocl::context' (test.cpp)
    1> C:\viennacl-dev-master\viennacl/ocl/forwards.h(47) : see declaration of 'viennacl::ocl::context'
    1>C:\viennacl-dev-master\viennacl/ocl/backend.hpp(307): error C2228: left of '.get_queue' must have class/struct/union (test.cpp)
    1>C:\viennacl-dev-master\viennacl/ocl/backend.hpp(313): error C2027: use of undefined type 'viennacl::ocl::context' (test.cpp)
    1> C:\viennacl-dev-master\viennacl/ocl/forwards.h(47) : see declaration of 'viennacl::ocl::context'
    1>C:\viennacl-dev-master\viennacl/ocl/backend.hpp(313): error C2228: left of '.get_queue' must have class/struct/union (test.cpp)
    1>C:\viennacl-dev-master\viennacl/ocl/backend.hpp(320): error C2027: use of undefined type 'viennacl::ocl::context' (test.cpp)
    1> C:\viennacl-dev-master\viennacl/ocl/forwards.h(47) : see declaration of 'viennacl::ocl::context'
    1>C:\viennacl-dev-master\viennacl/ocl/backend.hpp(320): error C2228: left of '.get_program' must have class/struct/union (test.cpp)
    1>C:\viennacl-dev-master\viennacl/ocl/backend.hpp(320): error C2228: left of '.get_kernel' must have class/struct/union (test.cpp)
    1>C:\viennacl-dev-master\viennacl/ocl/backend.hpp(326): error C2027: use of undefined type 'viennacl::ocl::context' (test.cpp)
    1> C:\viennacl-dev-master\viennacl/ocl/forwards.h(47) : see declaration of 'viennacl::ocl::context'
    1>C:\viennacl-dev-master\viennacl/ocl/backend.hpp(326): error C2228: left of '.switch_device' must have class/struct/union (test.cpp)
    1>C:\viennacl-dev-master\viennacl/ocl/backend.hpp(332): error C2027: use of undefined type 'viennacl::ocl::context' (test.cpp)
    1> C:\viennacl-dev-master\viennacl/ocl/forwards.h(47) : see declaration of 'viennacl::ocl::context'
    1>C:\viennacl-dev-master\viennacl/ocl/backend.hpp(332): error C2228: left of '.current_device' must have class/struct/union (test.cpp)
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(100): warning C4267: '=' : conversion from 'size_t' to 'unsigned int', possible loss of data (test.cpp)
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(115): warning C4267: '=' : conversion from 'size_t' to 'unsigned int', possible loss of data (test.cpp)
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(297): warning C4267: '=' : conversion from 'size_t' to 'unsigned int', possible loss of data (test.cpp)
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(322): warning C4267: '=' : conversion from 'size_t' to 'unsigned int', possible loss of data (test.cpp)
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(586): warning C4267: '=' : conversion from 'size_t' to 'cl_uint', possible loss of data (test.cpp)

    I will see if I can track anything down, in parallel.

    Thanks,
    -Matt

     
  • Karl Rupp

    Karl Rupp - 2013-10-28

    Hi,
    could you also try the same order as in viennacl/linalg/opencl/vector_operations.hpp, i.e.

    include "viennacl/ocl/device.hpp"

    include "viennacl/ocl/handle.hpp"

    include "viennacl/ocl/kernel.hpp"

    (without including context.hpp)? Since you mentioned that it works with direct_solve.hpp included, this should then work as well.

    Thanks and best regards,
    Karli

     
  • Matthew Musto

    Matthew Musto - 2013-10-30

    Karli,

    I presume you wanted me to modify the includes for direct_solve.hpp to model those of vector_operations.hpp. This resulted in 30 compilation errors (below) for the following include set:

    #include "viennacl/vector.hpp"
    #include "viennacl/matrix.hpp"
    #include "viennacl/ocl/device.hpp"
    #include "viennacl/ocl/handle.hpp"
    #include "viennacl/ocl/kernel.hpp"
    #include "viennacl/linalg/opencl/kernels/matrix_solve.hpp"

    Your mention of vector_operations.hpp got me thinking, so I tried to just include that in test.hpp to see if similar errors occurred, which they did. I am going to post in the MSDN forums to see if anyone has pre-compiler tweaks to make 2013 act more like 2012. Specifically, C++11 and other new 'features' which may be breaking things. If I can get it to compile it may allow us to more easily hunt down the issue.

    Error list:

    1>------ Build started: Project: Cardinal, Configuration: Debug x64 ------
    1> test.cpp
    1> Unknown compiler version - please run the configure tests and report the results
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(100): warning C4267: '=' : conversion from 'size_t' to 'unsigned int', possible loss of data
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(115): warning C4267: '=' : conversion from 'size_t' to 'unsigned int', possible loss of data
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(297): warning C4267: '=' : conversion from 'size_t' to 'unsigned int', possible loss of data
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(322): warning C4267: '=' : conversion from 'size_t' to 'unsigned int', possible loss of data
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(389): error C2027: use of undefined type 'viennacl::ocl::kernel'
    1> C:\viennacl-dev-master\viennacl/ocl/forwards.h(44) : see declaration of 'viennacl::ocl::kernel'
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(586): warning C4267: '=' : conversion from 'size_t' to 'cl_uint', possible loss of data
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(627): error C2079: 'temp' uses undefined class 'viennacl::ocl::kernel'
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(627): error C2078: too many initializers
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(627): error C2440: 'initializing' : cannot convert from 'const std::string' to 'int'
    1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(628): error C2664: 'void std::vector<viennacl::ocl::kernel,std::allocator<_Ty>>::push_back(const viennacl::ocl::kernel &)' : cannot convert argument 1 from 'int' to 'viennacl::ocl::kernel &&'
    1> with
    1>
    1> _Ty=viennacl::ocl::kernel
    1>


    1> Reason: cannot convert from 'int' to 'viennacl::ocl::kernel'
    1> Source or target has incomplete type
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(640): error C2027: use of undefined type 'viennacl::ocl::kernel'
    1> C:\viennacl-dev-master\viennacl/ocl/forwards.h(44) : see declaration of 'viennacl::ocl::kernel'
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(640): error C2039: 'name' : is not a member of 'std::Vector_iterator<std::_Vector_val<std::_Simple_types<viennacl::ocl::kernel>>>'
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(650): error C2027: use of undefined type 'viennacl::ocl::kernel'
    1> C:\viennacl-dev-master\viennacl/ocl/forwards.h(44) : see declaration of 'viennacl::ocl::kernel'
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(655): error C2065: 'p_context
    ' : undeclared identifier
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(655): error C2227: left of '->current_device' must point to class/struct/union/generic type
    1> type is 'unknown-type'
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(655): error C2228: left of '.type' must have class/struct/union
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(656): error C2065: 'p_context_' : undeclared identifier
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(656): error C2227: left of '->current_device' must point to class/struct/union/generic type
    1> type is 'unknown-type'
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(656): error C2228: left of '.type' must have class/struct/union
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(659): error C2065: 'local_work_size_' : undeclared identifier
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(660): error C2065: 'global_work_size_' : undeclared identifier
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(665): error C2065: 'local_work_size_' : undeclared identifier
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(667): error C2065: 'size_type' : undeclared identifier
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(667): error C2146: syntax error : missing ';' before identifier 'units'
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(667): error C2065: 'units' : undeclared identifier
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(667): error C2065: 'p_context_' : undeclared identifier
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(667): error C2227: left of '->current_device' must point to class/struct/union/generic type
    1> type is 'unknown-type'
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(667): error C2228: left of '.max_compute_units' must have class/struct/union
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(668): error C2065: 'size_type' : undeclared identifier
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(668): error C2146: syntax error : missing ';' before identifier 's'
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(668): error C2065: 's' : undeclared identifier
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(670): error C2065: 's' : undeclared identifier
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(670): error C2065: 'units' : undeclared identifier
    1>C:\viennacl-dev-master\viennacl/ocl/context.hpp(670): fatal error C1903: unable to recover from previous error(s); stopping compilation
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

     
  • Karl Rupp

    Karl Rupp - 2013-10-30

    Thanks for trying this out, Matthew. I'll get some hardware this weekend to run Windows 7, so I should be able to have a solution by early next week. :-)

     
  • Karl Rupp

    Karl Rupp - 2013-11-05

    Finally I've got my Visual Studio 2013 Express up and running on a Windows 7 machine. :-) However, I wasn't able to reproduce the build failure regarding the direct_solve.hpp include (only checked examples without Boost.uBLAS).

    Matthew, which example(s) can I use to reproduce the issue? If it's none of the ViennaCL examples, could you please send me your test snippet? Thanks!

     
  • Matthew Musto

    Matthew Musto - 2013-11-13

    Hey, sorry I haven't gotten back to you. I have been tied up on a separate project for the last week and a half. I am going to try and recreate my issue with the built in examples or send you my code snippet within the next couple days.

     
  • Matthew Musto

    Matthew Musto - 2013-11-26

    Karli,

    I think I am all set. I could not reproduce the issue with a fresh project initialization in VS2013. My suspicions are that something happened to the solution when it upgraded from 2012 to 2013. In any case, I moved my source to a fresh 2013 project and things are working splendidly. I still need to use boost 1.54 which was compiled under VS2012 as 1.55 won't compile the serialization code under 2013. Thank you for all you did to help fix what was ultimately an environmental issue.

    On a side note, I'm curious of your thoughts about OpenCL 2.0 now that is has been ratified. Not that we have any SDKs or drivers to run the code, but I suspect that will soon change ;-) As you may remember my personal interests, the HSA features of shared virtual memory may be a great feature for ViennaCL 1.6 where we can select some processes to run on integrated GPUs and others to run on a discrete device as the complexity of the problem warrants. Also, the ability for the GPU to en-queue their own kernels is a nice feature, although I believe CUDA has had it for a while.

    Sorry for completely derailing this thread. I really should have made this a new topic :-/

    -Matt

     
  • Karl Rupp

    Karl Rupp - 2013-11-26

    Hi Matt,

    thanks for letting me know, I'm glad the problem no longer shows up on Visual Studio 2013. Good to know that Boost 1.55 and VS2013 have some issues, other users might stumble over it in the future.

    As for OpenCL 2.0: I think the new standard is a great move forward. The intermediate representation is something that will be very useful for ViennaCL, but for now we can just wait and hope that OpenCL drivers will be implemented by vendors. We still have a bunch of optimizations pending for OpenCL 1.1 and 1.2, so we don't run out of work anytime soon ;-)

    Best regards,
    Karli

     

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks