report clock locks
This commit is contained in:
parent
2f62997012
commit
f170a0fdd5
|
@ -194,6 +194,21 @@ async def async_read_file(path):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
#print(f"Error reading file {path}: {e}")
|
#print(f"Error reading file {path}: {e}")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def extract_last_setcore_setmem(input_string):
|
||||||
|
try:
|
||||||
|
setcore_pattern = r'--setcore\s+((?:\d+\s*)+)(?=\D|$)'
|
||||||
|
setmem_pattern = r'--setmem\s+((?:\d+\s*)+)(?=\D|$)'
|
||||||
|
|
||||||
|
setcore_matches = re.findall(setcore_pattern, input_string)
|
||||||
|
setmem_matches = re.findall(setmem_pattern, input_string)
|
||||||
|
|
||||||
|
last_setcore = [int(num) for num in setcore_matches[-1].split()] if setcore_matches else []
|
||||||
|
last_setmem = [int(num) for num in setmem_matches[-1].split()] if setmem_matches else []
|
||||||
|
|
||||||
|
return last_setcore, last_setmem
|
||||||
|
except Exception as e:
|
||||||
|
return [[], []]
|
||||||
|
|
||||||
async def hive_parse_config(file_content):
|
async def hive_parse_config(file_content):
|
||||||
conf = {}
|
conf = {}
|
||||||
|
@ -228,7 +243,10 @@ async def hive_load_configs(default_power_limits, static_config):
|
||||||
# Parse wallet config
|
# Parse wallet config
|
||||||
clore_config = None
|
clore_config = None
|
||||||
get_oc_config = False
|
get_oc_config = False
|
||||||
|
fs_mem_lock = []
|
||||||
|
fs_core_lock = []
|
||||||
if wallet_conf_content:
|
if wallet_conf_content:
|
||||||
|
fs_core_lock, fs_mem_lock = extract_last_setcore_setmem(wallet_conf_content)
|
||||||
for wallet_conf_line in wallet_conf_content.split('\n'):
|
for wallet_conf_line in wallet_conf_content.split('\n'):
|
||||||
wallet_conf_line = wallet_conf_line.strip()
|
wallet_conf_line = wallet_conf_line.strip()
|
||||||
if wallet_conf_line[:1] != "#" and '=' in wallet_conf_line:
|
if wallet_conf_line[:1] != "#" and '=' in wallet_conf_line:
|
||||||
|
@ -259,6 +277,8 @@ async def hive_load_configs(default_power_limits, static_config):
|
||||||
try:
|
try:
|
||||||
core_offset = None
|
core_offset = None
|
||||||
mem_offset = None
|
mem_offset = None
|
||||||
|
core_lock = None
|
||||||
|
mem_lock = None
|
||||||
pl_static = None
|
pl_static = None
|
||||||
for nvidia_conf_line in nvidia_oc.split('\n'):
|
for nvidia_conf_line in nvidia_oc.split('\n'):
|
||||||
nvidia_conf_line = nvidia_conf_line.strip()
|
nvidia_conf_line = nvidia_conf_line.strip()
|
||||||
|
@ -272,14 +292,30 @@ async def hive_load_configs(default_power_limits, static_config):
|
||||||
mem_offset = [math.floor(num / 2) for num in validate_and_convert(value, -2000, 6000, adjust_bounds=True)]
|
mem_offset = [math.floor(num / 2) for num in validate_and_convert(value, -2000, 6000, adjust_bounds=True)]
|
||||||
elif key=="PLIMIT":
|
elif key=="PLIMIT":
|
||||||
pl_static = validate_and_convert(value, 1, 1500, adjust_bounds=True)
|
pl_static = validate_and_convert(value, 1, 1500, adjust_bounds=True)
|
||||||
|
elif key=="LCLOCK":
|
||||||
|
core_lock = validate_and_convert(value, 0, 12000, adjust_bounds=True)
|
||||||
|
elif key=="LMEM":
|
||||||
|
mem_lock = validate_and_convert(value, 0, 32000, adjust_bounds=True)
|
||||||
|
|
||||||
if core_offset or mem_offset or pl_static:
|
if len(fs_mem_lock)>0:
|
||||||
|
mem_lock = fs_mem_lock
|
||||||
|
if len(fs_core_lock)>0:
|
||||||
|
core_lock = fs_core_lock
|
||||||
|
|
||||||
|
#print(mem_lock, core_lock)
|
||||||
|
|
||||||
|
if core_offset or mem_offset or pl_static or mem_lock or core_lock:
|
||||||
for gpu_idx, default_pl in enumerate(default_power_limits):
|
for gpu_idx, default_pl in enumerate(default_power_limits):
|
||||||
out_oc_config[str(gpu_idx)] = {
|
out_oc_config[str(gpu_idx)] = {
|
||||||
"core": get_number_or_last(core_offset, gpu_idx) if core_offset else 0,
|
"core": get_number_or_last(core_offset, gpu_idx) if core_offset else 0,
|
||||||
"mem": get_number_or_last(mem_offset, gpu_idx) if mem_offset else 0,
|
"mem": get_number_or_last(mem_offset, gpu_idx) if mem_offset else 0,
|
||||||
"pl": get_number_or_last(pl_static, gpu_idx) if pl_static else default_pl
|
"pl": get_number_or_last(pl_static, gpu_idx) if pl_static else default_pl
|
||||||
}
|
}
|
||||||
|
if type(core_lock)==list and len(core_lock)>0:
|
||||||
|
out_oc_config[str(gpu_idx)]["core_lock"] = get_number_or_last(core_lock, gpu_idx)
|
||||||
|
if type(mem_lock)==list and len(mem_lock)>0:
|
||||||
|
out_oc_config[str(gpu_idx)]["mem_lock"] = get_number_or_last(mem_lock, gpu_idx)
|
||||||
|
|
||||||
except Exception as oc_info_e:
|
except Exception as oc_info_e:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue