BIDData/BIDMat

Support for CUDA 7.0

Closed this issue · 9 comments

CUDA 5.5 is old. Please support CUDA 7.0.

I am using bidmach/bidmat with cuda 7 and it seems to work fine.

Sent from my iphone

On Tuesday, May 19, 2015, Daniel Chalef notifications@github.com wrote:

CUDA 5.5 is old. Please support CUDA 7.0.


Reply to this email directly or view it on GitHub
#31.

I'm having difficulty compiling BIDMAT using JCuda-All-0.7.0a and CUDA-7.0. After having copied JCuda's JNI cpp and header files to the appropriate jni directories in the BIDMAT source tree, and compiling, I get this error:

nvcc -c -use_fast_math -I/home/daniel/analytics/BID/BIDMat/jni/include -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_50,code=sm_50 --machine 64 -Xcompiler "-fPIC -c -O2 -g -DNDEBUG" MatKernel.cu MatKernel.cu:14:44: fatal error: cub/device/device_radix_sort.cuh: No such file or directory #include <cub/device/device_radix_sort.cuh> ^ compilation terminated. Makefile:32: recipe for target 'MatKernel.o' failed make: *** [MatKernel.o] Error 1

The paths in Makefile.inc appear correct for my setup.

The main branch of BIDMat has been compiled under CUDA 6.5 for some time. Where did you see CUDA 5.5? If there's an old doc we should fix it.

I just did a migration to 0.7.0a and it works fine. Check the master branch.

But the error you're seeing is unrelated. We recently added Nvidia CUB as a dependency.
http://nvlabs.github.io/cub/
I installed it parallel to BIDMat. The error you're seeing is a missing cub header. CUB has better sorting and some features that are not available in thrust.

I'm trying to find a way to remove the cub dependency since the cub sorting code is also included in thrust in the CUDA 7.0. But its not working yet - the package names are not matching.

For now its necessary to install cub as a sibling to the BIDMat directory.

With cub-1.4.1, I and I am getting:

nvcc -c -use_fast_math -I/home/daniel/analytics/BID/cub-1.4.1/ -I/home/daniel/analytics/BID/BIDMat/jni/include -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_50,code=sm_50 --machine 64 -Xcompiler "-fPIC -c -O2 -g -DNDEBUG" MatKernel.cu MatKernel.cu(1978): error: namespace "thrust::system::cuda::detail::detail" has no member "b40c_thrust"

I had to add an include directive pointing to the cub source. The cub source does not make reference to b40c_thrust.

The following page references cuda 5.5 as a requirement:

https://github.com/BIDData/BIDMat/wiki/Installation

That dependency was removed in the last update. Try pulling again.

help page updated

Thanks. I got everything compiled but not running successfully. I'll paste the stacktrace when I have time to get back to the project.

Managed to get BIDMach to compile.