OpenCL implementation not doing device sanity checks
is_gmx_supported_gpu_id() calls do_sanity_checks() in CUDA implementation, even launching a dummy GPU kernel, but does nothing of the kind in OpenCL, only looking at device vendor and OS version.
Therefore, disabling devices with "sudo nvidia-smi -c 2" causes OpenCL mdrun to fail with CL_DEVICE_NOT_AVAILABLE on context creation.
Add a sanity check for OpenCL devices
Introduced some type traits to support RAII types for OpenCL handles,
so that we can safely free resources when responding to OpenCL API
error codes, and do so with usefully descriptive error messages.
The new infrastructure is used to implement a check that an OpenCL GPU
can execute a dummy kernel.
Fixed some broken docs, and updated some function naming for new
#6 Updated by Szilárd Páll about 2 years ago
- Target version changed from 2018.3 to 2019
Mark Abraham wrote:
The two fixes waiting in gerrit for follow up are on master branch, so I don't know offhand where we might fix this. It might not be important enough for release-2018.
Agreed, if we find an easy-to-backport solution we can consider, but otherwise, it's only an improvement in terms of mdrun robustness that doesn't greatly affect its functionality.