- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想将有关机器可用 GPU 和状态的系统信息放入系统中以进行实时监控。我使用 XML
输出 GPU 信息
$ nvidia-smi -x -q
此命令将打印输出当前 GPU 状态(如使用情况、温度等)以及格式化的 XML(具有定义的 DTD)。我的 XML 输出是 here .
没有直接从 nvidia-smi
输出到 json 的选项,因此此时我看到的唯一选项是将 XML 从 Node.js 转换为 JSON。
问题是我需要它作为 JSON,所以我尝试在我的 Node
应用程序中转换为 JSON。我依次使用了几个 npm 可用模块,如 xml2json、node-xml2js 等,但每个模块都有不同的错误(null、未定义等)。在浏览器中使用简单的 DOMParser (window.DOMParser) 即可。这似乎是这个 XML 的一个错误,因为当我有一个像 here 这样的 GPU 输出时JSON 转换得很好,如 gist 所示.
我使用 Node 生成来调用 nvdia-smi
命令,然后解析输出,如下所示:
(function() {
var XMLParser = require('./xml2json');
function gpuInfo() {
var _data='';
var curl = require('child_process').spawn('nvidia-smi', ['-x','-q']);
curl.stdout.on('data', function(data) {
_data+= new Buffer(data,'utf-8').toString();
});
curl.stdout.on('end', function(data) {
var x2js = new XMLParser();
var json = x2js.xml_str2json( _data );
console.log(JSON.stringify( json,null,2));
});
curl.on('exit', function(code) {
if (code != 0) {
console.log('Failed: ' + code);
}
});
}
module.exports = {
gpuInfo:gpuInfo
}
在本例中,我使用 modified xml2json浏览器客户端模块与 xmldom
模块结合的版本,但这似乎不是一个稳定的解决方案,所以我的解析是在这里完成的,如下所示:
this.parseXmlString = function(xmlDocStr) {
if (xmlDocStr === undefined) {
return null;
}
var xmlDoc;
var DOMParser = require('xmldom').DOMParser;
var parsererrorNS = null;
try {
xmlDoc = new DOMParser().parseFromString( xmlDocStr, "text/xml" );
if( parsererrorNS!= null && xmlDoc.getElementsByTagNameNS(parsererrorNS, "parsererror").length > 0) {
xmlDoc = null;
}
}
catch(err) {
xmlDoc = null;
}
return xmlDoc;
};
离开这里
最佳答案
尝试使用https://github.com/Cheedoong/xml2json它速度更快,并且可以用作 jq 等二进制工具。你会像这样运行:
nvidia-smi -x -q | xml2json | jq
结果将是这样的:
{
"nvidia_smi_log": {
"timestamp": "Thu Aug 29 13:45:26 2019",
"driver_version": "387.34",
"attached_gpus": "9",
"gpu": [
{
"@id": "00000000:03:00.0",
"product_name": "P106-090",
"product_brand": "GeForce",
"display_mode": "Disabled",
"display_active": "Disabled",
"persistence_mode": "Enabled",
"accounting_mode": "Disabled",
"accounting_mode_buffer_size": "1920",
"driver_model": {
"current_dm": "N/A",
"pending_dm": "N/A"
},
"serial": "N/A",
...
关于json - Nvidia Smi JSON 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42769303/
我正在尝试在 Google Colab 上运行 stylegan2,但在我的 Drive 上运行所有文件,并避免使用 !git clone 从 github of stylegan2 。 这是我在特定
我需要升级我的 nvidia 驱动程序,以便尝试运行 NVIDIA-LInux-x86_64.run文件 但是,我看到以下消息 ERROR: An NVIDIA kernel module 'nvid
我经历过Cuda programming guide但仍然不清楚 cuda 内核在 GPU 上的什么位置?换句话说,它驻留在哪个内存段? 另外,我怎么知道我的设备支持的最大内核大小是多少?最大内核大小
我想在基于官方nvidia/cuda的容器中运行带有cuvid硬件加速解码的ffmpeg图片。 Ffmpeg 无法找到 libnvcuvid.so,尽管有所有必需的 cuda 库。ldconfig -
当我运行命令 nvidia-smi ,我得到以下两个按总线 ID 排序的 GPU: For GPU 0, 00000000:0A:00.0 For GPU 1, 00000000:41:00.0 但是
我正在使用 Ubuntu 14.04 LTS 运行 AWS EC2 g2.2xlarge 实例。我想在训练 TensorFlow 模型时观察 GPU 利用率。我在尝试运行“nvidia-smi”时遇到
我尝试在安装 docker-ce 后安装 nvidia-docker。我关注的是:https://github.com/NVIDIA/nvidia-docker安装 nvidia-docker。看来已
我一直认为 Hyper-Q 技术不过是 GPU 中的流。后来我发现我错了(是吗?)。所以我读了一些关于 Hyper-Q 的书,却更加困惑了。 我正在浏览一篇文章,它有以下两个陈述: A. Hyper-
我刚刚在安装了两个 K20m GPU 的服务器中运行了 simpleMultiGPU。然后运行 nvidia-smi 命令来显示 GPU 的状态。结果如下: 问题如下: GPU 内存使用情况似乎不
NVIDIA-SMI 抛出此错误: NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make
如何使用 Vulkan 来利用 Nvidia 的张量核心(在计算着色器中?!)? Nvidia 有这篇文章 Programming Tensor Cores in CUDA 9 ,但这显然是针对 CU
我在类的一个项目中使用 Chapel,我正在尝试使用我的两个 Nvidia Jetson nano 板进行多语言环境执行。按照本教程 https://chapel-lang.org/docs/usin
我得到nvidia-smi得到Memory-Usage是这样的 $nvidia-smi -i 0,1 Wed Mar 4 16:20:07 2020 +-----------------
我得到nvidia-smi得到Memory-Usage是这样的 $nvidia-smi -i 0,1 Wed Mar 4 16:20:07 2020 +-----------------
有没有区别: nvidia-docker 运行 和 docker run --runtime=nvidia ? 在 official docs他们使用后者,但我在其他在线教程中看到过前者。 最佳答案
我有一个用 C 编写的代码(使用 opencl 规范)来列出所有可用的设备。我的 PC 安装了 AMD FirePro 和 Nvidia 的 Tesla 显卡。我先安装了AMD-APP-SDK-v3.
我读到可以使用内核启动来同步不同的 block ,即,如果我希望所有 block 在进行操作 2 之前完成操作 1,我应该将操作 1 放在一个内核中,将操作 2 放在另一个内核中。这样,我可以实现 b
我目前正在尝试使用函数 NvAPI_Stereo_SetDriverMode 将 nvapi 设置为在直接模式下工作。 根据 Nvidia nvapi site (在手册中),如果你想做一个 dire
我对nvidia GPU的任务调度有些疑惑。 (1)如果一个 block (CTA)中的线程束已经完成,但仍有其他线程在运行,这个线程会等待其他线程完成吗?换句话说,当所有线程都完成时, block
有人在Nvidia Tegra X1上使用了tensorflow吗? 我发现一些资料表明TK1上可能存在这种情况,或者TX1上存在严重的黑客入侵/错误,但尚无确定的配方。 http://cudamus
我是一名优秀的程序员,十分优秀!