sync from github
Browse files- src/utils.py +16 -4
src/utils.py
CHANGED
@@ -31,6 +31,12 @@ PEAK_FLOPS_DICT = {
|
|
31 |
"NVIDIA-H100-PCIe-80GB": 1513e12,
|
32 |
"NVIDIA-RTX-A5000-24GB": 444.4e12
|
33 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
"8bit":{
|
35 |
"NVIDIA-A100-PCIe-80GB": 1248e12,
|
36 |
"NVIDIA-A100-SXM-80GB": 1248e12,
|
@@ -92,7 +98,8 @@ def parse_nvidia_smi():
|
|
92 |
gpu_stats = []
|
93 |
|
94 |
gpu_info_pattern = re.compile(r'(\d+)C\s+P\d+\s+(\d+)W / \d+W\s+\|\s+(\d+)MiB / \d+MiB\s+\|\s+(\d+)%')
|
95 |
-
gpu_name_pattern = re.compile(r'NVIDIA\s+([\w\s]+\d+(?:\s*GB)?)')
|
|
|
96 |
|
97 |
gpu_name = ""
|
98 |
for index in gpu_indices:
|
@@ -104,7 +111,7 @@ def parse_nvidia_smi():
|
|
104 |
name_match = gpu_name_pattern.search(line)
|
105 |
gpu_info = {}
|
106 |
if name_match:
|
107 |
-
gpu_name = name_match.
|
108 |
if match:
|
109 |
temp, power_usage, mem_usage, gpu_util = map(int, match.groups())
|
110 |
gpu_info.update({
|
@@ -208,10 +215,15 @@ def get_gpu_details():
|
|
208 |
gpus = GPUtil.getGPUs()
|
209 |
gpu = gpus[0]
|
210 |
name = gpu.name.replace(" ", "-")
|
211 |
-
# Convert memory from MB to GB and round to nearest whole number
|
212 |
memory_gb = round(gpu.memoryTotal / 1024)
|
213 |
memory = f"{memory_gb}GB"
|
|
|
|
|
|
|
|
|
|
|
214 |
formatted_name = f"{name}-{memory}"
|
|
|
215 |
return formatted_name
|
216 |
|
217 |
def get_peak_bw(gpu_name):
|
@@ -223,7 +235,7 @@ def get_peak_flops(gpu_name, precision):
|
|
223 |
def transfer_precision2bytes(precision):
|
224 |
if precision == "float32":
|
225 |
return 4
|
226 |
-
elif precision
|
227 |
return 2
|
228 |
elif precision == "8bit":
|
229 |
return 1
|
|
|
31 |
"NVIDIA-H100-PCIe-80GB": 1513e12,
|
32 |
"NVIDIA-RTX-A5000-24GB": 444.4e12
|
33 |
},
|
34 |
+
"bfloat16":{
|
35 |
+
"NVIDIA-A100-PCIe-80GB": 624e12,
|
36 |
+
"NVIDIA-A100-SXM-80GB": 624e12,
|
37 |
+
"NVIDIA-H100-PCIe-80GB": 1513e12,
|
38 |
+
"NVIDIA-RTX-A5000-24GB": 444.4e12
|
39 |
+
},
|
40 |
"8bit":{
|
41 |
"NVIDIA-A100-PCIe-80GB": 1248e12,
|
42 |
"NVIDIA-A100-SXM-80GB": 1248e12,
|
|
|
98 |
gpu_stats = []
|
99 |
|
100 |
gpu_info_pattern = re.compile(r'(\d+)C\s+P\d+\s+(\d+)W / \d+W\s+\|\s+(\d+)MiB / \d+MiB\s+\|\s+(\d+)%')
|
101 |
+
# gpu_name_pattern = re.compile(r'NVIDIA\s+([\w\s]+\d+(?:\s*GB)?)')
|
102 |
+
gpu_name_pattern = re.compile(r'NVIDIA\s+(RTX\s+)?([A-Z0-9]+)')
|
103 |
|
104 |
gpu_name = ""
|
105 |
for index in gpu_indices:
|
|
|
111 |
name_match = gpu_name_pattern.search(line)
|
112 |
gpu_info = {}
|
113 |
if name_match:
|
114 |
+
gpu_name = ''.join(filter(None, name_match.groups())).strip()
|
115 |
if match:
|
116 |
temp, power_usage, mem_usage, gpu_util = map(int, match.groups())
|
117 |
gpu_info.update({
|
|
|
215 |
gpus = GPUtil.getGPUs()
|
216 |
gpu = gpus[0]
|
217 |
name = gpu.name.replace(" ", "-")
|
|
|
218 |
memory_gb = round(gpu.memoryTotal / 1024)
|
219 |
memory = f"{memory_gb}GB"
|
220 |
+
|
221 |
+
for part in name.split('-'):
|
222 |
+
if part.endswith("GB") and part[:-2].isdigit():
|
223 |
+
name = name.replace(f"-{part}", "").replace(part, "")
|
224 |
+
|
225 |
formatted_name = f"{name}-{memory}"
|
226 |
+
|
227 |
return formatted_name
|
228 |
|
229 |
def get_peak_bw(gpu_name):
|
|
|
235 |
def transfer_precision2bytes(precision):
|
236 |
if precision == "float32":
|
237 |
return 4
|
238 |
+
elif precision in ["float16", "bfloat16"]:
|
239 |
return 2
|
240 |
elif precision == "8bit":
|
241 |
return 1
|