Apollo 11.0
自动驾驶开放平台
plugin.h
浏览该文件的文档.
1/******************************************************************************
2 * Copyright 2022 The Apollo Authors. All Rights Reserved.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *
16 *****************************************************************************/
17
18#pragma once
19
20#include <vector>
21
22#define DEPRECATED
23
24class Dims {
25 public:
26 static const int32_t MAX_DIMS = 8;
27 int32_t nbDims;
28 int32_t d[MAX_DIMS];
29};
30
31class Dims4 : public Dims {
32 public:
34 nbDims = 4;
35 d[0] = d[1] = d[2] = d[3] = 0;
36 }
37 Dims4(int32_t d0, int32_t d1, int32_t d2, int32_t d3) {
38 nbDims = 4;
39 d[0] = d0;
40 d[1] = d1;
41 d[2] = d2;
42 d[3] = d3;
43 }
44};
45
46class IPlugin {
47 public:
48 virtual int32_t getNbOutputs() const = 0;
49 virtual Dims getOutputDimensions(int32_t index, const Dims* inputs,
50 int32_t nbInputDims) = 0;
51 virtual void configure(const Dims* inputDims, int32_t nbInputs,
52 const Dims* outputDims, int32_t nbOutputs,
53 int32_t maxBatchSize) = 0;
54 virtual int32_t initialize() = 0;
55 virtual void terminate() = 0;
56 virtual size_t getWorkspaceSize(int32_t maxBatchSize) const = 0;
57 virtual int32_t enqueue(int32_t batchSize, const void* const* inputs,
58 void** outputs, void* workspace,
59 cudaStream_t stream) = 0;
60 virtual size_t getSerializationSize() = 0;
61 virtual void serialize(void* buffer) = 0;
62 virtual ~IPlugin() {}
63};
Definition plugin.h:31
Dims4(int32_t d0, int32_t d1, int32_t d2, int32_t d3)
Definition plugin.h:37
Dims4()
Definition plugin.h:33
Definition plugin.h:24
static const int32_t MAX_DIMS
Definition plugin.h:26
int32_t d[MAX_DIMS]
Definition plugin.h:28
int32_t nbDims
Definition plugin.h:27
virtual void terminate()=0
virtual void configure(const Dims *inputDims, int32_t nbInputs, const Dims *outputDims, int32_t nbOutputs, int32_t maxBatchSize)=0
virtual void serialize(void *buffer)=0
virtual int32_t getNbOutputs() const =0
virtual ~IPlugin()
Definition plugin.h:62
virtual size_t getSerializationSize()=0
virtual size_t getWorkspaceSize(int32_t maxBatchSize) const =0
virtual int32_t initialize()=0
virtual int32_t enqueue(int32_t batchSize, const void *const *inputs, void **outputs, void *workspace, cudaStream_t stream)=0
virtual Dims getOutputDimensions(int32_t index, const Dims *inputs, int32_t nbInputDims)=0