boostorg / boostorg/compute

command_queue::enqueue_svm_memcpy(..) does not work

Open
#528 3 comments 0 reactions 0 assignees View on GitHub
driver bug
Dominant language
C++
Stars
1.7k
Forks
340
PR merge metrics
No merged PRs in 30d

Description

Hi,

Tests `fill_svm_buffer`, `copy_svm_ptr` and `sum_svm_kernel` fail on my AMD Radeon R9 380. I managed to figure out that is all because of `command_queue::enqueue_svm_memcpy(..)` not working. It does not copy the data. When map and unmap operations are used instead of memcpy, everything works.

It looks like AMD drivers has a bug in `clEnqueueSVMMemcpy()`, but I'll have to test it without Boost.Compute. When it's confirmed, I'll do workaround for this (or we'll just wait for fix).

For now I'll push pull request fixing `fill_svm_buffer` and `sum_svm_kernel`, because in those cases copy operations are just a part of preparations for testing (not tested algorithm) and also because not working `command_queue::enqueue_svm_memcpy(..)` is not the only bug in `sum_svm_kernel` test.

Environment:

```
OS: Linux Mint 17.2 (3.16)
Platform Version: OpenCL 2.0 AMD-APP (1800.11)
Board name: AMD Radeon (TM) R9 380 Series
Device OpenCL C version: OpenCL C 2.0
AMD GPU Drivers: 15.9 (15.201.1151)
```
##

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.