Intel® oneAPI Rendering Toolkit
Receive answers to your big data visualization questions from community peers and Intel experts.
Announcements
The Intel sign-in experience has changed to support enhanced security controls. If you sign in, click here for more information.
17 Discussions

Latest Rendering Toolkit Information + FAQ

Michael_C_Intel1
Moderator
1,320 Views

Thanks for your interest in Rendering Toolkit software developer products. This sticky forum post is: status, frequently asked questions, troubleshooting, and key web references.

Comments are locked on this thread. After searching for your concern in preexisting forum posts, create a new forum thread for follow up. Thanks!

 

Status 25 May 2023

oneAPI release 2023.1.1 is here (May 2023 Out-Of-Cycle Release)

    • The 2023.1.1 is an out-of-cycle release that addresses Embree CMake issues described here. Component contents have not otherwise changed.
    • Full release notes
    • Discrete GPU support is available within Intel® Embree for the first time!
    • Pre 1.0 Intel® Open Path Guiding Library (Intel® Open PGL) has been added!
    • Lookout for the Rendering Toolkit online workshop recording from 20232505 to be posted soon with Tech.Decoded workshops.
    • Linux users: As needed see troubleshoot/workarounds for OSPRay dependencies if you see runtime issues.
    • Download the Base and Rendering Toolkits here.

Common Questions

  • Where can I see code samples?
    • Basic code samples for each library are added to the oneAPI samples repository. Walkthroughs to use these samples are available with Get Started Guides or the samples repository README.md documents.
      • The oneapi-cli tool browses the samples repository and can download samples.
      • Alternatively, advanced users can 'git clone' the repository.
    • Pre-compiled sample programs can be reviewed quickly from the /bin directories of each Render Kit component in the oneAPI distribution. Source code is available in library repositories or accessible by using the rkutil Toolkit component.
    • The DevCloud for oneAPI: Rendering Training Modules offer quick access to review, edit, rebuild, and execute codes with a web browser. No need to install anything.
    • Advanced code samples are available on library repositories. Rebuilds of libraries on your local machine will also build the samples by default.
  • Where can I see some case studies of component features?
    • The product portal is the best location to stay up to date on the latest and greatest with Rendering Toolkit. See "What Customers Are Saying" and "Intel oneAPI Rendering Toolkit in Action" sections of the portal.
    • Intel® ISPC component page
  • What does Intel® Implicit SPMD Program Compiler (Intel® ISPC) provide rendering toolkit?
    • ISPC compiles Single Program Multiple Data (SPMD) C programming language variant source code.
    • The SPMD extensions help get improved performance via the Single Instruction Multiple Data (SIMD) instruction set extensions available on Intel CPUs. The language format maps well to parallel compute applications, so Rendering Toolkit developers have used it to optimize toolkit libraries in-kind.
    • Client applications may not necessarily use ISPC with Rendering Toolkit libraries, however ISPC code paths are intended to be performance optimized for CPU. Observe that sample applications in the Intel Embree and Intel Open VKL cases demonstrate either an ISPC and/or a conventional C-scalar/C++ codepath.
    • Libraries are developed to run for generic x86_64 as well as Apple* M1 (ARM) devices. If you observe any portability issues, please report them either in this forum or on a component git repository issue page.
    • Documentation
  • What kinds of devices do Render Kit libraries target?
    • The goal: Target any Intel devices where these libraries can see performance gains.
    • Rendering Toolkit libraries scale with performance of recent Intel® Xeon® processors. Render Kit performance scales with multiple Intel Xeon processors within a node. Performance also scales on multiple Intel Xeon nodes via Intel® MPI.
    • Intel® Atom processors with x86_64 can also run Render Kit applications.
    • Bring up articles are typically written on desktop NUCs like Intel® NUC Kit NUC6i7KYK or a desktop with Intel® Core i9-12900K processor with Intel® Arc™ A770 GPU.
    • Rendering Toolkit libraries are developed to target systems back to SSE2/SSE4.2 feature hardware capability.
    • As of the 2023.2 release of Render Kit, Intel Embree now targets Intel® GPUs with Xe-HPG or Xe-HPC architectures.
  • What memory usage expectations should I have?
    • Memory usage is typically dependent upon the size of your scene geometry. The typical limiting factor for scene visualization is the system memory available.
    • In the OSPRay Studio interactive reference application: NUCs are fine for loading geometry like the Stanford Dragon in wavefront .obj format (tens of MB on disk), or for complex motor vehicle datasets with HDR textures (~4.5GB on disk)
    • Recent Notebook PC and NUC systems are good for initial development and exploration. NUCs as described above are often preconfigured with 16GB ram.
    • Rendering Toolkit libraries take advantage of all system memory available. Proof of concept applications under review by Intel developers may range up to hundreds of GBs of RAM.
  • What is rkcommon?
    • rkcommon is a support library for typical C++ objects useful in computer graphics. It was originally delivered as poart of the OSPRay project.
    • Typical 3D math operations on these containers are available.
    • Objects such as boxes, vec3/vec4’s, matrices, quarternions and more are available.
    • Tasking controls for delegating compute for multithreading are available.
    • Simple I/O access for images is available. For a powerful example... See rkcommon::utility::writePPM(…). A function to write image data for PPM (NetPBM) filetype viewing. Such facilities are used in some of the sample programs.
  • Where are library API manuals?
  • Where are the release notes?
    • Release notes are updated with every oneAPI release.
    • oneAPI Render Kit release components are validated together.
    • oneAPI releases may not coincide with all pushes to component github repositories. 
  • Are there any examples of geometry and imaging data formats, datasets, and third party libraries that are often used with Render Kit libraries?
  • Where can I see repositories for the libraries?
  • Where is the repository for Intel ISPC:
  • Are Render Kit technologies related to any Khronos standards or APIs?
    • The Khronos ANARI* and Intel® OSPRay experimental translation layer has been published.
    • Intel® Embree 4.x and higher uses SYCL* kernels to target GPU. Embree API calls are used within a SYCL* kernel.

 

