Device类实例化采用工厂模式进行,由于Device类有很多子类,所以DeviceFactory也派生出对应设备的工厂类( ThreadPoolDeviceFactory,GPUCompatibleCPUDeviceFactory,dengBaseGPUDeviceFactory,XlaCpuDeviceFactory,XlaGpuDeviceFactory等 )。
//设备工厂抽象类,定义了几个静态变量和,虚函数接口
class DeviceFactory {
public:
virtual ~DeviceFactory() {}//虚析构函数
//注册设备工厂,即将指定类型工厂按照优先级添加到一个全局静态变量map中
static void Register(const string& device_type, DeviceFactory* factory,
int priority);
static DeviceFactory* GetFactory(const string& device_type);
// CPU is are added first.
//输入一个设备指针,创建设备
static Status AddDevices(const SessionOptions& options,
const string& name_prefix,
本文深入探讨了TensorFlow中Device类的工厂模式实现,包括ThreadPoolDeviceFactory、GPUCompatibleCPUDeviceFactory等,详细解析了DeviceFactory如何维护全局设备工厂列表,以及DeviceFactory的AddDevices方法和CreateDevices过程。同时,介绍了ThreadPoolDevice和GPUDeviceFactory的创建过程。
订阅专栏 解锁全文
411

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



