Skip to content

Class rayx::MegaKernelTracer

template <typename AccTag>

ClassList > rayx > MegaKernelTracer

More...

  • #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

See 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]

inline explicit rayx::MegaKernelTracer::MegaKernelTracer (
    int deviceIndex
) 

function MegaKernelTracer [2/3]

rayx::MegaKernelTracer::MegaKernelTracer (
    const MegaKernelTracer &
) = delete

function MegaKernelTracer [3/3]

rayx::MegaKernelTracer::MegaKernelTracer (
    MegaKernelTracer &&
) = default

function operator=

MegaKernelTracer & rayx::MegaKernelTracer::operator= (
    const MegaKernelTracer &
) = delete

function operator=

MegaKernelTracer & rayx::MegaKernelTracer::operator= (
    MegaKernelTracer &&
) = default

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