Hi Andreas,

On 2022-12-12 18:08, Andreas Tille wrote:
Am Mon, Dec 12, 2022 at 04:06:40PM +0200 schrieb Andrius Merkys:
When launched on a system without OpenCL, beast-mcmc executable dies:

$ beast-mcmc -help
OpenCL error: CL_DEVICE_NOT_FOUND from file <GPUInterfaceOpenCL.cpp>, line
122.

 From a quick glance this seems to be happening due to beast-mcmc using
OpenCL version of libhmsbeagle1v5 (the line cited in the error message is in
libhmsbeagle source). However, beast-mcmc seems to support CLI options to
switch to libhmsbeagle1v5 CPU instance (see 'beagle_CPU' in
src/dr/app/beast/BeastMain.java). Maybe it is possible to make CPU mode the
default to avoid loading OpenCL-dependent libraries.
Thanks a lot for the hint.  I've tried -beagle_CPU which fails and even
-beagle_off[1] which fails as well[2].

It looks as if beast-mcmc loads all shared libraries of libhmsbeagle unconditionally before parsing the CLI options. Or it sees that OpenCL headers are present (they are present even if no OpenCL device is available) and loads the OpenCL-dependent libraries. I did not dig into the source very much, though.

Best,
Andrius

Reply via email to