microsoft/onnxruntime-extensions

Public

mirrored fromhttps://github.com/microsoft/onnxruntime-extensionsAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
cf7d14bc9c2a1a51de5c02a657d00a1943fbef55

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

includes/kernel_context.h

34lines · modecode

1#pragma once
2#include <optional>
3#include <numeric>
4#include <type_traits>
5
6namespace Ort {
7namespace Custom {
8
9// this is for the ORT custom op template magic
10class Arg {
11};
12
13class KernelContext : public Arg{
14public:
15 virtual void* AllocScratchBuffer(size_t size) = 0;
16 virtual void FreeScratchBuffer(void* p) = 0;
17 // TODO: threadpool?
18};
19
20#ifdef USE_CUDA
21class CUDAKernelContext : public KernelContext {
22public:
23 virtual void* AllocCudaScratchBuffer(size_t size) = 0;
24 virtual void FreeCudaScratchBuffer(void* p) = 0;
25 virtual void* GetCudaStream() const = 0;
26 virtual void* GetCublasHandle() const = 0;
27 virtual int GetCudaDeviceId() const = 0;
28};
29#endif
30
31// TODO: helper func to create context from global ORT env.
32
33}
34}