Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing implementations of clsparseScoomv and clsparseDcoomv #197

Open
gpu opened this issue Aug 24, 2016 · 4 comments
Open

Missing implementations of clsparseScoomv and clsparseDcoomv #197

gpu opened this issue Aug 24, 2016 · 4 comments

Comments

@gpu
Copy link

gpu commented Aug 24, 2016

(The build process of clSPARSE is ... ehm ... "sophisticated", so apologies if I did something wrong and if the issue is on my side)

The implementations __imp_clsparseScoomv and __imp_clsparseDcoomv seem to be missing. When building the library from scratch and trying to use these functions, this results in

Unresolved external symbol __imp_clsparseScoomv referenced in function ...
Unresolved external symbol __imp_clsparseDcoomv referenced in function ...

As a quick test, you could try to reproduce this, by adding the following TEST>...<TEST in https://github.com/clMathLibraries/clSPARSE/blob/master/src/tests/test_interface_c.c

....

// Library init code starts here
clsparseSetup( );

clsparseCreateResult createResult = clsparseCreateControl( queue );

clsparseCooMatrix myCooMatx;
clsparseInitCooMatrix( &myCooMatx );

// TEST>
clsparseScalar alpha;
cldenseVector x;
clsparseScalar beta;
cldenseVector y;
clsparseDcoomv(&alpha, &myCooMatx, &x, &beta, &y, createResult.control);
// <TEST

(of course, this will not "work", but should already show the linker error)

Environment:

Windows 8.1, Visual Studio 2015

@blueberry
Copy link

blueberry commented Aug 27, 2016

I am also interested in this issue, since I would really like to try clSparse, but the building process is really messy EDIT: challenging. Is there a way to have a clear, step-by-step guide with the most common pitfalls?

@kknox
Copy link
Contributor

kknox commented Aug 29, 2016

@blueberry , have you looked at the build primer on the wiki? Let me know if you find sections that are insufficient.

@gpu I have not gotten to reproducing your issue yet.

@blueberry
Copy link

blueberry commented Aug 29, 2016

@kknox Yes, I have. And it looks quite OK at the first glance. The problem (for me) is that the build process itself is quite complex, so when something does not go as in the guide, it is quite hard (for non-expert I suppose) to find what's wrong.

In this case, I couldn't pass the first stage. I got this error on pressing "Generate" for the deps:

-------------------------------------------------------------------
64bit build - FIND_LIBRARY_USE_LIB64_PATHS TRUE
Setting up Boost external...
Configuring Boost SuperBuild...
ext.Boost_VERSION: 1.60.0
ExternalBoost using ( 9 ) cores to build with
ExternalBoost building [ program_options, serialization, filesystem, system, regex ] components
ENV{CC}=
CMake Error at cmake/ExternalBoost.cmake:98 (get_filename_component):
get_filename_component called with incorrect number of arguments
Call Stack (most recent call first):
CMakeLists.txt:105 (include)

CMake Error at cmake/ExternalBoost.cmake:101 (string):
string no output variable specified
Call Stack (most recent call first):
CMakeLists.txt:105 (include)

Boost.Command: ./b2;--prefix=<INSTALL_DIR>/package;cxxflags=-fPIC;-std=c++11;-j;9;--with-program_options;--with-serialization;--with-filesystem;--with-system;--with-regex;address-model=64;toolset=;link=static;variant=release;--layout=tagged;install
BOOST_ROOT configured as: /home/dragan/workspace/c/clsparse/bin/deps/Externals/Boost/package
Setting up googleMock external...
Configuring gMock SuperBuild...
ext.gMock_Version: 1.7.0
ExternalGmock using ( 9 ) cores to build with
GMOCK_ROOT configured as: /home/dragan/workspace/c/clsparse/bin/deps/Externals/gMock/package
Configuring incomplete, errors occurred!
See also "/home/dragan/workspace/c/clsparse/bin/deps/CMakeFiles/CMakeOutput.log".

-------------------------------------------------------------------------

I followed the guide to the letter, and tried clearing the cache/deleting everything, etc. many times. Always the same error. I am a CMake noob, but had no serious challenges building JOCL (@gpu's library that also uses CMake and OpenCL), so I guess this is not due to the system setup, or if it is, I do not know what could be the problem.

BTW: Up-to-date Arch Linux 64-bit, AMD OpenCL platform (Catalyst 15.12-something)

@kknox
Copy link
Contributor

kknox commented Aug 30, 2016

@blueberry
I have run into this issue before, on a mac system. It's not very reproducible, it works for me on various other systems. I have yet to nail down why the DEFINED ENV{CC} seems to pass on some systems when it shouldn't. I created a patch for my mac system, that will probably work on your system too. Try it out and let me know. I've not merged it because I have not tested it across windows/linux.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants