NVIDIA® OptiX™ 4.0 Beta
A stable version of OptiX SDK 3.9.1 that supports Pascal GPUs is also available. Below are downloads for the latest OptiX SDK 4.0 beta release.
Release Notes NVIDIA® OptiX™ 4.0 beta (April 2016)
The OptiX 4.0 Beta is a complete re-implementation of the OptiX API. We’ve heard your feedback and have re-architected our implementation to better serve your needs. That means we’re laying the groundwork for better performance, better multi-GPU scaling, and better debugging and profiling. Version 4.0 maintains binary compatibility with your existing applications and provides the same easy to use API for which OptiX is known.
We expect an extended beta period and for this first beta release we want to hear your feedback. During this first beta, expect to find some slowdowns in compile time and runtime performance. Please send us your feedback on these issues, bugs, and questions. Please send us your feedback, bugs, and questions at OptiX beta feedback and we’ll get back to you.
End User License Agreement (EULA) Reminder
As of version 3.5, OptiX continues to be free to acquire and use within your own company or institution, and to include within applications you distribute but do not publicly sell, but commercial applications (those that are publicly sold as “packaged” software) now require a Commercial License to redistribute OptiX 3.5 and later.
Please e-mail: firstname.lastname@example.org if you are interested in becoming a Commercial OptiX Developer and we will supply you with all the details. In the meantime, any development done with this OptiX version will be compatible with OptiX Commercial.
OptiX support is available on NVIDIA's Developer Zone at: NVIDIA Developer OptiX forums
If you have any confidential concerns please send your issues directly to OptiX-Help@NVIDIA.com and we will do our best to address them. E-mailed questions found not to be confidential will often be redirected to the forum so the community can benefit from the answers.
System Requirements (for running binaries referencing OptiX)
- Graphics Hardware: CUDA capable devices of Compute Capability 3.0 (“Kepler”) or higher are supported on GeForce, Quadro, or Tesla NVIDIA products. Note that this is a change from OptiX 3.9, as Fermi GPUs are no longer supported
- Graphics Driver: A 361.42 or later NVIDIA display driver is required.
- Operating System: Windows 7/8/8.1/10 64-bit; Linux RHEL 4.8+ or Ubuntu 10.10+ - 64-bit (Note that this beta does not support Mac OSX)
Development Environment Requirements (for compiling with OptiX)
- CUDA Toolkit 4.0 – 7.5:
OptiX 4.0 has been built with CUDA 7.5, but any specified toolkit should work when compiling PTX for OptiX. If an application links against both the OptiX library and the CUDA runtime on Linux, it is recommended to use the same version of CUDA that was used to build OptiX.
OptiX supports running with NVIDIA Nsight but does not currently support kernel debugging. In addition, it is not recommended to compile PTX code using any -G (debug) flags to nvcc.
- C/C++ Compiler:
Visual Studio 2008, 2010, 2012, or 2013 is required on Windows systems. gcc 4.4-4.8 have been tested on Linux. See the CUDA Toolkit documentation for more information on supported compilers.
Changes in OptiX 4.0 beta
- OptiX 4.0 has been completely rewritten to use LLVM internally. This lays the groundwork for future enhancements, performance, and debugging and profiling tools.
- SM 2.X GPU support has been removed. This includes all GF1XX Fermi GPUs.
- Per-frame host overheads have been reduced in some cases.
- Support for Pascal architecture GPUs.
- Heterogeneous multi-GPU support. With OptiX 4.0, your applications can take advantage of multiple GPUs in a system even if they are not of the same architecture.
- rtBufferMapEx now implements all map modes.
- rtContextSetPrintBufferSize needs to be called before the first launch to take effect.
- rtAccelerationGet/SetData has no effect.
- Acceleration structure builder and traverser mappings have changed, refer to the programming guide.
- rtAccelerationSetTraverser is a no-op. OptiX now picks the traverser automatically.
- Stricter validation of user programs. Uninitialized variables in OptiX programs are not allowed, except float, int, uint, programID, and user types. Type checking is stricter. Writing to attributes outside of an rtPotentialIntersection/rtReportIntersection pair now causes error.
- Automatic paging of data from system memory has been removed.
- rtContextCompile is a no-op. OptiX automatically determines if a compile is necessary at launch and will result in fewer compiles than in 3.x.
- Cancelling long running launches is not yet implemented in this beta. This includes the functionality of rtContextSetTimeoutCallback and automatic TDR prevention.
- This beta release does not yet implement DirectX interop. Please contact us if you are interested in testing DirectX interop.
- The integer encoding of the OptiX version string now includes an extra digit for minor and bugfix versions.
- rtBufferSetPointer interface has been changed, refer to the programming guide.
- Refit and refine are not yet enabled on any Acceleration builder.
To view all available versions, please visit OptiX Downloads