Intel® Rendering Toolkit
Receive answers to your big data visualization questions from community peers and Intel experts.
27 Discussions

2023.1.x Errata: OSPRay runtime resolution fixes on linux

Michael_C_Intel1
Moderator
1,954 Views

2023.1.x OSPRay troubleshoot and workarounds.

See details below on each of these issues.

1. libomp not found

2. libospray undefined symbols

3. libze_loader (level-zero) not found

 

Issue 1:

On 2023.1.x release of the RenderKit, when running an OSPRay based program, you may observe an error like:

'could not open module lib ospray_module_cpu: libomp.so: cannot open shared object file: No such file or directory'

 

Resolution:

Please ensure that the OpenMP library, libomp.so, is visible for the dynamic loader. You may install this library via a package like libomp-dev and libomp5 on Ubuntu 22.04 OS, however, the installer places this runtime in non-default runtime library search paths. The fix is to add the path to your linker search path.

 

Fix Example on Ubuntu 22.04:

From a fresh terminal shell, source the environment variables for the oneAPI developer tools.

source /opt/intel/oneapi/setvars.sh

 

This populates the LD_LIBRARY_PATH environment variable. Add the path to your libomp.so to your LD_LIBRARY_PATH. Format:

export LD_LIBRARY_PATH=/path/to/library:${LD_LIBRARY_PATH}

Example:

export LD_LIBRARY_PATH=/usr/lib/llvm-14/lib:${LD_LIBRARY_PATH}

Note: As an alternative, you may also consider system wide edits with ld.so. See the man page for ld.so and ldconfig for details.

Rerun the program:

/opt/intel/oneapi/ospray/latest/bin/ospTutorialCpp

Tip... Find utils are helpful if you can not find the library:

sudo updatedb
locate libomp.so

 

 

 

Issue 2

On 2023.1.x release of RenderKit, OSPRay programs may display one of these undefined symbol errors.

libospray.so.2: undefined symbol: _intel_fast_memcpy
libospray.so.2: undefined symbol: _intel_fast_memset
libospray.so.2: undefined symbol: __intel_cpu_feature_indicator_x

Resolution:

Symbols for the above need to be made visible for affected programs. These symbols are in libirc.so provided as part of the Intel oneAPI DPC/C++ Compiler Runtime libraries. It is simplest to install them with the compiler in the oneAPI BaseKit.

 

Workaround:

 A workaround for this error is to use the LD_PRELOAD facility for the undefined symbols... example:

LD_PRELOAD=/opt/intel/oneapi/compiler/2023.1.0/linux/compiler/lib/intel64_lin/libirc.so /opt/intel/oneapi/ospray/latest/bin/ospBenchmark

 Or example 

LD_PRELOAD=/opt/intel/oneapi/compiler/2023.1.0/linux/compiler/lib/intel64_lin/libirc.so /opt/intel/oneapi/ospray/latest/bin/ospTutorialCpp

 

Issue 3:

On 2023.1.x release of Rendering Toolkit, OSPRay programs may show a missing dependency on libze_loader. Example:

 

#ospray: INVALID device --> Load of ospray_module_cpu failed due to: 'could not open module lib ospray_module_cpu: libze_loader.so.1: cannot open shared object file: No such file or directory'

 

Resolution:

Related dependencies are found from a shared library object found within the level-zero and level-zero-devel packages.

 

These packages can be accessed in a manually or with a system package . Example for manual package install:

 

1) Navigate to the level-zero releases page.

2) Download the level-zero and level-zero-devel .deb packages. Example:

wget https://github.com/oneapi-src/level-zero/releases/download/v1.9.4/level-zero_1.9.4+u18.04_amd64.deb
wget https://github.com/oneapi-src/level-zero/releases/download/v1.9.4/level-zero-devel_1.9.4+u18.04_amd64.deb

3) Install the packages. Example:

dpkg -i level-zero*.deb

Tip... if you have findutils, confirm the location of libze_loader.so.1 on disk:

 

sudo updatedb
locate libze_loader.so.1

 

4) Try running the program again.

 

ospBenchmark

 

These packages are hosted on Intel maintained repositories. Instructions on deploying this dependency are found within discrete GPU setup procedures. 

If you have an Intel graphics device on the system, review setup procedures for 'arc', 'flex', and 'max' package repositories.

Note that discrete GPU targeting is not available in with this release of OSPRay.

 

After configuring the repository as described for setup:

SUSE OS

sudo zypper install -y level-zero level-zero-devel

Ubuntu OS

sudo apt-get install -y level-zero level-zero-devel

RH OS

sudo dnf install -y level-zero level-zero-devel

 

-MichaelC

0 Replies
Reply