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

Latest Rendering Toolkit Information + FAQ

Michael_C_Intel1
Moderator
2,063 Views

Thanks for your interest in Rendering Toolkit software developer products. This sticky forum post is: statusfrequently asked questionstroubleshooting, 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 8 Dec 2023

oneAPI release 2024.0 is here

    • Full release notes
    • Discrete GPU support is available within Intel® OSPRay 3.0 and Intel® Open VKL 2.0
    • OSPRay on GPU:
      • Support is at Beta Level. Some OSPRay features are work-in-progress.
      • OSPRay programs that parse command line parameters with ospInit(…) can try GPU support from the command line: --osp:load-modules=gpu --osp:device=gpu
      • Try an initial GPU sample program (using the above) from the oneAPI samples repository.
    • Open VKL on GPU:
      • Support is at Beta level. Some Open VKL features are a work-in-progress.
      • The development model is similar to developing for GPU with Intel Embree.
      • Try an initial GPU sample program (using the above) from the oneAPI samples repository.
    • Training content highlighting GPU for OSPRay, and also Open VKL, will be available soon via Tech.Decoded and Intel Developer cloud.
    • Intel® OSPRay uses Intel® Open Image Denoise 2.0. Denoising with OSPRay will use the Open Image Denoise capability for GPU if so configured.
    • Try the interactive workshop to get started with Rendering Toolkit  posted on Tech.Decoded. Originally recorded 20230525.
    • Listen to the webinar to learn about Intel® Embree for GPU posted on Tech.Decoded. Originally recorded 20230719.
    • To build and run GPU programs, use the Intel® oneAPI DPC++/C++ Compiler from the Base toolkit. oneAPI DPC++ Runtimes Libraries (SYCL runtime library) are included with the compiler in the toolkit.
    • 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. This tool comes with the Base Toolkit.
      • 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. In a shell, Run the setvars.sh/.bat script from the oneAPI install root, then try the programs.
    • Source code is available in library repositories. Advanced code samples are available on library repositories. Rebuilds of the libraries on your local machine will also build the samples by default.
    • Source code is available using the rkutil Toolkit component. It is a CMake script that downloads source and builds all component libraries and samples. rkUtil makes for a comprehensive local development sandbox most appropriate for deploying libraries in production.
    • Review, edit, rebuild, and execute codes with a web browser. Use the Intel® Developer Cloud (Overview / Sign in). Explore features and generate images quickly with a web browser IDE. No local development environment required. No download necessary.
    • On the sign page. At the page, navigate to ‘Training and Workshops’, then ‘Launch Jupyter Lab’. In the File Browser, navigate to /Training/RenderKit/ RenderKit_Learning_Path. Double click the Overview.ipynb notebook and follow the instructions to deploy and try the training.
  • Where can I see some case studies of component features?
  • 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.
    • 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. Client applications may not necessarily use ISPC with Rendering Toolkit libraries: ISPC code paths are intended to be performance optimized for CPU.
    • Libraries are developed to run for generic x86_64, x86_64 vector extensions,  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.
    • As of the 2024.0 release of Render Kit, Intel Embree, Intel OSPRay, Intel OpenVKL, and Intel Open Image Denoise target Intel® GPUs with Xe-HPG or Xe-HPC architectures.
    • 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.
    • Open Image Denoise 2.0.0 debuted compatibility with both Intel and non-Intel GPU devices. See the release notes for more information.
  • 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