# Jupyter Lab中的GPU仪表板

### 介绍

这是一个开源软件包，用于在交互式Jupyter环境中实时可视化NVIDIA GPU指标。 它是所有GPU用户监视系统资源的好方法，但对于RAPIDS（NVIDIA的GPU加速数据科学软件库的开源套件）的用户而言尤其有价值。

考虑到现代数据科学算法的计算强度，在许多情况下，GPU可以提供改变游戏规则的工作流加速。 为了获得最佳性能，底层软件有效利用系统资源至关重要。 尽管加速库（如cuDNN和RAPIDS）是专门为执行性能优化而设计的，但对于开发人员和最终用户而言，验证他们的软件是否确实按预期利用了GPU资源可能非常有用。 尽管可以使用诸如nvidia-smi之类的命令行工具来完成此任务，但许多专业数据科学家更喜欢使用交互式Jupyter笔记本进行日常模型和工作流开发。

如图1所示，NVDashboard使Jupyter笔记本电脑用户可以在他们用于开发的同一交互式环境中可视化系统硬件指标。支持的指标包括：

* GPU计算利用率
* GPU内存消耗
* PCIe吞吐量
* NVLink吞吐量

该软件包基于基于Python的仪表板服务器构建，该服务器利用Bokeh可视化库实时显示和更新图形。 另外一个Jupyter-Lab扩展将这些仪表板嵌入为交互式环境中的可移动窗口。 大多数GPU指标都是通过PyNVML收集的，PyNVML是组成NVIDIA Management Library（NVML）的包装的开源Python程序包。 因此，可以修改/扩展可用的仪表板，以显示可通过NVML访问的任何可查询的GPU指标。

### 软件包使用

软件包中包含的组件：

* **Bokeh 服务器**
* **Jupyter-Lab 扩展**

#### Jupyter-Lab 扩展

直接查询硬件指标的做法通常是验证有效运行时行为的最佳方式，对于交互式 Jupyter 笔记本用户来说尤其如此。 在这种情况下，开发过程往往是迭代的，不恰当的 GPU 使用会导致巨大的生产力损失。 如图 1 所示，可以让 Jupyter-Lab 用户在其代码旁边轻松可视化资源利用率。

#### **Bokeh 服务器**

虽然 Jupyter-Lab 扩展对于 iPython/基于笔记本的开发爱好者来说无疑是理想的，但其他 GPU 用户也可以使用独立的 Bokeh 服务器访问仪表板。这是通过运行以下命令完成的

### 实现细节

现有的包提供了许多有用的GPU资源仪表板。 但是，修改现有仪表板和修改现有仪表板是相当简单的

#### PyNVML 基础知识

#### 仪表板代码

#### Jupyter-Lab 扩展代码

{% content-ref url="../zhi-dian-mi-jin-brief" %}
[zhi-dian-mi-jin-brief](https://via-dean.gitbook.io/all/interdisciplinary-perspective-xue-ji-de-shi-dian/ya-tu-kua-ji/gui-dang/zhi-dian-mi-jin-brief)
{% endcontent-ref %}
