gcustat


Namegcustat JSON
Version 0.0.7 PyPI version JSON
download
home_pagehttps://www.enflame-tech.com/
SummaryAn utility to monitor Enflame GCU card status and usage
upload_time2024-07-21 13:40:51
maintainerNone
docs_urlNone
authorxinmin.peng
requires_python>=3.6
licenseMIT
keywords enflame gcu monitoring gcustat
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # `gcustat`

一个能够简洁的显示燧原GCU设备状态的命令行工具;

之前使用GPU时习惯了使用工具 [`gpustat`](https://github.com/wookayin/gpustat) 查看GPU状态,使用燧原的GCU设备之后发现并没有类似的工具,于是仿照  [`gpustat`](https://github.com/wookayin/gpustat) 自己写了一个;
显示效果如下图:

 <img src="https://user-images.githubusercontent.com/50796589/147898619-79ada678-6709-48f2-bdb5-9366f0db2ee0.png" width="80%" height="80%" alt="gcustat png" align=center />

主要解决命令 `efsmi -- 和 efsmi --dmon` 的两个缺点:

* efsmi --,显示的信息总是特别长,笔记本单屏显示不下;
* efsmi --dmon,同一芯片每次展示不在屏幕的同一位置,观察该芯片的变化较困难;

## 依赖说明

python版本要求:`python>=3.6`;

基础软件方面依赖说明:
目前仅在配置了8张T20卡,及 EFSMI V1.20.0版本上进行了测试,功能正常;所以在其他设备上难免会有问题,欢迎反馈问题;有任何优化建议也欢迎反馈;

## 安装说明

从源码进行安装:

```
python3.6 setup.py install
```
或通过命令生产whl安装包,然后分发该whl包进行安装
```
python3.6 setup.py bdist_wheel
```

## 使用说明

使用如下命令单次获取当前GCU设备信息:

```shell
gcustat
```

使用如下命令动态刷新当前GCU设备信息,默认每5秒刷新一次:

```
gcustat --watch
```

可选参数如下:

```
usage: gcustat [-h] [--json] [-i [INTERVAL]] [--no-header] [--no-title]
               [--no-cache] [--force-color] [--no-color]
               [--show-busid] [--show-power] [--compact] [--debug] [-v]

optional arguments:
  -h, --help            show this help message and exit

  --json                将所有结果输出为JSON格式;

  -i [INTERVAL], --interval [INTERVAL], --watch [INTERVAL]
                        动态刷新模式;INTERVAL为刷新间隔,单位:秒;默认每2秒刷新一次;

  --no-header           是否隐藏 header 信息;header 信息包含机器名称、当前时间、版本号;默认展示 header 信息,配置该参数后 header 信息不再展示;

  --no-title            是否隐藏 title 信息;title 信息为对当前设备状态值各字段的说明;默认展示 title 信息,配置该参数后 title 信息不再展示;

  --show-busid          是否展示加速卡的BUSID信息,默认不展示;

  --show-power          是否展示加速卡的功率信息,默认不展示;

  --compact             是否采用紧凑模式展示信息,默认为不采用;紧凑模式下会去掉空白行及其他无意义的行,适用于加速卡较多,显示器较小,屏幕显示不下的情况;

  --no-cache            是否缓存第一次获取到的GCU静态信息,只更新GCU卡的动态信息,默认为采用;

  --force-color, --color
                        强制带颜色方式显示GCU状态信息

  --no-color            禁止带颜色方式显示GCU状态信息

  --debug               Debug模式时允许在程序出错的情况下打印更多的调试信息;

  -v, --version         show program's version number and exit
```

#### 常规模式与紧凑模式对比

| `gcustat --watch` | `gcustat --watch --compact` |
| :-: | :-: |
| ![](./docs/normal.png) | ![](./docs/compact.png) |

#### 另外:

比较遗憾的是,本项目也不具有显示每个设备上运行了哪些进程的功能;

## 显示内容说明

```
machine_name  Sun Oct  8 14:16:24 2023
[ID] 名字  |  温度°C,  占用率 % | 已用内存 /   总内存 MB |
[0] [T20] |30.8°C,  0.0 % |    0 / 32768 MB |
[1] [T20] |30.7°C,  0.0 % |    0 / 32768 MB |
[2] [T20] |30.5°C,  0.0 % |    0 / 32768 MB |
[3] [T20] |30.2°C,  0.0 % |    0 / 32768 MB |
[4] [T20] |32.2°C,  0.0 % |    0 / 32768 MB |
[5] [T20] |32.0°C,  0.0 % |    0 / 32768 MB |
[6] [T20] |33.2°C,  0.0 % |    0 / 32768 MB |
[7] [T20] |32.2°C,  0.0 % |    0 / 32768 MB |
```

* header:第1行为header,可以使用参数 `--no-header` 不展示该信息;展示的信息从左到右依次为机器名称、当前时间、软件 `efsmi` 的版本;

* title:第2行为title,可以使用参数 `--no-title` 不展示该信息;title是对后面展示的信息的各字段的说明;

## Reference

[`gpustat`](https://github.com/wookayin/gpustat)

## License

[MIT License](./LICENSE)



            

Raw data

            {
    "_id": null,
    "home_page": "https://www.enflame-tech.com/",
    "name": "gcustat",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": "enflame gcu monitoring gcustat",
    "author": "xinmin.peng",
    "author_email": "xinmin.peng@enflame-tech.com",
    "download_url": null,
    "platform": null,
    "description": "# `gcustat`\n\n\u4e00\u4e2a\u80fd\u591f\u7b80\u6d01\u7684\u663e\u793a\u71e7\u539fGCU\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\u71e7\u539f\u7684GCU\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 <img src=\"https://user-images.githubusercontent.com/50796589/147898619-79ada678-6709-48f2-bdb5-9366f0db2ee0.png\" width=\"80%\" height=\"80%\" alt=\"gcustat png\" align=center />\n\n\u4e3b\u8981\u89e3\u51b3\u547d\u4ee4 `efsmi -- \u548c efsmi --dmon` \u7684\u4e24\u4e2a\u7f3a\u70b9\uff1a\n\n* efsmi --\uff0c\u663e\u793a\u7684\u4fe1\u606f\u603b\u662f\u7279\u522b\u957f\uff0c\u7b14\u8bb0\u672c\u5355\u5c4f\u663e\u793a\u4e0d\u4e0b\uff1b\n* efsmi --dmon\uff0c\u540c\u4e00\u82af\u7247\u6bcf\u6b21\u5c55\u793a\u4e0d\u5728\u5c4f\u5e55\u7684\u540c\u4e00\u4f4d\u7f6e\uff0c\u89c2\u5bdf\u8be5\u82af\u7247\u7684\u53d8\u5316\u8f83\u56f0\u96be\uff1b\n\n## \u4f9d\u8d56\u8bf4\u660e\n\npython\u7248\u672c\u8981\u6c42\uff1a`python>=3.6`\uff1b\n\n\u57fa\u7840\u8f6f\u4ef6\u65b9\u9762\u4f9d\u8d56\u8bf4\u660e\uff1a\n\u76ee\u524d\u4ec5\u5728\u914d\u7f6e\u4e868\u5f20T20\u5361\uff0c\u53ca EFSMI V1.20.0\u7248\u672c\u4e0a\u8fdb\u884c\u4e86\u6d4b\u8bd5\uff0c\u529f\u80fd\u6b63\u5e38\uff1b\u6240\u4ee5\u5728\u5176\u4ed6\u8bbe\u5907\u4e0a\u96be\u514d\u4f1a\u6709\u95ee\u9898\uff0c\u6b22\u8fce\u53cd\u9988\u95ee\u9898\uff1b\u6709\u4efb\u4f55\u4f18\u5316\u5efa\u8bae\u4e5f\u6b22\u8fce\u53cd\u9988\uff1b\n\n## \u5b89\u88c5\u8bf4\u660e\n\n\u4ece\u6e90\u7801\u8fdb\u884c\u5b89\u88c5\uff1a\n\n```\npython3.6 setup.py install\n```\n\u6216\u901a\u8fc7\u547d\u4ee4\u751f\u4ea7whl\u5b89\u88c5\u5305\uff0c\u7136\u540e\u5206\u53d1\u8be5whl\u5305\u8fdb\u884c\u5b89\u88c5\n```\npython3.6 setup.py bdist_wheel\n```\n\n## \u4f7f\u7528\u8bf4\u660e\n\n\u4f7f\u7528\u5982\u4e0b\u547d\u4ee4\u5355\u6b21\u83b7\u53d6\u5f53\u524dGCU\u8bbe\u5907\u4fe1\u606f\uff1a\n\n```shell\ngcustat\n```\n\n\u4f7f\u7528\u5982\u4e0b\u547d\u4ee4\u52a8\u6001\u5237\u65b0\u5f53\u524dGCU\u8bbe\u5907\u4fe1\u606f\uff0c\u9ed8\u8ba4\u6bcf5\u79d2\u5237\u65b0\u4e00\u6b21\uff1a\n\n```\ngcustat --watch\n```\n\n\u53ef\u9009\u53c2\u6570\u5982\u4e0b\uff1a\n\n```\nusage: gcustat [-h] [--json] [-i [INTERVAL]] [--no-header] [--no-title]\n               [--no-cache] [--force-color] [--no-color]\n               [--show-busid] [--show-power] [--compact] [--debug] [-v]\n\noptional arguments:\n  -h, --help            show this help message and exit\n\n  --json                \u5c06\u6240\u6709\u7ed3\u679c\u8f93\u51fa\u4e3aJSON\u683c\u5f0f\uff1b\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  --no-header           \u662f\u5426\u9690\u85cf header \u4fe1\u606f\uff1bheader \u4fe1\u606f\u5305\u542b\u673a\u5668\u540d\u79f0\u3001\u5f53\u524d\u65f6\u95f4\u3001\u7248\u672c\u53f7\uff1b\u9ed8\u8ba4\u5c55\u793a header \u4fe1\u606f\uff0c\u914d\u7f6e\u8be5\u53c2\u6570\u540e header \u4fe1\u606f\u4e0d\u518d\u5c55\u793a\uff1b\n\n  --no-title            \u662f\u5426\u9690\u85cf title \u4fe1\u606f\uff1btitle \u4fe1\u606f\u4e3a\u5bf9\u5f53\u524d\u8bbe\u5907\u72b6\u6001\u503c\u5404\u5b57\u6bb5\u7684\u8bf4\u660e\uff1b\u9ed8\u8ba4\u5c55\u793a title \u4fe1\u606f\uff0c\u914d\u7f6e\u8be5\u53c2\u6570\u540e title \u4fe1\u606f\u4e0d\u518d\u5c55\u793a\uff1b\n\n  --show-busid          \u662f\u5426\u5c55\u793a\u52a0\u901f\u5361\u7684BUSID\u4fe1\u606f\uff0c\u9ed8\u8ba4\u4e0d\u5c55\u793a\uff1b\n\n  --show-power          \u662f\u5426\u5c55\u793a\u52a0\u901f\u5361\u7684\u529f\u7387\u4fe1\u606f\uff0c\u9ed8\u8ba4\u4e0d\u5c55\u793a\uff1b\n\n  --compact             \u662f\u5426\u91c7\u7528\u7d27\u51d1\u6a21\u5f0f\u5c55\u793a\u4fe1\u606f\uff0c\u9ed8\u8ba4\u4e3a\u4e0d\u91c7\u7528\uff1b\u7d27\u51d1\u6a21\u5f0f\u4e0b\u4f1a\u53bb\u6389\u7a7a\u767d\u884c\u53ca\u5176\u4ed6\u65e0\u610f\u4e49\u7684\u884c\uff0c\u9002\u7528\u4e8e\u52a0\u901f\u5361\u8f83\u591a\uff0c\u663e\u793a\u5668\u8f83\u5c0f\uff0c\u5c4f\u5e55\u663e\u793a\u4e0d\u4e0b\u7684\u60c5\u51b5\uff1b\n\n  --no-cache            \u662f\u5426\u7f13\u5b58\u7b2c\u4e00\u6b21\u83b7\u53d6\u5230\u7684GCU\u9759\u6001\u4fe1\u606f\uff0c\u53ea\u66f4\u65b0GCU\u5361\u7684\u52a8\u6001\u4fe1\u606f\uff0c\u9ed8\u8ba4\u4e3a\u91c7\u7528\uff1b\n\n  --force-color, --color\n                        \u5f3a\u5236\u5e26\u989c\u8272\u65b9\u5f0f\u663e\u793aGCU\u72b6\u6001\u4fe1\u606f\n\n  --no-color            \u7981\u6b62\u5e26\u989c\u8272\u65b9\u5f0f\u663e\u793aGCU\u72b6\u6001\u4fe1\u606f\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#### \u5e38\u89c4\u6a21\u5f0f\u4e0e\u7d27\u51d1\u6a21\u5f0f\u5bf9\u6bd4\n\n| `gcustat --watch` | `gcustat --watch --compact` |\n| :-: | :-: |\n| ![](./docs/normal.png) | ![](./docs/compact.png) |\n\n#### \u53e6\u5916\uff1a\n\n\u6bd4\u8f83\u9057\u61be\u7684\u662f\uff0c\u672c\u9879\u76ee\u4e5f\u4e0d\u5177\u6709\u663e\u793a\u6bcf\u4e2a\u8bbe\u5907\u4e0a\u8fd0\u884c\u4e86\u54ea\u4e9b\u8fdb\u7a0b\u7684\u529f\u80fd\uff1b\n\n## \u663e\u793a\u5185\u5bb9\u8bf4\u660e\n\n```\nmachine_name  Sun Oct  8 14:16:24 2023\n[ID] \u540d\u5b57  |  \u6e29\u5ea6\u00b0C,  \u5360\u7528\u7387 % | \u5df2\u7528\u5185\u5b58 /   \u603b\u5185\u5b58 MB |\n[0] [T20] |30.8\u00b0C,  0.0 % |    0 / 32768 MB |\n[1] [T20] |30.7\u00b0C,  0.0 % |    0 / 32768 MB |\n[2] [T20] |30.5\u00b0C,  0.0 % |    0 / 32768 MB |\n[3] [T20] |30.2\u00b0C,  0.0 % |    0 / 32768 MB |\n[4] [T20] |32.2\u00b0C,  0.0 % |    0 / 32768 MB |\n[5] [T20] |32.0\u00b0C,  0.0 % |    0 / 32768 MB |\n[6] [T20] |33.2\u00b0C,  0.0 % |    0 / 32768 MB |\n[7] [T20] |32.2\u00b0C,  0.0 % |    0 / 32768 MB |\n```\n\n* header\uff1a\u7b2c1\u884c\u4e3aheader\uff0c\u53ef\u4ee5\u4f7f\u7528\u53c2\u6570 `--no-header` \u4e0d\u5c55\u793a\u8be5\u4fe1\u606f\uff1b\u5c55\u793a\u7684\u4fe1\u606f\u4ece\u5de6\u5230\u53f3\u4f9d\u6b21\u4e3a\u673a\u5668\u540d\u79f0\u3001\u5f53\u524d\u65f6\u95f4\u3001\u8f6f\u4ef6 `efsmi` \u7684\u7248\u672c\uff1b\n\n* title\uff1a\u7b2c2\u884c\u4e3atitle\uff0c\u53ef\u4ee5\u4f7f\u7528\u53c2\u6570 `--no-title` \u4e0d\u5c55\u793a\u8be5\u4fe1\u606f\uff1btitle\u662f\u5bf9\u540e\u9762\u5c55\u793a\u7684\u4fe1\u606f\u7684\u5404\u5b57\u6bb5\u7684\u8bf4\u660e\uff1b\n\n## Reference\n\n[`gpustat`](https://github.com/wookayin/gpustat)\n\n## License\n\n[MIT License](./LICENSE)\n\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "An utility to monitor Enflame GCU card status and usage",
    "version": "0.0.7",
    "project_urls": {
        "Homepage": "https://www.enflame-tech.com/"
    },
    "split_keywords": [
        "enflame",
        "gcu",
        "monitoring",
        "gcustat"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ca707ad107c1cace8bf1b95bf878a941dd84dce8a921d6567cb08fac443df293",
                "md5": "e5ab14a6108211a14197f27542008bb1",
                "sha256": "f00bd97ccae8f7a83240cf87617a7c8da550a73ea0561ee23e7b32fb30cb6214"
            },
            "downloads": -1,
            "filename": "gcustat-0.0.7-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e5ab14a6108211a14197f27542008bb1",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 13065,
            "upload_time": "2024-07-21T13:40:51",
            "upload_time_iso_8601": "2024-07-21T13:40:51.150976Z",
            "url": "https://files.pythonhosted.org/packages/ca/70/7ad107c1cace8bf1b95bf878a941dd84dce8a921d6567cb08fac443df293/gcustat-0.0.7-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-07-21 13:40:51",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "gcustat"
}
        
Elapsed time: 9.52082s