Class rayx::MegaKernelTracer¶
template <typename AccTag>
ClassList > rayx > MegaKernelTracer
#include <MegaKernelTracer.h>
Inherits the following classes: rayx::DeviceTracer
Public Functions¶
| Type | Name |
|---|---|
| MegaKernelTracer (int deviceIndex) |
|
| MegaKernelTracer (const MegaKernelTracer &) = delete |
|
| MegaKernelTracer (MegaKernelTracer &&) = default |
|
| MegaKernelTracer & | operator= (const MegaKernelTracer &) = delete |
| MegaKernelTracer & | operator= (MegaKernelTracer &&) = default |
| virtual Rays | trace (const Group & beamline, Sequential sequential, const ObjectIndexMask & objectRecordMask, const RayAttrMask attrRecordMask, const int maxEventsElements, const int maxBatchSize) override |
Public Functions inherited from rayx::DeviceTracer¶
| Type | Name |
|---|---|
| virtual Rays | trace (const Group & beamline, Sequential sequential, const ObjectIndexMask & objectRecordMask, const RayAttrMask attrRecordMask, const int maxEvents, const int maxBatchSize) = 0 |
| virtual | ~DeviceTracer () = default |
Detailed Description¶
The MegaKernelTracer class implements a ray tracer using a mega-kernel strategy.
This tracer processes rays in batches as they propagate through a beamline. It generates rays from source definitions, traces them through optical elements, and records interactions according to configurable event masks.
Key features: * Supports both sequential and non-sequential ray tracing modes. * Uses Alpaka to enable parallel execution across multiple backends (CPU, GPU, etc.). * Manages critical resources such as ray buffers, event buffers, and material data, ensuring optimized memory usage and efficient host–device data transfers.
Workflow: * Generate rays from sources. * Execute the mega-kernel tracing function. * Compact recorded events to optimize memory transfers. * Transfer compacted recorded events back to the host. * Aggregate results from all batches into a final Rays object for output.
Public Functions Documentation¶
function MegaKernelTracer [1/3]¶
function MegaKernelTracer [2/3]¶
function MegaKernelTracer [3/3]¶
function operator=¶
function operator=¶
function trace¶
inline virtual Rays rayx::MegaKernelTracer::trace (
const Group & beamline,
Sequential sequential,
const ObjectIndexMask & objectRecordMask,
const RayAttrMask attrRecordMask,
const int maxEventsElements,
const int maxBatchSize
) override
Implements rayx::DeviceTracer::trace
The documentation for this class was generated from the following file Intern/rayx-core/src/Tracer/MegaKernelTracer.h