Best Known Methods, Workarounds, and Troubleshoot

 

Getting Started Guide:

Launch the oneapi-cli tool with the -l c,cpp options to see the Intel® OpenVKL C sample in the C samples menu. The Getting Started Guides have yet to be updated. 

Windows*:

oneapi-cli.exe -l c,cpp

Linux*, MacOS*:

oneapi-cli -l c,cpp

The oneapi-cli tool is distributed as a default installed component with the Base Toolkit. No other components are required from Base Toolkit.

 

All platforms:

Application compile fails on static_assert when using the OSPRay C++ wrapper 

As of OSPRay 2.2.0, the OSPRay C++ wrapper API will need to see rkcommon type definitions for developer applications that use those types. static_assert checks on rkcommon type definitions will block compilation until type definitions are defined. Please consider usage of the preprocessor macro definition of OSPRAY_CPP_RKCOMMON_TYPES to activate the definitions from within Traits.h. Without this definition, a typical compile time error may look like:

 

/opt/intel/oneapi/ospray/2.2.0/include/ospray/ospray_cpp/ManagedObject.h:118:3:
error: static assertion failed: Only types corresponding to OSPDataType values can be set as parameters on OSPRay objects. NOTE: Math types (vec, box, linear, affine) are expected to come from rkcommon::math.
   static_assert(OPSPTypeFor<T>::value != OSP_UNKNOWN).

 

TBB linkage practices and TBB headers. Directory hierarchy help.

For your builds, the FindTBB.cmake (included with rkcommon) can be helped to find TBB with the additions of these variables at CMake configure time: TBB_ROOT and CMAKE_MODULE_PATH... Example: 

 

 

#TBB_ROOT allows FindTBB.cmake to locate headers and libraries

cmake .. -DTBB_ROOT=<TBB directory> -DCMAKE_MODULE_PATH=<FindTBB.cmake directory>

 

 

It is important to use the Rendering Toolkit validated version of TBB for every component library, as well as TBB versions that are validated. By default, oneAPI distributions will place TBB in the <oneapi directory>/tbb/latest folder. Please use

 

Environment scripts error on rkutil (setvars.bat/sh)

If you observe an rkUtil environment variable issue. Please disregard as of the date of this post rkUtil contains no binary search paths. The error may look like:

 

 

ERROR:  Could not find bin dir C:\Program Files (x86)\Intel\oneAPI\rkutil\latest\env\..\bin.  Please install Intel(R) oneAPI Rendering Toolkit rkUtil.

 

macOS*:

TBB dynamic runtime errors while using XCode*

Users may see issues in an XCode* IDE developer environment when setting up dynamic runtime search paths. Apple* System Integrity Protection may purge these paths.

Note: The above issue is critical when running Rendering Toolkit-based applications through interpreter/scripting systems (such as Python*) to launch processes.

 

Windows* OS:

Issues with navigating to paths in guide

Make sure to use quotes around paths with spaces when necessary in windows. Example:

 

