Process isolation and clean shader
A few APIs and command line options are added to support process isolation and clean shader. Change-Id: I98ad3fc9fc7429799a21798b7fca1c307de7f403
Este commit está contenido en:
cometido por
Shuzhou Liu
padre
1ae3a5b6cb
commit
7d2ab7970d
@@ -148,9 +148,9 @@ Command Modifiers:
|
||||
|
||||
```bash
|
||||
~$ amd-smi static --help
|
||||
usage: amd-smi static [-h] [-g GPU [GPU ...] | -U CPU [CPU ...]] [-a] [-b] [-V] [-d] [-v]
|
||||
[-c] [-B] [-r] [-p] [-l] [-u] [-s] [-i] [--json | --csv]
|
||||
[--file FILE] [--loglevel LEVEL]
|
||||
usage: amd-smi static [-h] [-g GPU [GPU ...]] [-a] [-b] [-V] [-d] [-v] [-c] [-B] [-r] [-p]
|
||||
[-l] [-P] [-x] [-s] [-u] [--json | --csv] [--file FILE]
|
||||
[--loglevel LEVEL]
|
||||
|
||||
If no GPU is specified, returns static information for all GPUs on the system.
|
||||
If no static argument is provided, all static information will be displayed.
|
||||
@@ -179,6 +179,7 @@ Static Arguments:
|
||||
-r, --ras Displays RAS features information
|
||||
-p, --partition Partition information
|
||||
-l, --limit All limit metric values (i.e. power and thermal limits)
|
||||
-s, --process-isolation The process isolation status
|
||||
-u, --numa All numa node information
|
||||
|
||||
CPU Arguments:
|
||||
@@ -474,13 +475,13 @@ Command Modifiers:
|
||||
```bash
|
||||
usage: amd-smi set [-h] (-g GPU [GPU ...] | -U CPU [CPU ...] | -O CORE [CORE ...]) [-f %]
|
||||
[-l LEVEL] [-P SETPROFILE] [-d SCLKMAX] [-C PARTITION] [-M PARTITION]
|
||||
[-o WATTS] [-p POLICY] [--cpu-pwr-limit PWR_LIMIT]
|
||||
[-o WATTS] [-p POLICY] [-i STATUS] [--cpu-pwr-limit PWR_LIMIT]
|
||||
[--cpu-xgmi-link-width MIN_WIDTH MAX_WIDTH]
|
||||
[--cpu-lclk-dpm-level NBIOID MIN_DPM MAX_DPM] [--cpu-pwr-eff-mode MODE]
|
||||
[--cpu-gmi3-link-width MIN_LW MAX_LW] [--cpu-pcie-link-rate LINK_RATE]
|
||||
[--cpu-df-pstate-range MAX_PSTATE MIN_PSTATE] [--cpu-enable-apb]
|
||||
[--cpu-disable-apb DF_PSTATE] [--soc-boost-limit BOOST_LIMIT]
|
||||
[--core-boost-limit BOOST_LIMIT] [--json | --csv] [--file FILE]
|
||||
[--core-boost-limit BOOST_LIMIT] [-c] [--json | --csv] [--file FILE]
|
||||
[--loglevel LEVEL]
|
||||
|
||||
A GPU must be specified to set a configuration.
|
||||
@@ -514,6 +515,8 @@ Set Arguments:
|
||||
-o, --power-cap WATTS Set power capacity limit
|
||||
-p, --dpm-policy POLICY_ID Set the GPU DPM policy using policy id
|
||||
-x, --xgmi-plpd POLICY_ID Set the GPU XGMI per-link power down policy using policy id
|
||||
-i, --process-isolation STATUS Enable or disable the GPU process isolation: 0 for disable and 1 for enable.
|
||||
-c, --clear-sram-data Clear the GPU SRAM data
|
||||
|
||||
CPU Arguments:
|
||||
--cpu-pwr-limit PWR_LIMIT Set power limit for the given socket. Input parameter is power limit value.
|
||||
|
||||
@@ -245,7 +245,7 @@ class AMDSMICommands():
|
||||
def static_gpu(self, args, multiple_devices=False, gpu=None, asic=None, bus=None, vbios=None,
|
||||
limit=None, driver=None, ras=None, board=None, numa=None, vram=None,
|
||||
cache=None, partition=None, dfc_ucode=None, fb_info=None, num_vf=None,
|
||||
policy=None, xgmi_plpd=None):
|
||||
policy=None, xgmi_plpd=None, process_isolation=None):
|
||||
"""Get Static information for target gpu
|
||||
|
||||
Args:
|
||||
@@ -270,6 +270,7 @@ class AMDSMICommands():
|
||||
num_vf (bool, optional): Value override for args.num_vf. Defaults to None.
|
||||
policy (bool, optional): Value override for args.policy. Defaults to None.
|
||||
xgmi_plpd (bool, optional): Value override for args.xgmi_plpd. Defaults to None.
|
||||
process_isolation (bool, optional): Value override for args.process_isolation. Defaults to None.
|
||||
Returns:
|
||||
None: Print output via AMDSMILogger to destination
|
||||
"""
|
||||
@@ -306,8 +307,10 @@ class AMDSMICommands():
|
||||
args.policy = policy
|
||||
if xgmi_plpd:
|
||||
args.xgmi_plpd = xgmi_plpd
|
||||
current_platform_args += ["ras", "limit", "partition", "policy", "xgmi_plpd"]
|
||||
current_platform_values += [args.ras, args.limit, args.partition, args.policy, args.xgmi_plpd]
|
||||
if process_isolation:
|
||||
args.process_isolation = process_isolation
|
||||
current_platform_args += ["ras", "limit", "partition", "policy", "xgmi_plpd", "process_isolation"]
|
||||
current_platform_values += [args.ras, args.limit, args.partition, args.policy, args.xgmi_plpd, args.process_isolation]
|
||||
|
||||
if self.helpers.is_linux() and not self.helpers.is_virtual_os():
|
||||
if numa:
|
||||
@@ -643,6 +646,16 @@ class AMDSMICommands():
|
||||
logging.debug("Failed to get xgmi_plpd info for gpu %s | %s", gpu_id, e.get_error_info())
|
||||
|
||||
static_dict['xgmi_plpd'] = policy_info
|
||||
if 'process_isolation' in current_platform_args:
|
||||
if args.process_isolation:
|
||||
try:
|
||||
status = amdsmi_interface.amdsmi_get_gpu_process_isolation(args.gpu)
|
||||
status = "Enabled" if status else "Disabled"
|
||||
except amdsmi_exception.AmdSmiLibraryException as e:
|
||||
status = "N/A"
|
||||
logging.debug("Failed to process isolation for gpu %s | %s", gpu_id, e.get_error_info())
|
||||
|
||||
static_dict['process_isolation'] = status
|
||||
if 'numa' in current_platform_args:
|
||||
if args.numa:
|
||||
try:
|
||||
@@ -779,7 +792,7 @@ class AMDSMICommands():
|
||||
bus=None, vbios=None, limit=None, driver=None, ras=None,
|
||||
board=None, numa=None, vram=None, cache=None, partition=None,
|
||||
dfc_ucode=None, fb_info=None, num_vf=None, cpu=None,
|
||||
interface_ver=None, policy=None, xgmi_plpd = None):
|
||||
interface_ver=None, policy=None, xgmi_plpd = None, process_isolation=None):
|
||||
"""Get Static information for target gpu and cpu
|
||||
|
||||
Args:
|
||||
@@ -804,6 +817,7 @@ class AMDSMICommands():
|
||||
interface_ver (bool, optional): Value override for args.interface_ver. Defaults to None
|
||||
policy (bool, optional): Value override for args.policy. Defaults to None.
|
||||
xgmi_plpd (bool, optional): Value override for args.xgmi_plpd. Defaults to None.
|
||||
process_isolation (bool, optional): Value override for args.process_isolation. Defaults to None.
|
||||
Raises:
|
||||
IndexError: Index error if gpu list is empty
|
||||
|
||||
@@ -829,7 +843,8 @@ class AMDSMICommands():
|
||||
gpu_args_enabled = False
|
||||
gpu_attributes = ["asic", "bus", "vbios", "limit", "driver", "ras",
|
||||
"board", "numa", "vram", "cache", "partition",
|
||||
"dfc_ucode", "fb_info", "num_vf", "policy", "xgmi_plpd"]
|
||||
"dfc_ucode", "fb_info", "num_vf", "policy", "xgmi_plpd",
|
||||
"process_isolation"]
|
||||
for attr in gpu_attributes:
|
||||
if hasattr(args, attr):
|
||||
if getattr(args, attr):
|
||||
@@ -859,7 +874,8 @@ class AMDSMICommands():
|
||||
self.static_gpu(args, multiple_devices, gpu, asic,
|
||||
bus, vbios, limit, driver, ras,
|
||||
board, numa, vram, cache, partition,
|
||||
dfc_ucode, fb_info, num_vf, policy)
|
||||
dfc_ucode, fb_info, num_vf, policy,
|
||||
process_isolation)
|
||||
elif self.helpers.is_amd_hsmp_initialized(): # Only CPU is initialized
|
||||
if args.cpu == None:
|
||||
args.cpu = self.cpu_handles
|
||||
@@ -873,7 +889,8 @@ class AMDSMICommands():
|
||||
self.static_gpu(args, multiple_devices, gpu, asic,
|
||||
bus, vbios, limit, driver, ras,
|
||||
board, numa, vram, cache, partition,
|
||||
dfc_ucode, fb_info, num_vf, policy, xgmi_plpd)
|
||||
dfc_ucode, fb_info, num_vf, policy, xgmi_plpd,
|
||||
process_isolation)
|
||||
|
||||
|
||||
def firmware(self, args, multiple_devices=False, gpu=None, fw_list=True):
|
||||
@@ -3326,7 +3343,8 @@ class AMDSMICommands():
|
||||
|
||||
def set_gpu(self, args, multiple_devices=False, gpu=None, fan=None, perf_level=None,
|
||||
profile=None, perf_determinism=None, compute_partition=None,
|
||||
memory_partition=None, power_cap=None, dpm_policy=None, xgmi_plpd = None):
|
||||
memory_partition=None, power_cap=None, dpm_policy=None, xgmi_plpd = None,
|
||||
process_isolation=None, clear_sram_data = None):
|
||||
"""Issue reset commands to target gpu(s)
|
||||
|
||||
Args:
|
||||
@@ -3342,7 +3360,8 @@ class AMDSMICommands():
|
||||
power_cap (int, optional): Value override for args.power_cap. Defaults to None.
|
||||
dpm_policy (int, optional): Value override for args.dpm_policy. Defaults to None.
|
||||
xgmi_plpd (int, optional): Value override for args.xgmi_plpd. Defaults to None.
|
||||
|
||||
process_isolation (int, optional): Value override for args.process_isolation. Defaults to None.
|
||||
clear_sram_data (int, optional): Value override for args.clear_sram_data. Defaults to None.
|
||||
Raises:
|
||||
ValueError: Value error if no gpu value is provided
|
||||
IndexError: Index error if gpu list is empty
|
||||
@@ -3371,6 +3390,10 @@ class AMDSMICommands():
|
||||
args.dpm_policy = dpm_policy
|
||||
if xgmi_plpd:
|
||||
args.xgmi_plpd = xgmi_plpd
|
||||
if process_isolation:
|
||||
args.process_isolation = process_isolation
|
||||
if clear_sram_data:
|
||||
args.clear_sram_data = clear_sram_data
|
||||
# Handle No GPU passed
|
||||
if args.gpu == None:
|
||||
raise ValueError('No GPU provided, specific GPU target(s) are needed')
|
||||
@@ -3389,9 +3412,11 @@ class AMDSMICommands():
|
||||
args.compute_partition,
|
||||
args.memory_partition,
|
||||
args.perf_determinism is not None,
|
||||
args.power_cap,
|
||||
args.dpm_policy,
|
||||
args.xgmi_plpd]):
|
||||
args.power_cap is not None,
|
||||
args.dpm_policy is not None,
|
||||
args.xgmi_plpd is not None,
|
||||
args.process_isolation is not None,
|
||||
args.clear_sram_data]):
|
||||
command = " ".join(sys.argv[1:])
|
||||
raise AmdSmiRequiredCommandException(command, self.logger.format)
|
||||
|
||||
@@ -3455,25 +3480,6 @@ class AMDSMICommands():
|
||||
raise PermissionError('Command requires elevation') from e
|
||||
raise ValueError(f"Unable to set memory partition to {args.memory_partition} on {gpu_string}") from e
|
||||
self.logger.store_output(args.gpu, 'memorypartition', f"Successfully set memory partition to {args.memory_partition}")
|
||||
|
||||
if args.dpm_policy:
|
||||
try:
|
||||
amdsmi_interface.amdsmi_set_dpm_policy(args.gpu, args.dpm_policy)
|
||||
except amdsmi_exception.AmdSmiLibraryException as e:
|
||||
if e.get_error_code() == amdsmi_interface.amdsmi_wrapper.AMDSMI_STATUS_NO_PERM:
|
||||
raise PermissionError('Command requires elevation') from e
|
||||
raise ValueError(f"Unable to set dpm policy to {args.dpm_policy} on {gpu_string}") from e
|
||||
self.logger.store_output(args.gpu, 'dpmpolicy', f"Successfully set dpm policy to id {args.dpm_policy}")
|
||||
|
||||
if args.xgmi_plpd:
|
||||
try:
|
||||
amdsmi_interface.amdsmi_set_xgmi_plpd(args.gpu, args.xgmi_plpd)
|
||||
except amdsmi_exception.AmdSmiLibraryException as e:
|
||||
if e.get_error_code() == amdsmi_interface.amdsmi_wrapper.AMDSMI_STATUS_NO_PERM:
|
||||
raise PermissionError('Command requires elevation') from e
|
||||
raise ValueError(f"Unable to set XGMI policy to {args.xgmi_plpd} on {gpu_string}") from e
|
||||
self.logger.store_output(args.gpu, 'xgmiplpd', f"Successfully set per-link power down policy to id {args.dpm_policy}")
|
||||
|
||||
if isinstance(args.power_cap, int):
|
||||
try:
|
||||
power_cap_info = amdsmi_interface.amdsmi_get_power_cap_info(args.gpu)
|
||||
@@ -3499,6 +3505,48 @@ class AMDSMICommands():
|
||||
if min_power_cap == 0:
|
||||
min_power_cap = 1
|
||||
self.logger.store_output(args.gpu, 'powercap', f"Power cap must be between {min_power_cap} and {max_power_cap}")
|
||||
if isinstance(args.dpm_policy, int):
|
||||
try:
|
||||
amdsmi_interface.amdsmi_set_dpm_policy(args.gpu, args.dpm_policy)
|
||||
except amdsmi_exception.AmdSmiLibraryException as e:
|
||||
if e.get_error_code() == amdsmi_interface.amdsmi_wrapper.AMDSMI_STATUS_NO_PERM:
|
||||
raise PermissionError('Command requires elevation') from e
|
||||
raise ValueError(f"Unable to set dpm policy to {args.dpm_policy} on {gpu_string}") from e
|
||||
self.logger.store_output(args.gpu, 'dpmpolicy', f"Successfully set dpm policy to id {args.dpm_policy}")
|
||||
if isinstance(args.xgmi_plpd, int):
|
||||
try:
|
||||
amdsmi_interface.amdsmi_set_xgmi_plpd(args.gpu, args.xgmi_plpd)
|
||||
except amdsmi_exception.AmdSmiLibraryException as e:
|
||||
if e.get_error_code() == amdsmi_interface.amdsmi_wrapper.AMDSMI_STATUS_NO_PERM:
|
||||
raise PermissionError('Command requires elevation') from e
|
||||
raise ValueError(f"Unable to set XGMI policy to {args.xgmi_plpd} on {gpu_string}") from e
|
||||
self.logger.store_output(args.gpu, 'xgmiplpd', f"Successfully set per-link power down policy to id {args.dpm_policy}")
|
||||
if isinstance(args.process_isolation, int):
|
||||
status_string = "Enabled" if args.process_isolation else "Disabled"
|
||||
result = f"Requested process isolation to {status_string}" # This should not print out
|
||||
try:
|
||||
current_status = amdsmi_interface.amdsmi_get_gpu_process_isolation(args.gpu)
|
||||
if current_status == args.process_isolation:
|
||||
result = f"Process isolation is already {status_string}"
|
||||
else:
|
||||
amdsmi_interface.amdsmi_set_gpu_process_isolation(args.gpu, args.process_isolation)
|
||||
result = f"Successfully set process isolation to {status_string}"
|
||||
except amdsmi_exception.AmdSmiLibraryException as e:
|
||||
if e.get_error_code() == amdsmi_interface.amdsmi_wrapper.AMDSMI_STATUS_NO_PERM:
|
||||
raise PermissionError('Command requires elevation') from e
|
||||
raise ValueError(f"Unable to set process isolation to {status_string} on {gpu_string}") from e
|
||||
|
||||
self.logger.store_output(args.gpu, 'process_isolation', result)
|
||||
if args.clear_sram_data:
|
||||
try:
|
||||
# Only 1 can be used for now.
|
||||
amdsmi_interface.amdsmi_set_gpu_clear_sram_data(args.gpu, 1)
|
||||
result = 'Successfully clear GPU SRAM data'
|
||||
except amdsmi_exception.AmdSmiLibraryException as e:
|
||||
if e.get_error_code() == amdsmi_interface.amdsmi_wrapper.AMDSMI_STATUS_NO_PERM:
|
||||
raise PermissionError('Command requires elevation') from e
|
||||
raise ValueError(f"Unable to clear SRAM data on GPU {gpu_id}") from e
|
||||
self.logger.store_output(args.gpu, 'clear_sram_data', result)
|
||||
|
||||
if multiple_devices:
|
||||
self.logger.store_multiple_device_output()
|
||||
@@ -3513,7 +3561,8 @@ class AMDSMICommands():
|
||||
cpu=None, cpu_pwr_limit=None, cpu_xgmi_link_width=None, cpu_lclk_dpm_level=None,
|
||||
cpu_pwr_eff_mode=None, cpu_gmi3_link_width=None, cpu_pcie_link_rate=None,
|
||||
cpu_df_pstate_range=None, cpu_enable_apb=None, cpu_disable_apb=None,
|
||||
soc_boost_limit=None, core=None, core_boost_limit=None, dpm_policy=None, xgmi_plpd=None):
|
||||
soc_boost_limit=None, core=None, core_boost_limit=None, dpm_policy=None, xgmi_plpd=None,
|
||||
process_isolation=None, clear_sram_data=None):
|
||||
"""Issue reset commands to target gpu(s)
|
||||
|
||||
Args:
|
||||
@@ -3544,7 +3593,8 @@ class AMDSMICommands():
|
||||
core_boost_limit (int, optional): Value override for args.core_boost_limit. Defaults to None
|
||||
dpm_policy (int, optional): Value override for args.dpm_policy. Defaults to None.
|
||||
xgmi_plpd (int, optional): Value override for args.xgmi_plpd. Defaults to None.
|
||||
|
||||
process_isolation (int, optional): Value override for args.process_isolation. Defaults to None.
|
||||
clear_sram_data (int, optional): Value override for args.clear_sram_data. Defaults to None.
|
||||
Raises:
|
||||
ValueError: Value error if no gpu value is provided
|
||||
IndexError: Index error if gpu list is empty
|
||||
@@ -3564,7 +3614,8 @@ class AMDSMICommands():
|
||||
# Check if a GPU argument has been set
|
||||
gpu_args_enabled = False
|
||||
gpu_attributes = ["fan", "perf_level", "profile", "perf_determinism", "compute_partition",
|
||||
"memory_partition", "power_cap", "dpm_policy", "xgmi_plpd"]
|
||||
"memory_partition", "power_cap", "dpm_policy", "xgmi_plpd", "process_isolation",
|
||||
"clear_sram_data"]
|
||||
for attr in gpu_attributes:
|
||||
if hasattr(args, attr):
|
||||
if getattr(args, attr) is not None:
|
||||
@@ -3620,7 +3671,8 @@ class AMDSMICommands():
|
||||
self.logger.clear_multiple_devices_ouput()
|
||||
self.set_gpu(args, multiple_devices, gpu, fan, perf_level,
|
||||
profile, perf_determinism, compute_partition,
|
||||
memory_partition, power_cap, dpm_policy, xgmi_plpd)
|
||||
memory_partition, power_cap, dpm_policy, xgmi_plpd,
|
||||
process_isolation, clear_sram_data)
|
||||
elif self.helpers.is_amd_hsmp_initialized(): # Only CPU is initialized
|
||||
if args.cpu == None and args.core == None:
|
||||
raise ValueError('No CPU or CORE provided, specific target(s) are needed')
|
||||
@@ -3639,7 +3691,8 @@ class AMDSMICommands():
|
||||
self.logger.clear_multiple_devices_ouput()
|
||||
self.set_gpu(args, multiple_devices, gpu, fan, perf_level,
|
||||
profile, perf_determinism, compute_partition,
|
||||
memory_partition, power_cap, dpm_policy, xgmi_plpd)
|
||||
memory_partition, power_cap, dpm_policy, xgmi_plpd,
|
||||
process_isolation, clear_sram_data)
|
||||
|
||||
|
||||
def reset(self, args, multiple_devices=False, gpu=None, gpureset=None,
|
||||
@@ -3660,7 +3713,6 @@ class AMDSMICommands():
|
||||
compute_partition (bool, optional): Value override for args.compute_partition. Defaults to None.
|
||||
memory_partition (bool, optional): Value override for args.memory_partition. Defaults to None.
|
||||
power_cap (int, optional): Value override for args.power_cap. Defaults to None.
|
||||
|
||||
Raises:
|
||||
ValueError: Value error if no gpu value is provided
|
||||
IndexError: Index error if gpu list is empty
|
||||
|
||||
@@ -545,6 +545,7 @@ class AMDSMIParser(argparse.ArgumentParser):
|
||||
board_help = "All board information"
|
||||
dpm_policy_help = "The available DPM policy"
|
||||
xgmi_plpd_help = "The available XGMI per-link power down policy"
|
||||
process_isolation_help = "The process isolation status"
|
||||
|
||||
# Options arguments help text for Hypervisors and Baremetal
|
||||
ras_help = "Displays RAS features information"
|
||||
@@ -586,6 +587,7 @@ class AMDSMIParser(argparse.ArgumentParser):
|
||||
static_parser.add_argument('-l', '--limit', action='store_true', required=False, help=limit_help)
|
||||
static_parser.add_argument('-P', '--policy', action='store_true', required=False, help=dpm_policy_help)
|
||||
static_parser.add_argument('-x', '--xgmi-plpd', action='store_true', required=False, help=xgmi_plpd_help)
|
||||
static_parser.add_argument('-R', '--process-isolation', action='store_true', required=False, help=process_isolation_help)
|
||||
|
||||
if self.helpers.is_linux() and not self.helpers.is_virtual_os():
|
||||
static_parser.add_argument('-u', '--numa', action='store_true', required=False, help=numa_help)
|
||||
@@ -967,8 +969,9 @@ class AMDSMIParser(argparse.ArgumentParser):
|
||||
set_compute_partition_help = f"Set one of the following the compute partition modes:\n\t{compute_partition_choices_str}"
|
||||
set_memory_partition_help = f"Set one of the following the memory partition modes:\n\t{memory_partition_choices_str}"
|
||||
set_power_cap_help = "Set power capacity limit"
|
||||
set_dpm_policy_help = f"Set the GPU DPM policy using policy id\n"
|
||||
set_xgmi_plpd_help = f"Set the GPU XGMI per-link power down policy using policy id\n"
|
||||
set_dpm_policy_help = "Set the GPU DPM policy using policy id\n"
|
||||
set_xgmi_plpd_help = "Set the GPU XGMI per-link power down policy using policy id\n"
|
||||
set_process_isolation_help = "Enable or disable the GPU process isolation: 0 for disable and 1 for enable.\n"
|
||||
|
||||
# Help text for CPU set options
|
||||
set_cpu_pwr_limit_help = "Set power limit for the given socket. Input parameter is power limit value."
|
||||
@@ -982,6 +985,7 @@ class AMDSMIParser(argparse.ArgumentParser):
|
||||
set_cpu_enable_apb_help = "Enables the DF p-state performance boost algorithm"
|
||||
set_cpu_disable_apb_help = "Disables the DF p-state performance boost algorithm. Input parameter is DFPstate (0-3)"
|
||||
set_soc_boost_limit_help = "Sets the boost limit for the given socket. Input parameter is socket BOOST_LIMIT value"
|
||||
run_gpu_clear_sram_data_help = f"Clear the GPU SRAM data\n"
|
||||
|
||||
# Help text for CPU Core set options
|
||||
set_core_boost_limit_help = "Sets the boost limit for the given core. Input parameter is core BOOST_LIMIT value"
|
||||
@@ -1006,6 +1010,8 @@ class AMDSMIParser(argparse.ArgumentParser):
|
||||
set_value_parser.add_argument('-o', '--power-cap', action='store', type=self._positive_int, required=False, help=set_power_cap_help, metavar='WATTS')
|
||||
set_value_parser.add_argument('-p', '--dpm-policy', action='store', required=False, type=self._not_negative_int, help=set_dpm_policy_help, metavar='POLICY_ID')
|
||||
set_value_parser.add_argument('-x', '--xgmi-plpd', action='store', required=False, type=self._not_negative_int, help=set_xgmi_plpd_help, metavar='POLICY_ID')
|
||||
set_value_parser.add_argument('-R', '--process-isolation', action='store', choices=[0,1], type=self._not_negative_int, required=False, help=set_process_isolation_help, metavar='STATUS')
|
||||
set_value_parser.add_argument('-c', '--clear-sram-data', action='store_true', required=False, help=run_gpu_clear_sram_data_help)
|
||||
|
||||
if self.helpers.is_amd_hsmp_initialized():
|
||||
# Optional CPU Args
|
||||
|
||||
Referencia en una nueva incidencia
Block a user