nndeploy C++ API  0.2.0
nndeploy C++ API
Public Member Functions | Protected Attributes | Friends | List of all members
nndeploy::device::Device Class Referenceabstract

设备抽象基类 More...

#include <device.h>

Inheritance diagram for nndeploy::device::Device:
[legend]
Collaboration diagram for nndeploy::device::Device:
[legend]

Public Member Functions

virtual void * allocate (const BufferDesc &desc)=0
 分配内存 More...
 
virtual void * allocate (size_t size)=0
 分配内存 More...
 
virtual void * allocatePinned (const BufferDesc &desc)
 分配锁页内存 More...
 
virtual void * allocatePinned (size_t size)
 分配锁页内存 More...
 
virtual base::Status bindThread ()
 绑定线程 More...
 
virtual base::Status copy (Buffer *src, Buffer *dst, Stream *stream=nullptr)=0
 缓冲区拷贝 More...
 
virtual base::Status copy (void *src, void *dst, size_t size, Stream *stream=nullptr)=0
 内存拷贝 More...
 
virtual EventcreateEvent ()
 创建事件 More...
 
virtual base::Status createEvents (Event **events, size_t count)
 批量创建事件 More...
 
virtual StreamcreateStream ()
 创建流 More...
 
virtual StreamcreateStream (void *stream)
 从现有流创建流对象 More...
 
virtual void deallocate (void *ptr)=0
 释放内存 More...
 
virtual void deallocatePinned (void *ptr)
 释放锁页内存 More...
 
virtual base::Status deinit ()=0
 反初始化设备 More...
 
virtual base::Status destroyEvent (Event *event)
 销毁事件 More...
 
virtual base::Status destroyEvents (Event **events, size_t count)
 批量销毁事件 More...
 
virtual base::Status destroyStream (Stream *stream)
 销毁流 More...
 
 Device (base::DeviceType device_type, std::string library_path="")
 构造函数 More...
 
virtual base::Status download (Buffer *src, Buffer *dst, Stream *stream=nullptr)=0
 缓冲区下载 More...
 
virtual base::Status download (void *src, void *dst, size_t size, Stream *stream=nullptr)=0
 从设备下载数据到主机 More...
 
virtual void * getContext ()
 获取设备上下文 More...
 
virtual base::DataFormat getDataFormatByShape (const base::IntVector &shape)
 根据形状获取数据格式 More...
 
base::DeviceType getDeviceType () const
 获取设备类型 More...
 
virtual base::Status init ()=0
 初始化设备 More...
 
virtual BufferDesc toBufferDesc (const TensorDesc &desc, const base::IntVector &config)=0
 转换为缓冲区描述符 More...
 
virtual base::Status upload (Buffer *src, Buffer *dst, Stream *stream=nullptr)=0
 缓冲区上传 More...
 
virtual base::Status upload (void *src, void *dst, size_t size, Stream *stream=nullptr)=0
 从主机上传数据到设备 More...
 
virtual ~Device ()
 析构函数 More...
 
- Public Member Functions inherited from nndeploy::base::NonCopyable
 NonCopyable ()=default
 
 NonCopyable (const NonCopyable &)=delete
 
 NonCopyable (NonCopyable &&)=delete
 
NonCopyableoperator= (const NonCopyable &)=delete
 
NonCopyableoperator= (NonCopyable &&)=delete
 

Protected Attributes

base::DeviceType device_type_
 设备类型 More...
 

Friends

class Architecture
 

Detailed Description

设备抽象基类

定义了设备的基本接口,包括内存管理、数据传输、流和事件管理等功能

Definition at line 155 of file device.h.

Constructor & Destructor Documentation

◆ Device()

nndeploy::device::Device::Device ( base::DeviceType  device_type,
std::string  library_path = "" 
)
inline

构造函数

Parameters
device_type设备类型
library_path库文件路径,默认为空

Definition at line 358 of file device.h.

◆ ~Device()

virtual nndeploy::device::Device::~Device ( )
inlinevirtual

析构函数

Definition at line 364 of file device.h.

Member Function Documentation

◆ allocate() [1/2]

virtual void* nndeploy::device::Device::allocate ( const BufferDesc desc)
pure virtual

分配内存

Parameters
desc缓冲区描述符
Returns
void* 分配的内存指针

◆ allocate() [2/2]

virtual void* nndeploy::device::Device::allocate ( size_t  size)
pure virtual

分配内存

Parameters
size内存大小(字节)
Returns
void* 分配的内存指针

◆ allocatePinned() [1/2]

virtual void* nndeploy::device::Device::allocatePinned ( const BufferDesc desc)
virtual

分配锁页内存

Parameters
desc缓冲区描述符
Returns
void* 分配的锁页内存指针

◆ allocatePinned() [2/2]

virtual void* nndeploy::device::Device::allocatePinned ( size_t  size)
virtual

分配锁页内存

Parameters
size内存大小(字节)
Returns
void* 分配的锁页内存指针

◆ bindThread()

virtual base::Status nndeploy::device::Device::bindThread ( )
virtual

绑定线程

Returns
base::Status 绑定结果状态

◆ copy() [1/2]

