From: Charles D. <cde...@gm...> - 2018-06-12 20:58:11
|
Greetings, I have discovered something rather odd. If I run an minimal example (as shown in eigen-with-viennacl.cpp) all runs fine where I pass a compressed_matrix directly to the copy e.g. Eigen::SparseMatrix<float, Eigen::RowMajor> spAm; ... code to fill spAm; viennacl::matrix<float> A = viennacl::compressed_matrix(K, M) viennacl::copy(spAm, A); However, if my compressed_matrix is wrapped up in a std::shared_ptr (C++11) I don't seem to be able to copy even when dereferencing. std::shared_ptr<viennacl::compressed_matrix<T> > shptr = std::make_shared<viennacl::compressed_matrix<float> >(viennacl::compressed_matrix<T>(K,M)); viennacl::copy(spAm, *shptr); Strangely, this results in a series of memory errors, the top relevant ones are here 0x00000000701CF5F6 (0x0000000018C5A670 0x000000001502E060 0x00000000043EB20B 0x00000000043EB230), _ZN8viennacl7backend13memory_createERNS0_10mem_handleEyRKNS_7contextEPKv() + 0x1C6 bytes(s) 0x00000000701C00C0 (0x0000000000000000 0x0000000004627FD0 0x0000000000000010 0x0000000000000004), _ZN8viennacl6detail9copy_implINS_5tools27const_sparse_matrix_adapterIdjEEdLj1EEEvRKT_RNS_17compressed_matrixIT0_XT1_EEEy() + 0x3A0 bytes(s) 0x00000000701BD721 (0x00000000043EB350 0x0000000004627FD0 0x0000000004530620 0x0000000007474070), _ZN8viennacl4copyIdLi1ELj1EEEvRKN5Eigen12SparseMatrixIT_XT0_EiEERNS_17compressed_matrixIS3_XT1_EEE() + 0x321 bytes(s) which following some c++filt we get the following viennacl::backend::memory_create(viennacl::backend::mem_handle&, unsigned long long, viennacl::context const&, void const*) void viennacl::detail::copy_impl<viennacl::tools::const_sparse_matrix_adapter<float, unsigned int>, float, 1u>(viennacl::tools::const_sparse_matrix_adapter<float, unsigned int> const&, viennacl::compressed_matrix<float, 1u>&, unsigned long long) void viennacl::copy<float, 1, 1u>(Eigen::SparseMatrix<float, 1, int> const&, viennacl::compressed_matrix<float, 1u>&) Any insight as to why this would be would be appreciated. Regards, Charles |