11-16-2018 05:40 AM - edited 11-19-2018 01:31 AM
Hi,
I am still new to OpenCL Programming with SDAccel and currently experience some issues with enqueueReadBuffer.
It looks like setting the parameter "size_t offset" to anything besides zeros, e.g., when trying to chunk a large data transaction into smaller pieces, results in reading partially invalid dat (Tested in Emulation-SW)
For a minimal example I slightly modified the standard example "Vector Addition" provided by the 2018.2 SDX GUI. Please find the used files and the diffs attached. Changes:
- Kernel: Use incrementing values instead of a vector addition (makes visual debug easier)
- Host: Added defines "ORIGINAL_VERSION" and "READ_AS_A_BLOCK" to quickly change between implementations. It works with ORIGINAL_VERSION defined as well as READ_AS_A_BLOCK defined.
- Host: Use enqueueReadBuffer instead of enqueueMigrateMemObjects
When I set the buffer offset to zero and read the complete buffer it works (uncomment the #defines ORIGINAL_VERSION and READ_AS_BLOCK). As soon as the Chunking is enabled, only the first chunk (with offset zero) is read. To enable the chunking just disable the #define READ_AS_BLOCK.
A CPU-Implementation of the vadd example with Visual Studio works fine.
Any clues?
12-04-2018 10:06 PM
This should have been fixed in 2018.3, which is scheduled to be released in Dec.
11-16-2018 05:40 AM
11-22-2018 03:19 AM
I am looking into this. There were couple of changes that have gone through in the latest build which might have corrected this.
I will check and keep you posted.
11-27-2018 05:41 AM
12-04-2018 10:06 PM
This should have been fixed in 2018.3, which is scheduled to be released in Dec.
12-12-2018 07:39 AM
Hi,
just checked with 2018.3. The bug has been fixed :)
Thanks!