当前位置: 首页 > 网络应用技术

TensorFlow GPU设置和视频内存设置

时间:2023-03-06 02:29:21 网络应用技术

  我本来会在TensorFlow中引入通用模块TF.Config,如何合理地分配图形卡资源并设置视频内存使用策略。

  指定当前程序使用的GPU

  很多时候场景是:实验室/公司研究小组中有许多学生/研究人员需要使用多个GPU工作站,默认情况下,TensorFlow将使用他们可以使用的所有GPU。在此时间序列。

  首先,通过tf.config.expermentim.list_physical_devices,我们可以在当前主机上获取某些类型的计算设备(例如GPU或CPU)的列表,例如,使用4 GPU和CPU上运行以下代码,并带有4 GPU和CPU,4 GPU和CPU。

  输出:

  可以看出,工作站有4个GPU:GPU:0,GPU:1,GPU:2。GPU:3和A CPU CPU:0.0。当前程序(当前程序仅使用您自己的设备,当前程序将不会使用无形设备)。例如,如果我们需要限制上述4卡机器中的当前程序,则程序仅使用两张图形卡,较低的出价为0和1(GPU:0和GPU:1),您可以使用以下代码:

  使用环境变量的提示CUDA_VISIBLE_DEVICES还可以控制程序使用的GPU。确定发现四个卡上的图形卡,图形卡2,3 idle,linux终端输入:

  或添加到代码

  您只能在图形卡2,3上指定程序。

  设置内存和内存使用策略

  默认情况下,TensorFlow将使用几乎所有可用的内存来避免由Macaroshilation造成的性能损失。但是,TensorFlow提供两种视频内存使用策略,使我们能够更灵活地控制程序的视频记忆:仅适用于内存:需要时(过程最初运行);

  限制内存固定大小的消耗(如果超出错误,则程序将不会超过有限的内存大小)。

  您可以将gpu的视频内存使用策略设置为“仅在需要时申请存储空间”,tf.config.experental.set_memory_growth。以下代码设置了所有GPU,以便在需要时申请存储空间:

  ),:,,,

  提示即tensorflow 1.x的图形执行可以在实例化新会话时将其传递到tf.compat.configphoto类中。特定方法是实例tf.configproto类,设置参数,并在创建tf.compat.v1时指定配置参数。

  以下代码集张紧Flow固定的GPU视频内存使用PER_PROCESS_GPU_MEMORY_FRACTION选项:TensorFlow固定消耗了GPU视频内存的40%:

  单GPU仿真多GPU环境

  当我们的本地开发环境仅是一个GPU时,但是当我们需要编写一个多GPU程序来在工作站上执行培训任务时,TensorFlow为我们提供了一个方便的功能,使我们能够在本地开发环境中建立多个模拟GPU。结果,多GPU程序调试变得更加方便。以下代码根据物理GPU GPU:0建立了两个使用2GB的虚拟GPU。

  我们将上述代码添加到截言时,当输出设备的数量数量时,该程序将输出:

  设备数量:2