nvidia-smi-get
NVIDIA SMI wrapper to get NVIDIA GPU info
nvidia-smi-get
Simple wrapper around nvidia-smi interface for Node.js to retrieve infomation about NVIDIA GPU.
Read more here https://developer.download.nvidia.com/compute/DCGM/docs/nvidia-smi-367.38.pdf
Installation
npm i nvidia-smi-get
Example
import { get } from 'nvidia-smi-get';
// equivalent to 'nvidia-smi -q'
const gpuValue = get();
console.log(gpuValue)
// get gpu 0 current temp
console.log(gpuValue['GPU 00000000:01:00.0']['Temperature']['GPU Current Temp'])
Sample object return
{
Timestamp: 'Mon Dec 19 12:46:21 2022',
'Driver Version': '527.37',
'CUDA Version': '12.0',
'Attached GPUs': '1',
'GPU 00000000:01:00.0': {
'Product Name': 'NVIDIA GeForce RTX 3060',
'Product Brand': 'GeForce',
'Product Architecture': 'Ampere',
'Display Mode': 'Enabled',
'Display Active': 'Enabled',
'Persistence Mode': null,
'MIG Mode': { Current: null, Pending: null },
'Accounting Mode': 'Disabled',
'Accounting Mode Buffer Size': '4000',
'Driver Model': { Current: 'WDDM', Pending: 'WDDM' },
'Serial Number': null,
'GPU UUID': 'GPU-7a5de869-f88d-c8f5-660b-5d6e9cae21cc',
'Minor Number': null,
'VBIOS Version': '94.06.25.00.82',
'MultiGPU Board': 'No',
'Board ID': '0x100',
'Board Part Number': null,
'GPU Part Number': '2504-302-A1',
'Module ID': '1',
'Inforom Version': {
'Image Version': 'G001.0000.03.03',
'OEM Object': '2.0',
'ECC Object': null,
'Power Management Object': null
},
'GPU Operation Mode': { Current: null, Pending: null },
'GSP Firmware Version': null,
'GPU Virtualization Mode': { 'Virtualization Mode': 'None', 'Host VGPU Mode': null },
IBMNPU: { 'Relaxed Ordering Mode': null },
PCI: {
Bus: '0x01',
Device: '0x00',
Domain: '0x0000',
'Device Id': '0x250410DE',
'Bus Id': '00000000:01:00.0',
'Sub System Id': '0x40711458',
'GPU Link Info': [Object],
'Bridge Chip': [Object],
'Replays Since Reset': '0',
'Replay Number Rollovers': '0',
'Tx Throughput': '895000 KB/s',
'Rx Throughput': '191000 KB/s',
'Atomic Caps Inbound': null,
'Atomic Caps Outbound': null
},
'Fan Speed': '0 %',
'Performance State': 'P5',
'Clocks Throttle Reasons': {
Idle: 'Active',
'Applications Clocks Setting': 'Not Active',
'SW Power Cap': 'Not Active',
'HW Slowdown': 'Not Active',
'HW Thermal Slowdown': 'Not Active',
'HW Power Brake Slowdown': 'Not Active',
'Sync Boost': 'Not Active',
'SW Thermal Slowdown': 'Not Active',
'Display Clock Setting': 'Not Active'
},
'FB Memory Usage': {
Total: '12288 MiB',
Reserved: '159 MiB',
Used: '1142 MiB',
Free: '10986 MiB'
},
'BAR1 Memory Usage': { Total: '256 MiB', Used: '1 MiB', Free: '255 MiB' },
'Compute Mode': 'Default',
Utilization: { Gpu: '36 %', Memory: '18 %', Encoder: '0 %', Decoder: '0 %' },
'Encoder Stats': {
'Active Sessions': '0',
'Average FPS': '0',
'Average Latency': '0'
},
'FBC Stats': {
'Active Sessions': '0',
'Average FPS': '0',
'Average Latency': '0'
},
'Ecc Mode': { Current: null, Pending: null },
'ECC Errors': { Volatile: [Object], Aggregate: [Object] },
'Retired Pages': {
'Single Bit ECC': null,
'Double Bit ECC': null,
'Pending Page Blacklist': null
},
'Remapped Rows': null,
Temperature: {
'GPU Current Temp': '44 C',
'GPU Shutdown Temp': '98 C',
'GPU Slowdown Temp': '95 C',
'GPU Max Operating Temp': '93 C',
'GPU Target Temperature': '83 C',
'Memory Current Temp': null,
'Memory Max Operating Temp': null
},
'Power Readings': {
'Power Management': 'Supported',
'Power Draw': '21.99 W',
'Power Limit': '170.00 W',
'Default Power Limit': '170.00 W',
'Enforced Power Limit': '170.00 W',
'Min Power Limit': '100.00 W',
'Max Power Limit': '212.00 W'
},
Clocks: {
Graphics: '457 MHz',
SM: '457 MHz',
Memory: '810 MHz',
Video: '555 MHz'
},
'Applications Clocks': { Graphics: null, Memory: null },
'Default Applications Clocks': { Graphics: null, Memory: null },
'Deferred Clocks': { Memory: null },
'Max Clocks': {
Graphics: '2100 MHz',
SM: '2100 MHz',
Memory: '7501 MHz',
Video: '1950 MHz'
},
'Max Customer Boost Clocks': { Graphics: null },
'Clock Policy': { 'Auto Boost': null, 'Auto Boost Default': null },
Voltage: { Graphics: '662.500 mV' },
Fabric: { State: null, Status: null },
Processes: [
[Object], [Object],
[Object], [Object],
[Object], [Object],
[Object], [Object],
[Object], [Object],
[Object], [Object]
]
}
}
Contributing
All contributions are accepted as a PR.
- You can file issues by submitting a PR.
- Implement new feature by submitting a PR.
- Improve documentation by submitting PR. You are welcome to improve this project! It would help me so much!
Support
For support, email [email protected]!