Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Public Member Functions | List of all members
uni20::async::ICudaScheduler Class Referenceabstract

Scheduler interface for initial CudaTask admission. More...

#include <cuda_task.hpp>

Inheritance diagram for uni20::async::ICudaScheduler:
[legend]
Collaboration diagram for uni20::async::ICudaScheduler:
[legend]

Public Member Functions

virtual void schedule (CudaTask &&task)=0
 Submit a CUDA task without establishing device affinity.
 
virtual void schedule (CudaTask &&task, int device)=0
 Bind and submit a CUDA task for initial execution on a device.
 
 ~ICudaScheduler () override=default
 
- Public Member Functions inherited from uni20::async::IScheduler
virtual ~IScheduler ()=default
 Virtual destructor.
 

Detailed Description

Scheduler interface for initial CudaTask admission.

Virtual inheritance permits one scheduler object to implement both ordinary and CUDA admission with one unambiguous internal route.

Constructor & Destructor Documentation

◆ ~ICudaScheduler()

uni20::async::ICudaScheduler::~ICudaScheduler ( )
overridedefault

Member Function Documentation

◆ schedule() [1/2]

virtual void uni20::async::ICudaScheduler::schedule ( CudaTask &&  task)
pure virtual

Submit a CUDA task without establishing device affinity.

The scheduler routes the task through its default CUDA device until the task explicitly selects a device.

Parameters
taskCUDA task to admit.

Implemented in uni20::async::DebugCudaScheduler, and uni20::async::TbbCudaScheduler.

◆ schedule() [2/2]

virtual void uni20::async::ICudaScheduler::schedule ( CudaTask &&  task,
int  device 
)
pure virtual

Bind and submit a CUDA task for initial execution on a device.

Parameters
taskCUDA task to admit.
deviceCUDA runtime device ordinal.

Implemented in uni20::async::DebugCudaScheduler, and uni20::async::TbbCudaScheduler.


The documentation for this class was generated from the following file: