Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

#13 Assertion fail on 6-core CPU

closed-fixed
nobody
Other/Misc (7)
5
2013-02-12
2012-10-24
Kalle Raiskila
No

Running ViennaCL with a OpenCL backend that suggests non-power-of-two number of workgroups makes ViennaCL assert. This happens with Intel, AMD and pocl OpenCL implementations, when running on (i.e. the OCL device is) a 6-core Intel CPU. It does not seem to happen on 2 or 4 core CPUs, nor GPUs.

ViennaCL-1.3.1-src/build$ ./examples/tutorial/blas1
Copying a few scalars...
Manipulating a few scalars...
CPU scalar s3: 42
GPU scalar vcl_s3: 42
blas1: .../ViennaCL-1.3.1-src/viennacl/linalg/vector_operations.hpp:850: void viennacl::linalg::inner_prod_impl(const V1&, const V2&, S3&, typename viennacl::enable_if<((viennacl::is_vector<V1>::value && viennacl::is_vector<V2>::value) && viennacl::is_scalar<S3>::value)>::type*) [with V1 = viennacl::vector<float>, V2 = viennacl::vector<float>, S3 = viennacl::scalar<float>, typename viennacl::enable_if<((viennacl::is_vector<V1>::value && viennacl::is_vector<V2>::value) && viennacl::is_scalar<S3>::value)>::type = void]: Assertion `(k.global_work_size() / k.local_work_size()) == 1 || (k.global_work_size() / k.local_work_size()) == 2 || (k.global_work_size() / k.local_work_size()) == 4 || (k.global_work_size() / k.local_work_size()) == 8 || (k.global_work_size() / k.local_work_size()) == 16 || (k.global_work_size() / k.local_work_size()) == 32 || (k.global_work_size() / k.local_work_size()) == 64 || (k.global_work_size() / k.local_work_size()) == 128 || (k.global_work_size() / k.local_work_size()) == 256 || (k.global_work_size() / k.local_work_size()) == 512' failed.
Aborted (core dumped)

Discussion

  • Karl Rupp
    Karl Rupp
    2013-01-16

    Confirmed, this has to do with the number of cores not being a power of two. I recommend the use of the new OpenMP backend on the CPU until a fix is provided.

     
  • Karl Rupp
    Karl Rupp
    2013-02-12

    • status: open --> closed-accepted
     
  • Karl Rupp
    Karl Rupp
    2013-02-12

    • status: closed-accepted --> closed-fixed