Major GPU Ray Trace Update, Enhanced Multithreading and RAM Support
Views: 1847
09 May 2022

Major GPU Ray Trace Update, Enhanced Multithreading and RAM Support

FRED version 21.42 is now available and represents a huge architectural change regarding FREDmpc that has allowed significant improvements to GPU based ray tracing and will also support future development. In addition several other improvements have been made.

FREDmpc Update

The GPU code in FREDmpc has been entirely rewritten in order to use the newest NVidia libraries. Not only is ray tracing faster as a result but the newer libraries also facilitate the development of further improvements, including new mpc features added in this release such as:

Double Precision Mode

Double precision allows GPU tracing to accurately trace rays over vastly greater length scales than single precision. 

As the above graphic illustrates, double precision permits an additional 10,000x length scale difference over single precision, so whereas a single precision would give accurate results for propagation length scales from say 10um to 10m, double precision extends this accuracy from 10um to 100km.

The use of double precision does attract a speed penalty compared with the new single precision trace speed, and so is only recommended for use where single precision cannot give the correct results. However, with the general speed up provided by the new libraries, double precision is approximately as fast as single precision in the former release, so in practice, double precision carries minimal time penalty compared to the prior release.

New options to enable double precision have been added into the new MPC specific top level menu and toolbar set as a mode toggle, and also feature as a flag in the MPC Trace Advanced dialog.

Added GPU support for Ideal Lenses and Diffractives

All ideal lens types and all diffraction grating and efficiency types are now supported in FREDmpc.

Added Child Ray Support & Ray Selection Filters

Child rays (e.g. split and scattered rays) are now available for analysis by detector entities, and therefore as a result ray filtering can now be applied to detector entities where the calculation timing is set to either “At Trace End” or “During Trace”. This new capability allows the analysis of subsets of rays within GPU traces that meet some filter criteria.

Additionally GPU ray counts are now reported in the usual places they would be for CPU traces.

Enhanced Multithreading and RAM Support 

FRED now allows users to access more computational resources, with support for up to 127 logical processors (Optimum and FREDmpc):

And also by delimiting the amount of RAM FRED can access, so that users can make use of all the RAM available, such as in the screenshot below where nearly 2TB of RAM is used to permit some 8 billion rays traced.

Other Updates

An option to “Compress ray buffer” has been added to the Advanced Raytrace dialog and the Ray Manipulation dialog. This option should be used in conjunction with deleted rays to free up RAM after the rays are deleted. By reducing the memory footprint of the ray set subsequent analysis can be speeded up.

A new color chart style has been added called “Turbo” which excels at rendering out additional levels of detail in false color analyses. The cross section of a linear distribution is shown in the central image below, Turbo (on the right) clearly renders out the linearity of the result.

CAD export dialog now supports the option to “Export Selected Entities” to export a subset of the model without needing to alter traceability.

The number of pixels that can be rendered for Detector Entities in the 3D viewer has been increased to 1024 x 1024.

The defaults FRED uses on new installations have been updated to be more convenient for new users. The OpenGL preferences have been updated to aid rendering speed, the Sentinel licensing engine is selected to install by default, and the license search strategy now looks for both license types (Sentinel and Safenet) by default.

Bug Fixes

Around 40 minor bug fixes are also included in this release - please see the formal release notes within FRED (Help… Release Notes) for more information.