Intel® oneAPI Rendering Toolkit
Get help with big data visualization that transforms data into easy-to-understand graphical formats.
Announcements
This community is designed for sharing of public information. Please do not share Intel or third-party confidential information here.
11 Discussions

Latest Rendering Toolkit Information + FAQ

Michael_C_Intel1
Moderator
968 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 19 May 2022

oneAPI release 2022.2 is here (Apr/May 2022 Release)

    • Full release notes
    • Intel® SPMD Program Compiler: ISPCRT has been added. ISPCRT is a C++ interface for Intel® SPMD Program Compiler programs. It allows for a C++ abstraction to execution of ISPC programs and facilities targeting GPU devices.

 

Common Questions

  • Where can I see code samples?
    • Basic code samples for each library are added to the oneAPI samples repository for 2022.1. 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.
    • 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 will default to also build the samples.
  • 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. 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 featuring Intel® Core processors.
    • Rendering Toolkit libraries are developed to target systems back to SSE2/SSE4.2 feature hardware capability.
    • 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 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.  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.
  • 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 releases may not coincide with all pushes to component repositories. oneAPI Render Kit release components are validated together.
  • 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.

 

Best Known Methods, Workarounds, and Troubleshoot

 

Getting Started Guide Errata:

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