I tried allocating buffers with CL_MEM_USE_PERSISTENT_MEM_AMD set. For most machines this worked fine. But on some RHEL 6 machines mapping the buffer with clEnqueueMapBuffer failed.
Is this flag something I should use only on certain hardware or driver versions? If so, how can I tell when it is ok to use?
Originally posted by: Dr.Haribo I tried allocating buffers with CL_MEM_USE_PERSISTENT_MEM_AMD set. For most machines this worked fine. But on some RHEL 6 machines mapping the buffer with clEnqueueMapBuffer failed.
Is this flag something I should use only on certain hardware or driver versions? If so, how can I tell when it is ok to use?
Dr. Haribo,
In linux, CL_MEM_USE_PERSISTENT_MEM_AMD does not do any extra task. It is same as default.
Many samples in SDK use this flag for buffer and mapping used to fill data. Could you please run Reduction sample on that system and see you see any failures?
Please send your code if you are not able to reproduce from Reduction sample.
Please give also your system information like Driver version, SDK version, OS, CPU and GPU?
Are you running on which device?
Originally posted by: genaganna
Many samples in SDK use this flag for buffer and mapping used to fill data. Could you please run Reduction sample on that system and see you see any failures?
The Reduction sample runs fine. The only difference I can see is that it busy-waits for clEnqueueMapBuffer to finish, while I use the blocking call instead.
Please send your code if you are not able to reproduce from Reduction sample.
I'll try to see if I can reproduce it with a smaller piece of code.
Please give also your system information like Driver version, SDK version, OS, CPU and GPU?
Are you running on which device?
The machine is an HP Compaq 8200 Elite.
OS: Red Hat Enterprise Linux Workstation release 6.1 (Santiago)
Driver: Catalyst 11.8
SDK: OpenCL 1.1 AMD-APP-SDK-v2.5 (684.213)
CPU: Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz
GPU: ATI Technologies Inc NI Caicos [AMD RADEON HD 6450]
Originally posted by: Dr.Haribo
The Reduction sample runs fine. The only difference I can see is that it busy-waits for clEnqueueMapBuffer to finish, while I use the blocking call instead.
Please replace busy wait with blocked call and see whether you are able to reproduce or not.
As per my understanding, it should work without any problem.
Are you running on CPU or GPU?
Originally posted by: genaganna
Please replace busy wait with blocked call and see whether you are able to reproduce or not.
As per my understanding, it should work without any problem.
Are you running on CPU or GPU?
I was running on GPU. I can't reproduce this. I'll get back to this if I am able to reproduce it in the future.
Anyway, several of these computers at the office were locking up randomly running Red Hat Enterprise Linux 6 with a Caicos GPU and Catalyst 11.8. So something was very wrong there. Now with Catalyst 11.9 everything seems stable so far. Knock on wood 😉