Goddamn C++!
On Jan 4, 2012, at 5:07 PM, Paul Mullowney wrote: > I'm having troubles building PETSc with the most recent version of CUSP > (v.0.2.0) and Thurst (v1.5.0). I see the errors below. Any help is much > appreciated. > > -Paul > > > nvcc -gencode arch=compute_20,code=sm_20 -O3 -I/usr/local/cuda/include -O > -arch=sm_13 -c --compiler-options="-g -O3 -O > -I/home/research/paulm/gpuPETSc/petsc-dev/include > -I/home/research/paulm/gpuPETSc/petsc-dev/arch-linux2-c-opt/include > -I/usr/local/cuda/include -I/home/research/paulm/gpuPETSc/txpetscgpu/include > -I/home/research/paulm/gpuPETSc/externLibs/cusp/ -I/usr/local/cuda/include/ > -I/usr/local/contrib/openmpi-1.4.2-nodl/include > -D__INSDIR__=src/mat/impls/aij/seq/seqcusp/" aijAssemble.cu > > /home/research/paulm/gpuPETSc/externLibs/cusp/cusp/detail/device/generalized_spmv/coo_flat.h(509): > error: namespace "thrust::detail::backend::cuda" has no member > "uniform_interval_splitting" > detected during instantiation of "void > cusp::detail::device::reduce_by_key(InputIterator1, InputIterator1, > InputIterator2, OutputIterator1, OutputIterator2, BinaryPredicate, > BinaryFunction) [with > InputIterator1=thrust::zip_iterator<thrust::tuple<thrust::detail::normal_iterator<thrust::device_ptr<PetscInt>>, > thrust::detail::normal_iterator<thrust::device_ptr<PetscInt>>, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>>, > InputIterator2=thrust::detail::normal_iterator<thrust::device_ptr<ValueType>>, > > OutputIterator1=thrust::zip_iterator<thrust::tuple<thrust::detail::normal_iterator<thrust::device_ptr<PetscInt>>, > thrust::detail::normal_iterator<thrust::device_ptr<PetscInt>>, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>>, > OutputIterator2=thrust::detail::normal_iterator<thrust::device_ptr<ValueType>>, > BinaryPredicate=thrust::equal_to<thrust::tuple<PetscInt, PetscInt, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>>, > BinaryFunction=thrust::plus<ValueType>]" > aijAssemble.cu(264): here > > /home/research/paulm/gpuPETSc/externLibs/cusp/cusp/detail/device/generalized_spmv/coo_flat.h(509): > error: type name is not allowed > detected during instantiation of "void > cusp::detail::device::reduce_by_key(InputIterator1, InputIterator1, > InputIterator2, OutputIterator1, OutputIterator2, BinaryPredicate, > BinaryFunction) [with > InputIterator1=thrust::zip_iterator<thrust::tuple<thrust::detail::normal_iterator<thrust::device_ptr<PetscInt>>, > thrust::detail::normal_iterator<thrust::device_ptr<PetscInt>>, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>>, > InputIterator2=thrust::detail::normal_iterator<thrust::device_ptr<ValueType>>, > > OutputIterator1=thrust::zip_iterator<thrust::tuple<thrust::detail::normal_iterator<thrust::device_ptr<PetscInt>>, > thrust::detail::normal_iterator<thrust::device_ptr<PetscInt>>, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>>, > OutputIterator2=thrust::detail::normal_iterator<thrust::device_ptr<ValueType>>, > BinaryPredicate=thrust::equal_to<thrust::tuple<PetscInt, PetscInt, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>>, > BinaryFunction=thrust::plus<ValueType>]" > aijAssemble.cu(264): here > > /home/research/paulm/gpuPETSc/externLibs/cusp/cusp/detail/device/generalized_spmv/coo_flat.h(509): > warning: expression has no effect > detected during: > instantiation of "void > cusp::detail::device::cuda::spmv_coo(SizeType, SizeType, IndexIterator1, > IndexIterator2, ValueIterator1, ValueIterator2, ValueIterator3, > ValueIterator4, BinaryFunction1, BinaryFunction2) [with SizeType=unsigned > long, > IndexIterator1=thrust::detail::normal_iterator<thrust::device_ptr<unsigned > int>>, IndexIterator2=thrust::constant_iterator<unsigned int, > thrust::use_default, thrust::use_default>, > ValueIterator1=thrust::detail::normal_iterator<thrust::device_ptr<ValueType>>, > ValueIterator2=thrust::constant_iterator<ValueType, thrust::use_default, > thrust::use_default>, ValueIterator3=thrust::constant_iterator<ValueType, > thrust::use_default, thrust::use_default>, > ValueIterator4=thrust::detail::normal_iterator<thrust::device_ptr<ValueType>>, > BinaryFunction1=thrust::multiplies<ValueType>, > BinaryFunction2=thrust::plus<ValueType>]" > /home/research/paulm/gpuPETSc/externLibs/cusp/cusp/detail/device/reduce_by_key.inl(100): > here > instantiation of "void > cusp::detail::device::reduce_by_key(InputIterator1, InputIterator1, > InputIterator2, OutputIterator1, OutputIterator2, BinaryPredicate, > BinaryFunction) [with > InputIterator1=thrust::zip_iterator<thrust::tuple<thrust::detail::normal_iterator<thrust::device_ptr<PetscInt>>, > thrust::detail::normal_iterator<thrust::device_ptr<PetscInt>>, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>>, > InputIterator2=thrust::detail::normal_iterator<thrust::device_ptr<ValueType>>, > > OutputIterator1=thrust::zip_iterator<thrust::tuple<thrust::detail::normal_iterator<thrust::device_ptr<PetscInt>>, > thrust::detail::normal_iterator<thrust::device_ptr<PetscInt>>, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>>, > OutputIterator2=thrust::detail::normal_iterator<thrust::device_ptr<ValueType>>, > BinaryPredicate=thrust::equal_to<thrust::tuple<PetscInt, PetscInt, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>>, > BinaryFunction=thrust::plus<ValueType>]" > aijAssemble.cu(264): here > > /home/research/paulm/gpuPETSc/externLibs/cusp/cusp/detail/device/generalized_spmv/coo_flat.h(509): > warning: expression has no effect > detected during: > instantiation of "void > cusp::detail::device::cuda::spmv_coo(SizeType, SizeType, IndexIterator1, > IndexIterator2, ValueIterator1, ValueIterator2, ValueIterator3, > ValueIterator4, BinaryFunction1, BinaryFunction2) [with SizeType=unsigned > long, > IndexIterator1=thrust::detail::normal_iterator<thrust::device_ptr<unsigned > int>>, IndexIterator2=thrust::constant_iterator<unsigned int, > thrust::use_default, thrust::use_default>, > ValueIterator1=thrust::detail::normal_iterator<thrust::device_ptr<ValueType>>, > ValueIterator2=thrust::constant_iterator<ValueType, thrust::use_default, > thrust::use_default>, ValueIterator3=thrust::constant_iterator<ValueType, > thrust::use_default, thrust::use_default>, > ValueIterator4=thrust::detail::normal_iterator<thrust::device_ptr<ValueType>>, > BinaryFunction1=thrust::multiplies<ValueType>, > BinaryFunction2=thrust::plus<ValueType>]" > /home/research/paulm/gpuPETSc/externLibs/cusp/cusp/detail/device/reduce_by_key.inl(100): > here > instantiation of "void > cusp::detail::device::reduce_by_key(InputIterator1, InputIterator1, > InputIterator2, OutputIterator1, OutputIterator2, BinaryPredicate, > BinaryFunction) [with > InputIterator1=thrust::zip_iterator<thrust::tuple<thrust::detail::normal_iterator<thrust::device_ptr<PetscInt>>, > thrust::detail::normal_iterator<thrust::device_ptr<PetscInt>>, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>>, > InputIterator2=thrust::detail::normal_iterator<thrust::device_ptr<ValueType>>, > > OutputIterator1=thrust::zip_iterator<thrust::tuple<thrust::detail::normal_iterator<thrust::device_ptr<PetscInt>>, > thrust::detail::normal_iterator<thrust::device_ptr<PetscInt>>, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>>, > OutputIterator2=thrust::detail::normal_iterator<thrust::device_ptr<ValueType>>, > BinaryPredicate=thrust::equal_to<thrust::tuple<PetscInt, PetscInt, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>>, > BinaryFunction=thrust::plus<ValueType>]" > aijAssemble.cu(264): here > > /home/research/paulm/gpuPETSc/externLibs/cusp/cusp/detail/device/generalized_spmv/coo_flat.h(506): > warning: variable "unit_size" was set but never used > detected during: > instantiation of "void > cusp::detail::device::cuda::spmv_coo(SizeType, SizeType, IndexIterator1, > IndexIterator2, ValueIterator1, ValueIterator2, ValueIterator3, > ValueIterator4, BinaryFunction1, BinaryFunction2) [with SizeType=unsigned > long, > IndexIterator1=thrust::detail::normal_iterator<thrust::device_ptr<unsigned > int>>, IndexIterator2=thrust::constant_iterator<unsigned int, > thrust::use_default, thrust::use_default>, > ValueIterator1=thrust::detail::normal_iterator<thrust::device_ptr<ValueType>>, > ValueIterator2=thrust::constant_iterator<ValueType, thrust::use_default, > thrust::use_default>, ValueIterator3=thrust::constant_iterator<ValueType, > thrust::use_default, thrust::use_default>, > ValueIterator4=thrust::detail::normal_iterator<thrust::device_ptr<ValueType>>, > BinaryFunction1=thrust::multiplies<ValueType>, > BinaryFunction2=thrust::plus<ValueType>]" > /home/research/paulm/gpuPETSc/externLibs/cusp/cusp/detail/device/reduce_by_key.inl(100): > here > instantiation of "void > cusp::detail::device::reduce_by_key(InputIterator1, InputIterator1, > InputIterator2, OutputIterator1, OutputIterator2, BinaryPredicate, > BinaryFunction) [with > InputIterator1=thrust::zip_iterator<thrust::tuple<thrust::detail::normal_iterator<thrust::device_ptr<PetscInt>>, > thrust::detail::normal_iterator<thrust::device_ptr<PetscInt>>, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>>, > InputIterator2=thrust::detail::normal_iterator<thrust::device_ptr<ValueType>>, > > OutputIterator1=thrust::zip_iterator<thrust::tuple<thrust::detail::normal_iterator<thrust::device_ptr<PetscInt>>, > thrust::detail::normal_iterator<thrust::device_ptr<PetscInt>>, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>>, > OutputIterator2=thrust::detail::normal_iterator<thrust::device_ptr<ValueType>>, > BinaryPredicate=thrust::equal_to<thrust::tuple<PetscInt, PetscInt, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, > thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>>, > BinaryFunction=thrust::plus<ValueType>]" > aijAssemble.cu(264): here > > 2 errors detected in the compilation of > "/tmp/tmpxft_000056d7_00000000-6_aijAssemble.compute_20.cpp1.ii".
