[petsc-dev] PETSc build errors with he most recent thrust/cusp

Chetan Jhurani chetan.jhurani at gmail.com
Wed Jan 4 17:56:10 CST 2012


Paul,

Thrust 1.5 has removed that function but the cusp version 0.2
still uses it.  Hence the error.  The repo cusp version apparently
fixed this issue.

http://code.google.com/p/cusp-library/source/browse/cusp/detail/device/generalized_spmv/coo_flat.h

Chetan

> -----Original Message-----
> From: petsc-dev-bounces at mcs.anl.gov [mailto:petsc-dev-bounces at mcs.anl.gov] On Behalf Of Paul Mullowney
> Sent: Wednesday, January 04, 2012 3:08 PM
> To: petsc-dev at mcs.anl.gov
> Subject: [petsc-dev] PETSc build errors with he most recent thrust/cusp
> 
> 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<P
> etscInt>>,
> 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<P
> etscInt>>,
> 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<P
> etscInt>>,
> 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<P
> etscInt>>,
> 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<P
> etscInt>>,
> 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".




More information about the petsc-dev mailing list