Device类定义在tensorflow/core/common_runtime/device.h中,主要定义了设备设备属性、设备名称、设备管理器等成员变量,以及相关的成员函数。Device类继承DeviceBase类,DeviceBase类定义在tensorflow/core/framework/device_base.h中,DeviceBase是一个抽象类,主要定义系统环境对象、CPU线程池、GPU设备信息等底层信息。Device类在实际应用中还派生多种具体细化的子类,例如LocalDevice,RemoteDevice等。
DeviceBase类:
class DeviceBase {
public:
explicit DeviceBase(Env* env) : env_(env) {}//初始化Env类型指针env
virtual ~DeviceBase();//虚析构函数
Env* env() const { return env_; }//获取env_接口
//如果在OPs的计算中要求记录引用到临时变量,直到op完成,则设置为true
virtual bool RequiresRecordingAccessedTensors() const { return false; }
//cpu线程池结构体,内部定义的辅助变量,目测是处理非计算任务的线程池
struct CpuWorkerThreads {
int num_threads = 0;
本文深入探讨TensorFlow中的Device类,它在tensorflow/core/common_runtime/device.h中定义,包含设备属性、名称和管理器。Device继承自抽象类DeviceBase,后者存储底层设备信息如设备名、类型,并定义了设备操作接口。DeviceBase中,CpuWorkerThreads代表CPU线程池,而GpuDeviceInfo封装GPU设备信息。Device类提供了统一接口,尤其是Compute函数,用于执行OpKernel操作。
订阅专栏 解锁全文
411

被折叠的 条评论
为什么被折叠?



