# `dcustat`
一个能够简洁的显示海光 DCU 设备状态的命令行工具;
之前使用GPU时习惯了使用工具 [`gpustat`](https://github.com/wookayin/gpustat) 查看GPU状态,使用海光的 DCU 设备之后发现并没有类似的工具,于是仿照 [`gpustat`](https://github.com/wookayin/gpustat) 自己写了一个;
显示效果如下图:
<div align=center><img src="./docs/dcustat_light.png" width=50% alt="dcustat png" /></div>
## 依赖说明
python版本要求:`python>=3.8`;
该工具的底层是调用的命令 `rocm-smi`,所以在使用该工具前需要确保 DCU 的固件和驱动都正常安装。
## 安装说明
```
pip install dcustat
```
## 使用说明
使用如下命令单次获取当前 dcu 设备信息:
```shell
dcustat
```
使用如下命令动态刷新当前 dcu 设备信息,默认每2秒刷新一次:
```
dcustat --watch
```
可选参数如下:
```
usage: dcustat [-h] [-i [INTERVAL]] [--light] [--debug] [-v]
optional arguments:
-h, --help show this help message and exit
-i [INTERVAL], --interval [INTERVAL], --watch [INTERVAL]
动态刷新模式;INTERVAL为刷新间隔,单位:秒;默认每2秒刷新一次;
--light 使用较亮的模式显示,如果显示器渲染出来的结果较暗,可以打开该参数;
--debug Debug模式时允许在程序出错的情况下打印更多的调试信息;
-v, --version show program's version number and exit
```
### 参数 --light 说明
有的显示器渲染结果中部分指标比较暗,如下图左侧所示。此时可以添加上 --light 参数,所有的结果都会以更亮的形式进行显示,如下图右侧所示。
```
dcustat --watch --light
```
|默认|加--light参数|
|---|---|
|<img src="./docs/dcustat_dark.png" width="100%" align=center />|<img src="./docs/dcustat_light.png" width="100%" align=center />|
## 显示内容说明
```
sxcs-k8s-master-01 Mon Aug 7 17:35:53 2023
ID 温度, 风扇, AvgPwr / PwrCap, 显存, Core
[0] 43.0°C, 0.0%, 20.0W / 450.0W, 0.0%, 0.0%
[1] 43.0°C, 0.0%, 20.0W / 450.0W, 0.0%, 0.0%
[2] 43.0°C, 0.0%, 20.0W / 450.0W, 0.0%, 0.0%
[3] 43.0°C, 0.0%, 20.0W / 450.0W, 0.0%, 0.0%
```
* header:第1行为header,展示的信息从左到右依次为机器名称、当前时间;
* title:第2行为title,title是对后面展示的信息的各字段的说明:
* `ID` 列是显卡的id;
* `温度` 列是显卡的当前温度;
* `风扇` 列是显卡风扇的当前转速;
* `AvgPwr` 列是平均功率;
* `PwrCap` 列是显卡的功率上限;
* `显存` 列是当前显存的使用率;
* `Core` 列是当前计算资源的使用率。
## Reference
本项目的灵感、排版展示、以及代码的整体结构都是源自 [`gpustat`](https://github.com/wookayin/gpustat),本项目只是将其工作适配到了海光 DCU 设备上;
## License
[MIT License](./LICENSE)
Raw data
{
"_id": null,
"home_page": "https://github.com/wmc1992/dcustat",
"name": "dcustat",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "dcu monitoring dcustat",
"author": "wmc1992",
"author_email": "m18810541081@163.com",
"download_url": "",
"platform": null,
"description": "# `dcustat`\n\n\u4e00\u4e2a\u80fd\u591f\u7b80\u6d01\u7684\u663e\u793a\u6d77\u5149 DCU \u8bbe\u5907\u72b6\u6001\u7684\u547d\u4ee4\u884c\u5de5\u5177\uff1b\n\n\u4e4b\u524d\u4f7f\u7528GPU\u65f6\u4e60\u60ef\u4e86\u4f7f\u7528\u5de5\u5177 [`gpustat`](https://github.com/wookayin/gpustat) \u67e5\u770bGPU\u72b6\u6001\uff0c\u4f7f\u7528\u6d77\u5149\u7684 DCU \u8bbe\u5907\u4e4b\u540e\u53d1\u73b0\u5e76\u6ca1\u6709\u7c7b\u4f3c\u7684\u5de5\u5177\uff0c\u4e8e\u662f\u4eff\u7167 [`gpustat`](https://github.com/wookayin/gpustat) \u81ea\u5df1\u5199\u4e86\u4e00\u4e2a\uff1b\n\u663e\u793a\u6548\u679c\u5982\u4e0b\u56fe\uff1a\n\n<div align=center><img src=\"./docs/dcustat_light.png\" width=50% alt=\"dcustat png\" /></div>\n\n## \u4f9d\u8d56\u8bf4\u660e\n\npython\u7248\u672c\u8981\u6c42\uff1a`python>=3.8`\uff1b\n\n\u8be5\u5de5\u5177\u7684\u5e95\u5c42\u662f\u8c03\u7528\u7684\u547d\u4ee4 `rocm-smi`\uff0c\u6240\u4ee5\u5728\u4f7f\u7528\u8be5\u5de5\u5177\u524d\u9700\u8981\u786e\u4fdd DCU \u7684\u56fa\u4ef6\u548c\u9a71\u52a8\u90fd\u6b63\u5e38\u5b89\u88c5\u3002\n\n## \u5b89\u88c5\u8bf4\u660e\n\n```\npip install dcustat\n```\n\n## \u4f7f\u7528\u8bf4\u660e\n\n\u4f7f\u7528\u5982\u4e0b\u547d\u4ee4\u5355\u6b21\u83b7\u53d6\u5f53\u524d dcu \u8bbe\u5907\u4fe1\u606f\uff1a\n\n```shell\ndcustat\n```\n\n\u4f7f\u7528\u5982\u4e0b\u547d\u4ee4\u52a8\u6001\u5237\u65b0\u5f53\u524d dcu \u8bbe\u5907\u4fe1\u606f\uff0c\u9ed8\u8ba4\u6bcf2\u79d2\u5237\u65b0\u4e00\u6b21\uff1a\n\n```\ndcustat --watch\n```\n\n\u53ef\u9009\u53c2\u6570\u5982\u4e0b\uff1a\n\n```\nusage: dcustat [-h] [-i [INTERVAL]] [--light] [--debug] [-v]\n\noptional arguments:\n\n -h, --help show this help message and exit\n\n -i [INTERVAL], --interval [INTERVAL], --watch [INTERVAL]\n \u52a8\u6001\u5237\u65b0\u6a21\u5f0f\uff1bINTERVAL\u4e3a\u5237\u65b0\u95f4\u9694\uff0c\u5355\u4f4d\uff1a\u79d2\uff1b\u9ed8\u8ba4\u6bcf2\u79d2\u5237\u65b0\u4e00\u6b21\uff1b\n\n --light \u4f7f\u7528\u8f83\u4eae\u7684\u6a21\u5f0f\u663e\u793a\uff0c\u5982\u679c\u663e\u793a\u5668\u6e32\u67d3\u51fa\u6765\u7684\u7ed3\u679c\u8f83\u6697\uff0c\u53ef\u4ee5\u6253\u5f00\u8be5\u53c2\u6570\uff1b\n\n --debug Debug\u6a21\u5f0f\u65f6\u5141\u8bb8\u5728\u7a0b\u5e8f\u51fa\u9519\u7684\u60c5\u51b5\u4e0b\u6253\u5370\u66f4\u591a\u7684\u8c03\u8bd5\u4fe1\u606f\uff1b\n\n -v, --version show program's version number and exit\n```\n\n### \u53c2\u6570 --light \u8bf4\u660e\n\n\u6709\u7684\u663e\u793a\u5668\u6e32\u67d3\u7ed3\u679c\u4e2d\u90e8\u5206\u6307\u6807\u6bd4\u8f83\u6697\uff0c\u5982\u4e0b\u56fe\u5de6\u4fa7\u6240\u793a\u3002\u6b64\u65f6\u53ef\u4ee5\u6dfb\u52a0\u4e0a --light \u53c2\u6570\uff0c\u6240\u6709\u7684\u7ed3\u679c\u90fd\u4f1a\u4ee5\u66f4\u4eae\u7684\u5f62\u5f0f\u8fdb\u884c\u663e\u793a\uff0c\u5982\u4e0b\u56fe\u53f3\u4fa7\u6240\u793a\u3002\n\n```\ndcustat --watch --light\n```\n\n|\u9ed8\u8ba4|\u52a0--light\u53c2\u6570|\n|---|---|\n|<img src=\"./docs/dcustat_dark.png\" width=\"100%\" align=center />|<img src=\"./docs/dcustat_light.png\" width=\"100%\" align=center />|\n\n## \u663e\u793a\u5185\u5bb9\u8bf4\u660e\n\n```\nsxcs-k8s-master-01 Mon Aug 7 17:35:53 2023\n ID \u6e29\u5ea6, \u98ce\u6247, AvgPwr / PwrCap, \u663e\u5b58, Core\n[0] 43.0\u00b0C, 0.0%, 20.0W / 450.0W, 0.0%, 0.0%\n[1] 43.0\u00b0C, 0.0%, 20.0W / 450.0W, 0.0%, 0.0%\n[2] 43.0\u00b0C, 0.0%, 20.0W / 450.0W, 0.0%, 0.0%\n[3] 43.0\u00b0C, 0.0%, 20.0W / 450.0W, 0.0%, 0.0%\n```\n\n* header\uff1a\u7b2c1\u884c\u4e3aheader\uff0c\u5c55\u793a\u7684\u4fe1\u606f\u4ece\u5de6\u5230\u53f3\u4f9d\u6b21\u4e3a\u673a\u5668\u540d\u79f0\u3001\u5f53\u524d\u65f6\u95f4\uff1b\n\n* title\uff1a\u7b2c2\u884c\u4e3atitle\uff0ctitle\u662f\u5bf9\u540e\u9762\u5c55\u793a\u7684\u4fe1\u606f\u7684\u5404\u5b57\u6bb5\u7684\u8bf4\u660e\uff1a\n\n * `ID` \u5217\u662f\u663e\u5361\u7684id\uff1b\n\n * `\u6e29\u5ea6` \u5217\u662f\u663e\u5361\u7684\u5f53\u524d\u6e29\u5ea6\uff1b\n\n * `\u98ce\u6247` \u5217\u662f\u663e\u5361\u98ce\u6247\u7684\u5f53\u524d\u8f6c\u901f\uff1b\n\n * `AvgPwr` \u5217\u662f\u5e73\u5747\u529f\u7387\uff1b\n\n * `PwrCap` \u5217\u662f\u663e\u5361\u7684\u529f\u7387\u4e0a\u9650\uff1b\n\n * `\u663e\u5b58` \u5217\u662f\u5f53\u524d\u663e\u5b58\u7684\u4f7f\u7528\u7387\uff1b\n\n * `Core` \u5217\u662f\u5f53\u524d\u8ba1\u7b97\u8d44\u6e90\u7684\u4f7f\u7528\u7387\u3002\n\n## Reference\n\n\u672c\u9879\u76ee\u7684\u7075\u611f\u3001\u6392\u7248\u5c55\u793a\u3001\u4ee5\u53ca\u4ee3\u7801\u7684\u6574\u4f53\u7ed3\u6784\u90fd\u662f\u6e90\u81ea [`gpustat`](https://github.com/wookayin/gpustat)\uff0c\u672c\u9879\u76ee\u53ea\u662f\u5c06\u5176\u5de5\u4f5c\u9002\u914d\u5230\u4e86\u6d77\u5149 DCU \u8bbe\u5907\u4e0a\uff1b\n\n## License\n\n[MIT License](./LICENSE)\n\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "An utility to monitor Hygon DCU status and usage",
"version": "0.0.3",
"project_urls": {
"Homepage": "https://github.com/wmc1992/dcustat"
},
"split_keywords": [
"dcu",
"monitoring",
"dcustat"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "fbdee24c5d19a648b44372483e83bf9bd8a3a3883fc7ff0af80c2697b506be24",
"md5": "1552f9c23facf127d9cdd0ffe239492e",
"sha256": "8f098964fd528fe697fe04a41d7949dcb567a9a8323ec1534b0aadc4ff9d2f1c"
},
"downloads": -1,
"filename": "dcustat-0.0.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1552f9c23facf127d9cdd0ffe239492e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 9534,
"upload_time": "2023-08-10T03:56:39",
"upload_time_iso_8601": "2023-08-10T03:56:39.783244Z",
"url": "https://files.pythonhosted.org/packages/fb/de/e24c5d19a648b44372483e83bf9bd8a3a3883fc7ff0af80c2697b506be24/dcustat-0.0.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-08-10 03:56:39",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "wmc1992",
"github_project": "dcustat",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "dcustat"
}