Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Michael_C_Intel1
Moderator
418 Views

Latest Rendering Toolkit Information + FAQ

Hello Intel® oneAPI Rendering Toolkit Users,

 

Thanks for your interest in Rendering Toolkit software developer products. This sticky forum post is high level status, overview questions, typical trouble shooting, and key web references.

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

 

Status 20210406:

oneAPI release 2021.2 is here (end of March 2021Q1)

  • With 2021.2 Updates:
    • Intel® OSPRay Studio v0.6.0 includes many major updates to the GUI… look out for glTF loading capabilities.
    • Intel® Open VKL 0.12.0 includes expanded support for multiple attributes and multiple attributes.
    • Full release notes
    • Pre-1.0 components continue to see significant feature and quality of life updates!
    • The Render Kit superbuild (rkUtil component) is updated release on release to build all components with each other and with appropriate revistions.
    • Feature exploration training via webbrowser is now available via the Intel® DevCloud. The first training is “Intel® OSPRay Essentials”.
  • Look for Rendering Toolkit announcements contemporaneously with International Super Computing 2021 (Digital Conference) June 24 - July 2.
  • Overview of oneAPI Rendering Toolkit benefits at SIGGRAPH 2020 (August 2020)
    • Have a look at some compelling case studies!

 

Common Questions:

    • Follow component library guidance on product pages or component git repositories.
  • Where can I see code samples?
    • Code samples are available on git repositories of each component. Rebuilds of libraries will default to also build the samples.
    • Pre-compiled sample programs can be reviewed quickly from the /bin directories of each renderkit component in the oneAPI distribution. Review the library source implementations for repositories.
    • 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.
  • Where can I see repositories for the libraries?
  • Do I need the oneAPI Base Toolkit or any other toolkits to use the Rendering Toolkit?
    • No. Intel® oneAPI DPC++/C++ Compiler as included with the base toolkit can be employed for developer applications that use Rendering Toolkit.
    • Rendering Toolkit libraries use oneTBB for tasking internally, so this component is installed with the oneAPI Render Kit distribution.
  • Where are library API manuals?
  • Where are the release notes?
    • Release notes are updated with every oneAPI release.
    • Sidebar: oneAPI releases may not coincide with all pushes to component repositories. oneAPI Render Kit release components are validated together.
  • 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 instruction set extensions available on Intel CPUs. The language format maps well to embarrassingly 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. 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.
    • Although Intel does not support Rendering Toolkit for non-Intel hardware, alternate code paths are developed to run for generic x86_64. If you observe any portability issues, please report them either in this forum or on a component git repository issue page.
  • 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 are developed to target systems back to SSE2/SSE4.2 feature hardware capability.
      • Bring up articles are typically written on desktop NUCs like Intel® NUC Kit NUC6i7KYK featuring Intel® Core processors.
      • 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.
    • Intel® OpenImageDenoise uses Intel® oneDNN for denoising, thus it is feasible for Intel OpenImageDenoise to target any Intel oneDNN supported devices.
  • What memory usage expectations should I have?
    • Memory usage is typically dependent upon the size of your scene geometry. The typical limiting factor is the system memory available.
    • Recent Notebook PC and NUC systems are good for initial development.  NUCs as described above are often preconfigured with 16GB ram.
      • 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 vehicle datasets with HDR textures (~4.5GB on disk)
    • Rendering Toolkit libraries take advantage of all system memory available. Proof of concept applications under review by Intel developers are may range up to hundreds of GBs.
    • Are there any examples of data formats, datasets, and third party libraries are often used in conjunction with Render Kit?

 

             

Best Known Methods, Workarounds, and Troubleshoot:

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.

As of Beta08 of the Rendering Toolkit, Rendering Toolkit libraries and applications are validated with TBB 2020 Update 3. TBB 2021 branch is also compatible. The precompiled executables are linked to TBB 2021 libraries. 

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 same version of TBB for every component library. By default, oneAPI distributions will place TBB in the <oneapi directory>/tbb/latest folder.

 

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.

 

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:

ospExamples_dll.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 "
  • Next, run the rkcommon vars.bat file:
    • cd "<oneapi_install_directory>\rkcommon\latest"
    • call env\vars.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%

 

 

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