sycl-blas icon indicating copy to clipboard operation
sycl-blas copied to clipboard

hipSYCL Compilation Error

Open calgray opened this issue 4 years ago • 0 comments

When compiling with hipSYCL using the README.md command cmake .. -DhipSYCL_DIR=/opt/hipSYCL/CUDA/lib/cmake/hipSYCL -DSYCL_COMPILER=hipsycl I get the attached compiler error multiple times. My guess is a release version of hipSYCL such as v0.9.1 is needed rather than the repo default branch but I'm guessing that a breaking version change since the initial hipSYCL support is the issue.

Building master on Arch Linux with packages: computecpp: 2.3.0-1 hipsycl-cuda-git: r1419.72b201e-1 gcc: 11.1.0-1

Compiler Error:

In file included from ~/sycl-blas/src/policy/sycl_policy_handler.cpp:29:
~/sycl-blas/src/policy/sycl_policy_handler.hpp: In instantiation of ‘blas::BufferIterator<element_t, blas::codeplay_policy> blas::PolicyHandler<blas::codeplay_policy>::get_buffer(element_t*) const [with element_t = float]’:
~/sycl-blas/src/policy/sycl_policy_handler.cpp:80:1:   required from here
~/sycl-blas/src/policy/sycl_policy_handler.hpp:62:10: error: no matching function for call to ‘blas::BufferIterator<float, blas::codeplay_policy>::BufferIterator(hipsycl::sycl::buffer<float, 1, std::allocator<unsigned char> >&, long int&)’
   62 |   return BufferIterator<element_t, codeplay_policy>(buff, offset);
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ~/sycl-blas/include/policy/sycl_policy_handler.h:29,
                 from ~/sycl-blas/src/policy/sycl_policy_handler.hpp:28,
                 from ~/sycl-blas/src/policy/sycl_policy_handler.cpp:29:
~/sycl-blas/include/container/sycl_iterator.h:86:3: note: candidate: ‘template<class other_scalar_t, class U, class> blas::BufferIterator<element_t, blas::codeplay_policy>::BufferIterator(const blas::BufferIterator<other_scalar_t, blas::codeplay_policy>&) [with other_scalar_t = other_scalar_t; U = U; <template-parameter-2-3> = <template-parameter-1-3>; element_t = float]’
   86 |   BufferIterator(const BufferIterator<other_scalar_t, codeplay_policy>& other);
      |   ^~~~~~~~~~~~~~
~/sycl-blas/include/container/sycl_iterator.h:86:3: note:   template argument deduction/substitution failed:
In file included from ~/sycl-blas/src/policy/sycl_policy_handler.cpp:29:
~/sycl-blas/src/policy/sycl_policy_handler.hpp:62:10: note:   ‘hipsycl::sycl::buffer<float, 1, std::allocator<unsigned char> >’ is not derived from ‘const blas::BufferIterator<element_t, blas::codeplay_policy>’
   62 |   return BufferIterator<element_t, codeplay_policy>(buff, offset);
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ~/sycl-blas/include/policy/sycl_policy_handler.h:29,
                 from ~/sycl-blas/src/policy/sycl_policy_handler.hpp:28,
                 from ~/sycl-blas/src/policy/sycl_policy_handler.cpp:29:
~/sycl-blas/include/container/sycl_iterator.h:275:8: note: candidate: ‘blas::BufferIterator<element_t, blas::codeplay_policy>::BufferIterator(const buff_t&) [with element_t = float; blas::BufferIterator<element_t, blas::codeplay_policy>::buff_t = hipsycl::sycl::buffer<float, 1, std::allocator<float> >]’
  275 | inline BufferIterator<element_t, codeplay_policy>::BufferIterator(
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~/sycl-blas/include/container/sycl_iterator.h:275:8: note:   candidate expects 1 argument, 2 provided
~/sycl-blas/include/container/sycl_iterator.h:269:8: note: candidate: ‘blas::BufferIterator<element_t, blas::codeplay_policy>::BufferIterator(const buff_t&, std::ptrdiff_t) [with element_t = float; blas::BufferIterator<element_t, blas::codeplay_policy>::buff_t = hipsycl::sycl::buffer<float, 1, std::allocator<float> >; std::ptrdiff_t = long int]’
  269 | inline BufferIterator<element_t, codeplay_policy>::BufferIterator(
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~/sycl-blas/include/container/sycl_iterator.h:270:72: note:   no known conversion for argument 1 from ‘hipsycl::sycl::buffer<float, 1, std::allocator<unsigned char> >’ to ‘const buff_t&’ {aka ‘const hipsycl::sycl::buffer<float, 1, std::allocator<float> >&’}
  270 |     const typename BufferIterator<element_t, codeplay_policy>::buff_t& buff,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
~/sycl-blas/include/container/sycl_iterator.h:67:3: note: candidate: ‘blas::BufferIterator<element_t, blas::codeplay_policy>::BufferIterator() [with element_t = float]’
   67 |   BufferIterator() : offset_{0}, buffer_{cl::sycl::range<1>{1}} {}
      |   ^~~~~~~~~~~~~~
~/sycl-blas/include/container/sycl_iterator.h:67:3: note:   candidate expects 0 arguments, 2 provided
In file included from ~/sycl-blas/include/policy/sycl_policy_handler.h:29,
                 from ~/sycl-blas/src/policy/sycl_policy_handler.hpp:28,
                 from ~/sycl-blas/src/policy/sycl_policy_handler.cpp:29:
~/sycl-blas/include/container/sycl_iterator.h:36:7: note: candidate: ‘blas::BufferIterator<float, blas::codeplay_policy>::BufferIterator(const blas::BufferIterator<float, blas::codeplay_policy>&)’
   36 | class BufferIterator<element_t, codeplay_policy> {
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~/sycl-blas/include/container/sycl_iterator.h:36:7: note:   candidate expects 1 argument, 2 provided
~/sycl-blas/include/container/sycl_iterator.h:36:7: note: candidate: ‘blas::BufferIterator<float, blas::codeplay_policy>::BufferIterator(blas::BufferIterator<float, blas::codeplay_policy>&&)’
~/sycl-blas/include/container/sycl_iterator.h:36:7: note:   candidate expects 1 argument, 2 provided

calgray avatar Aug 26 '21 06:08 calgray