- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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 14 Mar 2024
oneAPI release 2024.1 is here
- Full release notes
- Training content highlighting GPU and CPU for OSPRay, Open VKL, Embree, Open Image Denoise, and OSPRay Studio is available via Intel Developer Cloud. Look out for overview webpages of powerful training experiences for experienced and new users to get started quickly!
- Discrete GPU support is available within Intel® OSPRay 3.x and Intel® Open VKL 2.x
- OSPRay on GPU:
- 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:
- 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.
- Intel® OSPRay uses Intel® Open Image Denoise 2.x. 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
- What is Rendering Toolkit?
- The Intel® oneAPI Rendering Toolkit (Render Kit) is a set of powerful libraries for high-fidelity rendering and visualization applications. It includes:
- Intel® Embree
- Intel® Open Image Denoise
- Intel® Open Volume Kernel Library (Intel® Open VKL)
- Intel® Open Path Guiding Library (Intel® Open PGL)
- Intel® OSPRay
- Intel® OSPRay Studio
- Intel oneAPI Rendering Toolkit Utilities (rkUtil)
- Intel® Implicit SPMD Program Compiler (Intel ISPC)
- Render Kit components distributed elsewhere:
- See the product portal for more information.
- How do I get the Render Kit?
- 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. Review, edit, rebuild, and execute codes with a web browser.
- 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 toolkit through curated training.
- Developer Cloud is a useful proving ground for hardware you may be considering for purchase.
- Download and install the oneAPI distribution of Render Kit from the Intel website.
- Access Render Kit pre-deployed on the Intel® Developer Cloud (Overview / Sign in)
- Linux* OS package managers: instructions.
- Use the Render Kit rkUtil superbuild CMake* script to acquire tools and build a complete development sandbox environment.
- Advanced users: See Github* distributions
- Do I need the oneAPI Base Toolkit or any other toolkits to use the Rendering Toolkit?
- The Render Kit getting started guides use the samples browser from Base Toolkit. Run the oneapi-cli browser with the -l c,cpp toggle to see all c and cpp samples: 'oneapi-cli -l c,cpp'.
- Linux* OS repository name is: intel-oneapi-dev-utilities
- The libraries as built for the oneAPI distribution depend on runtimes included with the base toolkit (
- For discrete GPU support, the Intel® oneAPI DPC++ compiler from the base toolkit is needed.
- The Base Toolkit dev-utilities is needed for quickly trying samples.
- Rendering Toolkit libraries use oneTBB for tasking. oneTBB is distributed within both the Base Toolkit and the Rendering Toolkit.
- How do I get started with the Render Kit?
- 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. Review, edit, rebuild, and execute codes with a web browser.
- 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.
- Intel OSPRay Essentials
- Deploy the oneAPI Render Kit distribution. Build introductory programs. Run included GUI/interactive programs. Lastly, deploy the libraries and sample programs from source code:
- Intel® OSPRay Repository
- Intel® Embree Repository
- Intel® OpenVKL Repository
- Intel® Open Image Denoise Repository
- Intel® OSPRay Studio Repository
- Intel® Open PGL Repository
- An Intel® Open PGL product page is pending as of v0.5.0.
- Web browser:
- Getting Started with Local Install:
- Advanced users: Follow component library guidance on product pages or component git repositories.
- Where can I see code samples?
- 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.
- 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.
- 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?
- OSPRay.org
- Embree.org
- Openvkl.org
- Openimagedenoise.org
- The new pre-1.0 Intel® Open PGL component web presence is pending. See the github repository.
- Each library also has its own ‘.org’ component library page:
- 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.
- 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?
- OSPRay.org/documentation.html
- Embree.org/api.html
- Openvkl.org/documentation.html
- Openimagedenoise.org/documentation.html
- 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?
- glTF* from Khronos Group
- Wavefront* .OBJ/.MTL from Wavefront Technologies
- HDR textures (OpenEXR with OpenImageIO)
- Legacy Textures (.png/.jpg/.tif/.bmp)
- .PFM for output images
- Stanford 3D Scanning Repository
- Blender from Blender Foundation
- USD View
- vcpkg (Microsoft maintained library system for Visual Studio* toolchains)
- Where can I see repositories for the libraries?
- Intel® OSPRay Repository
- Intel® Embree Repository
- Intel® OpenVKL Repository
- Intel® Open PGL Repository
- Intel® Open Image Denoise Repository
- Intel® OSPRay Studio Repository
- 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.
- Please see the XCode* running the executable article as provided with Base Toolkit guidance for mitigation help.
- Apple System Integrity Protection Guide
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:
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
Link Copied
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page