319 lines
16 KiB
HTML
319 lines
16 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
|
<meta name="description" content="">
|
|
<meta name="author" content="">
|
|
|
|
<title>NVIDIA Dashboard</title>
|
|
|
|
<!-- Custom fonts for this template-->
|
|
<link href="vendor/fontawesome-free/css/all.min.css" rel="stylesheet" type="text/css">
|
|
<link
|
|
href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i"
|
|
rel="stylesheet">
|
|
|
|
<!-- Custom styles for this template-->
|
|
<link href="css/sb-admin-2.css" rel="stylesheet">
|
|
|
|
</head>
|
|
|
|
<body id="page-top">
|
|
|
|
<!-- Page Wrapper -->
|
|
<div id="wrapper">
|
|
|
|
<!-- Sidebar -->
|
|
<ul class="navbar-nav bg-gradient-dark sidebar sidebar-dark accordion" id="accordionSidebar">
|
|
|
|
<!-- Sidebar - Brand -->
|
|
<a class="sidebar-brand d-flex align-items-center justify-content-center" href="/">
|
|
<div class="sidebar-brand-icon">
|
|
<img src="img/nvidia.png" class="nvidia-logo" width="100rem" height="auto" />
|
|
</div>
|
|
<div class="sidebar-brand-text mx-3">SMI</div>
|
|
</a>
|
|
|
|
<!-- Divider -->
|
|
<hr class="sidebar-divider my-0">
|
|
|
|
{{ range .GPUs }}
|
|
<!-- Nav Item - Pages Collapse Menu -->
|
|
<li class="nav-item">
|
|
<a class="nav-link collapsed" href="/{{ .UUID }}">
|
|
<i class="fas fa-microchip"></i>
|
|
<span>{{ .Name }}</span>
|
|
</a>
|
|
</li>
|
|
{{ end }}
|
|
</ul>
|
|
<!-- End of Sidebar -->
|
|
|
|
<!-- Content Wrapper -->
|
|
<div id="content-wrapper" class="d-flex flex-column">
|
|
|
|
<!-- Main Content -->
|
|
<div id="content">
|
|
|
|
<!-- Topbar -->
|
|
<nav class="navbar navbar-expand navbar-light bg-white topbar mb-4 static-top shadow">
|
|
<ul class="navbar-nav ml-auto">
|
|
<div class="topbar-divider d-none d-sm-block"></div>
|
|
|
|
<!-- Nav Item - User Information -->
|
|
<li class="nav-item dropdown no-arrow">
|
|
<a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button"
|
|
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
<span class="mr-2 d-none d-lg-inline text-gray-600 small">{{ .Username }}</span>
|
|
</a>
|
|
{{if ne .Username "anonymous"}}
|
|
<!-- Dropdown - User Information -->
|
|
<div class="dropdown-menu dropdown-menu-right shadow animated--grow-in"
|
|
aria-labelledby="userDropdown">
|
|
<a class="dropdown-item" href="#" data-toggle="modal" data-target="#logoutModal">
|
|
<i class="fas fa-sign-out-alt fa-sm fa-fw mr-2 text-gray-400"></i>
|
|
Logout
|
|
</a>
|
|
</div>
|
|
{{ end }}
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</nav>
|
|
<!-- End of Topbar -->
|
|
|
|
<!-- Begin Page Content -->
|
|
<div class="container-fluid">
|
|
<!-- Content Row -->
|
|
<div class="row">
|
|
|
|
<div class="col-xl-3 col-md-6 mb-4">
|
|
<div class="card border-left-success shadow h-100 py-2">
|
|
<div class="card-body">
|
|
<div class="row no-gutters align-items-center">
|
|
<div class="col mr-2">
|
|
<div class="text-xs font-weight-bold text-success text-uppercase mb-1">
|
|
Name
|
|
</div>
|
|
<div class="h5 mb-0 font-weight-bold text-gray-800">
|
|
{{ .GPU.Name }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-xl-3 col-md-6 mb-4">
|
|
<div class="card border-left-success shadow h-100 py-2">
|
|
<div class="card-body">
|
|
<div class="row no-gutters align-items-center">
|
|
<div class="col mr-2">
|
|
<div class="text-xs font-weight-bold text-success text-uppercase mb-1">
|
|
Driver version
|
|
</div>
|
|
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ .DriverVersion }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-xl-3 col-md-6 mb-4">
|
|
<div class="card border-left-success shadow h-100 py-2">
|
|
<div class="card-body">
|
|
<div class="row no-gutters align-items-center">
|
|
<div class="col mr-2">
|
|
<div class="text-xs font-weight-bold text-success text-uppercase mb-1">
|
|
CUDA version
|
|
</div>
|
|
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ .CUDAVersion }}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-xl-3 col-md-6 mb-4">
|
|
<div class="card border-left-success shadow h-100 py-2">
|
|
<div class="card-body">
|
|
<div class="row no-gutters align-items-center">
|
|
<div class="col mr-2">
|
|
<div class="text-xs font-weight-bold text-success text-uppercase mb-1">
|
|
Usage
|
|
</div>
|
|
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ .GPU.Utilization.Rate }}%</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- Content Row -->
|
|
|
|
<div class="row">
|
|
|
|
<!-- Area Chart -->
|
|
<div class="col">
|
|
<div class="card shadow mb-4">
|
|
<!-- Card Header - Dropdown -->
|
|
<div
|
|
class="card-header py-3 d-flex flex-row align-items-center justify-content-between">
|
|
<h6 class="m-0 font-weight-bold text-success">Load</h6>
|
|
<div class="dropdown no-arrow">
|
|
<a class="dropdown-toggle" href="#" role="button" id="dropdownMenuLink"
|
|
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
<i class="fas fa-ellipsis-v fa-sm fa-fw text-gray-400"></i>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<!-- Card Body -->
|
|
<div class="card-body">
|
|
<div class="chart-area">
|
|
<canvas id="myAreaChart"></canvas>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Content Row -->
|
|
<div class="row">
|
|
|
|
<!-- Content Column -->
|
|
<div class="col-lg-6 mb-4">
|
|
|
|
<!-- Summary -->
|
|
<div class="card shadow mb-4">
|
|
<div class="card-header py-3">
|
|
<h6 class="m-0 font-weight-bold text-success">Summary</h6>
|
|
</div>
|
|
<div class="card-body">
|
|
<h4 class="small font-weight-bold">Temperature<span class="float-right">
|
|
{{ .GPU.CoreTemperature }}°C</span></h4>
|
|
<h4 class="small font-weight-bold">VRAM<span class="float-right">
|
|
{{ ConvertByteSize .GPU.Memory.Used }}/{{ ConvertByteSize .GPU.Memory.Total }}</span></h4>
|
|
<div class="progress mb-4">
|
|
<div class="progress-bar" role="progressbar"
|
|
style="width: {{ PercentageRounded .GPU.Memory.Used .GPU.Memory.Total }}%"
|
|
aria-valuenow="{{ PercentageRounded .GPU.Memory.Used .GPU.Memory.Total }}"
|
|
aria-valuemin="0" aria-valuemax="100"></div>
|
|
</div>
|
|
<h4 class="small font-weight-bold">GPU Usage<span class="float-right">
|
|
{{ .GPU.Utilization.Rate }}%</span></h4>
|
|
<div class="progress mb-4">
|
|
<div class="progress-bar bg-info" role="progressbar"
|
|
style="width: {{ .GPU.Utilization.Rate }}%"
|
|
aria-valuenow="{{ .GPU.Utilization.Rate }}" aria-valuemin="0"
|
|
aria-valuemax="100"></div>
|
|
</div>
|
|
<h4 class="small font-weight-bold">Encoder Usage<span class="float-right">
|
|
{{ .GPU.Utilization.Encode }}%</span></h4>
|
|
<div class="progress mb-4">
|
|
<div class="progress-bar bg-info" role="progressbar"
|
|
style="width: {{ .GPU.Utilization.Encode }}%"
|
|
aria-valuenow="{{ .GPU.Utilization.Encode }}" aria-valuemin="0"
|
|
aria-valuemax="100"></div>
|
|
</div>
|
|
<h4 class="small font-weight-bold">Decoder Usage<span class="float-right">
|
|
{{ .GPU.Utilization.Decode }}%</span></h4>
|
|
<div class="progress">
|
|
<div class="progress-bar bg-success" role="progressbar"
|
|
style="width: {{ .GPU.Utilization.Decode }}%"
|
|
aria-valuenow="{{ .GPU.Utilization.Decode }}" aria-valuemin="0"
|
|
aria-valuemax="100"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-lg mb-4">
|
|
|
|
<!-- Processes -->
|
|
<!-- DataTales Example -->
|
|
<div class="card shadow mb-4">
|
|
<div class="card-header py-3">
|
|
<h6 class="m-0 font-weight-bold text-primary">Processes</h6>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="table-responsive">
|
|
<table class="table table-bordered" id="dataTable" width="100%"
|
|
cellspacing="0">
|
|
<thead>
|
|
<tr>
|
|
<th>PID</th>
|
|
<th>Type</th>
|
|
<th>Commandline</th>
|
|
<th>GPU Memory Usage</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{{ range .GPU.Processes }}
|
|
<tr>
|
|
<td>{{ .PID }}</td>
|
|
<td>{{ .Type }}</td>
|
|
<td>{{ .Name }}</td>
|
|
<td>{{ ConvertByteSize .MemoryUsed }}</td>
|
|
</tr>
|
|
{{ end }}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
<!-- /.container-fluid -->
|
|
|
|
</div>
|
|
<!-- End of Main Content -->
|
|
|
|
<!-- Footer -->
|
|
<footer class="sticky-footer bg-white">
|
|
<div class="container my-auto">
|
|
<div class="copyright text-center my-auto">
|
|
<span>template from <a
|
|
href="https://github.com/startbootstrap/startbootstrap-sb-admin-2">startbootstrap/startbootstrap-sb-admin-2</a></span>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
<!-- End of Footer -->
|
|
|
|
</div>
|
|
<!-- End of Content Wrapper -->
|
|
|
|
</div>
|
|
<!-- End of Page Wrapper -->
|
|
|
|
<!-- Scroll to Top Button-->
|
|
<a class="scroll-to-top rounded" href="#page-top">
|
|
<i class="fas fa-angle-up"></i>
|
|
</a>
|
|
|
|
<!-- Bootstrap core JavaScript-->
|
|
<script src="vendor/jquery/jquery.min.js"></script>
|
|
<script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
|
|
|
|
<!-- Core plugin JavaScript-->
|
|
<script src="vendor/jquery-easing/jquery.easing.min.js"></script>
|
|
|
|
<!-- Custom scripts for all pages-->
|
|
<script src="js/sb-admin-2.min.js"></script>
|
|
|
|
<!-- Page level plugins -->
|
|
<script src="vendor/chart.js/Chart.min.js"></script>
|
|
|
|
<!-- Page level custom scripts -->
|
|
<script src="js/demo/chart-area-demo.js"></script>
|
|
|
|
</body>
|
|
|
|
</html> |