REM OK:
call "C:\Program Files (x86)\Intel\oneAPI\setvars.bat"
REM Not ok!:
call C:\Program Files (x86)\Intel\oneAPI\setvars.bat

 

Pre-built sample application runtime errors

Base Toolkit users may have dynamic runtime issues when running Rendering Toolkit prebuilt applications. A typical error shows a popup dialog box indicating code execution cannot proceed because a dll was not found:

Michael_C_Intel1_0-1638479918916.png

 

The code execution cannot proceed because rkcommon.dll was not found. Reinstalling the program may fix this problem.

 

For an environment variable script mitigation, try these options when using Rendering Toolkit:

  • Start a new cmd shell environment.
  • Run the oneAPI environment variables script in your shell:
    • call "<oneapi_install_directory>\setvars.bat "
  • Try running your program.
  • If the environment scripts do not function in your environment, the necessary paths can be set manually for your cmd shell session. Required paths will vary depending on the application you wish to run, and your library install location (either precompiled or your own application). Append lacking search path by:
    • Running the path command in the shell to see the current path.
    • New users should append all paths. Otherwise, append per component paths as needed. Examples:
path C:\Program Files (x86)\Intel\oneAPI\ospray\latest\bin;%PATH%
path C:\Program Files (x86)\Intel\oneAPI\ospray_studio\latest\bin;%PATH%
path C:\Program Files (x86)\Intel\oneAPI\embree\latest\bin;%PATH%
path C:\Program Files (x86)\Intel\oneAPI\tbb\latest\redist\intel64\vc_mt;%PATH%
path C:\Program Files (x86)\Intel\oneAPI\openvkl\latest\bin;%PATH%
path C:\Program Files (x86)\Intel\oneAPI\oidn\latest\bin;%PATH%
path C:\Program Files (x86)\Intel\oneAPI\rkcommon\latest\bin;%PATH%
path C:\Program Files (x86)\Intel\oneAPI\ispc\latest\bin;%PATH%

 

 

Precompiled programs are built with delayed load of runtimes. If they fail on seemingly arbitrary module names, then try adding all of the paths above. Example:

 

C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional>ospTutorial
initialize OSPRay...#ospray: INITIALIZATION ERROR --> could not open module lib ospray_module_ispc: The specified module could not be found.


#ospray: INITIALIZATION ERROR --> could not open module lib ospray_module_ispc: The specified module could not be found.


C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional>path C:\Program Files (x86)\Intel\oneAPI\openvkl\latest\bin;%PATH%


C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional>ospTutorial
initialize OSPRay...#ospray: INITIALIZATION ERROR --> could not open module lib ospray_module_ispc: The specified module could not be found.


#ospray: INITIALIZATION ERROR --> could not open module lib ospray_module_ispc: The specified module could not be found.



C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional>path C:\Program Files (x86)\Intel\oneAPI\embree\latest\bin;%PATH%


C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional>ospTutorial
initialize OSPRay...done
setting up camera...done
setting up scene...done
world bounds: ({-1.000000, -1.000000, 0.300000}, {1.000000, 1.000000, 3.000000}


setting up renderer...rendering initial frame to firstFrame.ppm...fopen('firstFrame.ppm', 'wb') failed: 13done
rendering 10 accumulated frames to accumulatedFrame.ppm...fopen('accumulatedFrame.ppm', 'wb') failed: 13done


ospPick() center of screen --> [inst: 000002A139CB4610, model: 000002A139CB3380, prim: 1]
cleaning up objects...done

The path command or echo %PATH% should display the current search path for your reference.

Base toolkit users who wish to build and run Base Toolkit only programs:

  • Start a new shell environment.
  • Run the oneAPI setvars.bat script in your shell:
    • call "<oneapi_install_directory>\setvars.bat"

 

Intel OSPRay Studio build time issues on Windows* OS when using OpenEXR+OpenImageIO from vcpkg

  • Issue: Relying on automatic detection of vcpkg library may cause a build time error when building OSPRay Studio with OpenImageIO+OpenEXR. Build time support is enabled with the ENABLE_OPENIMAGEIO and ENABLE_EXR cmake build toggles.
  • Finding the OpenEXR library differs between vcpkg distribution vs. the OSPRay Studio build environment. Please manually set the OPENEXR_INCLUDE and OPENEXR_LIBRARY to the libraries within vcpkg. Use ccmake or cmake-gui.

Thanks,

 

-MichaelC

 

Labels (1)
0 Replies
Reply