virtual base::Status nndeploy::device::Device::copy ( Buffer src,
Buffer dst,
Stream stream = nullptr 
)
pure virtual

缓冲区拷贝

Parameters
src源缓冲区
dst目标缓冲区
stream执行流,默认为nullptr
Returns
base::Status 拷贝结果状态

◆ copy() [2/2]

virtual base::Status nndeploy::device::Device::copy ( void *  src,
void *  dst,
size_t  size,
Stream stream = nullptr 
)
pure virtual

内存拷贝

Parameters
src源内存指针
dst目标内存指针
size拷贝大小(字节)
stream执行流,默认为nullptr
Returns
base::Status 拷贝结果状态

◆ createEvent()

virtual Event* nndeploy::device::Device::createEvent ( )
virtual

创建事件

Returns
Event* 事件指针

◆ createEvents()

virtual base::Status nndeploy::device::Device::createEvents ( Event **  events,
size_t  count 
)
virtual

批量创建事件

Parameters
events事件指针数组
count事件数量
Returns
base::Status 创建结果状态

◆ createStream() [1/2]

virtual Stream* nndeploy::device::Device::createStream ( )
virtual

创建流

Returns
Stream* 流指针

◆ createStream() [2/2]

virtual Stream* nndeploy::device::Device::createStream ( void *  stream)
virtual

从现有流创建流对象

Parameters
stream原生流指针
Returns
Stream* 流指针

◆ deallocate()

virtual void nndeploy::device::Device::deallocate ( void *  ptr)
pure virtual

释放内存

Parameters
ptr要释放的内存指针

◆ deallocatePinned()

virtual void nndeploy::device::Device::deallocatePinned ( void *  ptr)
virtual

释放锁页内存

Parameters
ptr要释放的锁页内存指针

◆ deinit()

virtual base::Status nndeploy::device::Device::deinit ( )
pure virtual

反初始化设备

Returns
base::Status 反初始化结果状态

◆ destroyEvent()

virtual base::Status nndeploy::device::Device::destroyEvent ( Event event)
virtual

销毁事件

Parameters
event要销毁的事件
Returns
base::Status 销毁结果状态

◆ destroyEvents()

virtual base::Status nndeploy::device::Device::destroyEvents ( Event **  events,
size_t  count 
)
virtual

批量销毁事件

Parameters
events事件指针数组
count事件数量
Returns
base::Status 销毁结果状态

◆ destroyStream()

virtual base::Status nndeploy::device::Device::destroyStream ( Stream stream)
virtual

销毁流

Parameters
stream要销毁的流
Returns
base::Status 销毁结果状态

◆ download() [1/2]

virtual base::Status nndeploy::device::Device::download ( Buffer src,
Buffer dst,
Stream stream = nullptr 
)
pure virtual

缓冲区下载

Parameters
src源缓冲区
dst目标缓冲区
stream执行流,默认为nullptr
Returns
base::Status 下载结果状态

◆ download() [2/2]

virtual base::Status nndeploy::device::Device::download ( void *  src,
void *  dst,
size_t  size,
Stream stream = nullptr 
)
pure virtual

从设备下载数据到主机

Parameters
src设备内存指针
dst主机内存指针
size传输大小(字节)
stream执行流,默认为nullptr
Returns
base::Status 下载结果状态

◆ getContext()

virtual void* nndeploy::device::Device::getContext ( )
virtual

获取设备上下文

Returns
void* 设备上下文指针

◆ getDataFormatByShape()

virtual base::DataFormat nndeploy::device::Device::getDataFormatByShape ( const base::IntVector shape)
virtual

根据形状获取数据格式

Parameters
shape张量形状
Returns
base::DataFormat 数据格式

◆ getDeviceType()

base::DeviceType nndeploy::device::Device::getDeviceType ( ) const

获取设备类型

Returns
base::DeviceType 设备类型

◆ init()

virtual base::Status nndeploy::device::Device::init ( )
pure virtual

初始化设备

Returns
base::Status 初始化结果状态

◆ toBufferDesc()

virtual BufferDesc nndeploy::device::Device::toBufferDesc ( const TensorDesc desc,
const base::IntVector config 
)
pure virtual

转换为缓冲区描述符

Parameters
desc张量描述符
config配置参数
Returns
BufferDesc 缓冲区描述符

◆ upload() [1/2]

virtual base::Status nndeploy::device::Device::upload ( Buffer src,
Buffer dst,
Stream stream = nullptr 
)
pure virtual

缓冲区上传

Parameters
src源缓冲区
dst目标缓冲区
stream执行流,默认为nullptr
Returns
base::Status 上传结果状态

◆ upload() [2/2]

virtual base::Status nndeploy::device::Device::upload ( void *  src,
void *  dst,
size_t  size,
Stream stream = nullptr 
)
pure virtual

从主机上传数据到设备

Parameters
src主机内存指针
dst设备内存指针
size传输大小(字节)
stream执行流,默认为nullptr
Returns
base::Status 上传结果状态

Friends And Related Function Documentation

◆ Architecture

friend class Architecture
friend

Definition at line 156 of file device.h.

Member Data Documentation

◆ device_type_

base::DeviceType nndeploy::device::Device::device_type_
protected

设备类型

Definition at line 379 of file device.h.


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