boostorg / compute

A C++ GPU Computing Library for OpenCL

Home Page:http://boostorg.github.io/compute/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Failing unit tests related to clEnqueueSVMMemcpy on Intel GPU

Kristian-Popov opened this issue · comments

To whom it may concern,

Some of unit tests fail on my setup, all failing tests are related to command_queue::enqueue_svm_memcpy() function. First GPU in my system (and default device for unit tests) is Intel(R) HD Graphics 630, I guess problems with implementation of clEnqueueSVMMemcpy are known (looking at this Twitter message by @jszuppe https://twitter.com/jszpp/status/736564025748795392 ). Unit tests related to that function are skipped using bug_in_svmmemcpy function, but it skips only on non-Windows OS's and AMD devices. Is there any reason why it is not skipped on Intel GPUs?
Detailed log of failing tests:

test_copy.exe
Running 15 test cases...
C:\Users\chris-pet-projects\Documents\boost-compute\include\boost/compute/command_queue.hpp(1693): fatal error: in "class boost::compute::event __cdecl boost::compute::command_queue::enqueue_svm_memcpy(void *,const void *,unsigned __int64,const class boost::compute::wait_list &)": class boost::exception_detail::clone_impl<struct boost::exception_detail::error_info_injector >: Invalid Value
C:\Users\chris-pet-projects\Documents\boost-compute\test\test_copy.cpp(341): last checkpoint: "copy_svm_ptr" test entry
C:\Users\chris-pet-projects\Documents\boost-compute\include\boost/compute/command_queue.hpp(1724): fatal error: in "class boost::compute::event __cdecl boost::compute::command_queue::enqueue_svm_memcpy_async(void *,const void *,unsigned __int64,const class boost::compute::wait_list &)": class boost::exception_detail::clone_impl<struct boost::exception_detail::error_info_injector >: Invalid Value
C:\Users\chris-pet-projects\Documents\boost-compute\test\test_copy.cpp(364): last checkpoint: "copy_async_svm_ptr" test entry

By some reason clEnqueueSVMMemcpy returns INVALID_VALUE although all parameters appears to be valid.

When I force unit tests to use CPU set "BOOST_COMPUTE_DEFAULT_DEVICE_TYPE=CPU" && ctest all unit tests pass.
Related to #528