antonmks / Alenka

GPU database engine
Other
1.17k stars 120 forks source link

problem with Boost 1.53.0 #12

Closed agnius-vasiliauskas closed 11 years ago

agnius-vasiliauskas commented 11 years ago

Also when compiling Alenka with boost 1.53.0 on windows 32-bit & cuda 5.0 - I'm getting error:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\bin/../include\boost/uno rdered/detail/unique.hpp(342) : error C2248: 'boost::unordered::iteratordetail: :iterator::node' : cannot access private member declared in class 'boost: :unordered::iterator_detail::iterator' with [ Node=boost::unordered::detail::ptr_node<std::pair<const int64,unsi gned int>> ] C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\bin/../include\b oost/unordered/detail/buckets.hpp(199) : see declaration of 'boost::unordered::i teratordetail::iterator::node' with [ Node=boost::unordered::detail::ptr_node<std::pair<const __int64,unsi gned int>> ] C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\bin/../include\b oost/unordered/detail/unique.hpp(336) : while compiling class template member fu nction 'std::pair<_Ty1,_Ty2> &boost::unordered::detail::table_impl::opera tor [](const int64 &)' with [ _Ty1=const int64, Ty2=unsigned int, Types=boost::unordered::detail::map<std::allocator<std::pair<const _int64,unsigned int>>,int64,unsigned int,boost::hash<int64>,std::equal_to< int64>> ] C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\bin/../include\b oost/unordered/unordered_map.hpp(73) : see reference to class template instantia tion 'boost::unordered::detail::tableimpl' being compiled with [ Types=boost::unordered::detail::map<std::allocator<std::pair<const _int64,unsigned int>>,int64,unsigned int,boost::hash<__int64>,std::equal_to< int64>> ] merge.cu(103) : see reference to class template instantiation 'boost::un ordered::unordered_map<K,T,H,P,A>' being compiled with [ K=int64, T=unsigned int, H=boost::hash<int64>, P=std::equal_to<__int64>, A=std::allocator<std::pair<const __int64,unsigned int>> ] NMAKE : fatal error U1077: '"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\ v5.0\bin\nvcc.EXE"' : return code '0x2' Stop.

Can somebody help ?

antonmks commented 11 years ago

Most likely the same problem . You need to compile Alenka as 64bit executable. It won't work on a 32bit platforms.

agonen commented 11 years ago

i've the same problem on 64bit machine

antonmks commented 11 years ago

Seems like a problem with Boost 1.53. I removed Boost references, Alenka uses now a straight map container.

AlexeyAB commented 11 years ago

It is strange because at me works fine boost::unordered_map. MSVS2010 + Boost1.53

antonmks commented 11 years ago

It works on my machine too. Boost unordered map has a much better performance so groupby's run 3-4 times faster for large datasets. So guys if you need it get the version without Boost now because tomorrow I will revert Alenka back to using Boost map containers.

AlexeyAB commented 11 years ago

Hi Anton! And why groupby is using CPU unordered_map instead of the using GPU libraries for matching and Murmurhash for hashing?

antonmks commented 11 years ago

This would be good if the results (or at least the hashes of the results) could be kept in GPU memory. But for some groupby operations at the large scale the results do not fit GPU memory. I'll try tonight to see if at least the hashing could be done on GPU.