diff --git a/cuda_bindings/cuda/bindings/_nvml.pyx b/cuda_bindings/cuda/bindings/_nvml.pyx index 8248d5acfb..d9bddcc4bc 100644 --- a/cuda_bindings/cuda/bindings/_nvml.pyx +++ b/cuda_bindings/cuda/bindings/_nvml.pyx @@ -1187,6 +1187,395 @@ class RUSD(_IntEnum): POLL_PCI = 0x20 # Enable RUSD polling on pci group POLL_FAN = 0x40 # Enable RUSD polling on fan group POLL_PROC_UTIL = 0x80 # Enable RUSD polling on process utilization group + POLL_ALL = 0xFFFFFFFFFFFFFFFF # Enable RUSD polling on all groups + + +class PowerMizerMode(_IntEnum): + POWER_MIZER_MODE_ADAPTIVE = 0 # Adjust GPU clocks based on GPU utilization + POWER_MIZER_MODE_PREFER_MAXIMUM_PERFORMANCE = 1 # Raise GPU clocks to favor maximum performance, to the extent that thermal and other constraints allow + POWER_MIZER_MODE_AUTO = 2 # PowerMizer mode is driver controlled + POWER_MIZER_MODE_PREFER_CONSISTENT_PERFORMANCE = 3 # lock to GPU base clocks + + +class DeviceArch(_IntEnum): + DEVICE_ARCH_KEPLER = 2 + DEVICE_ARCH_MAXWELL = 3 + DEVICE_ARCH_PASCAL = 4 + DEVICE_ARCH_VOLTA = 5 + DEVICE_ARCH_TURING = 6 + DEVICE_ARCH_AMPERE = 7 + DEVICE_ARCH_ADA = 8 + DEVICE_ARCH_HOPPER = 9 + DEVICE_ARCH_BLACKWELL = 10 + DEVICE_ARCH_UNKNOWN = 0xFFFFFFFF + + +class BusType(_IntEnum): + BUS_TYPE_UNKNOWN = 0 + BUS_TYPE_PCI = 1 + BUS_TYPE_PCIE = 2 + BUS_TYPE_FPCI = 3 + BUS_TYPE_AGP = 4 + + +class FanControlPolicy(_IntEnum): + FAN_CONTROL_POLICY_TEMPERATURE_CONTINUOUS_SW = 0 # Temperature-controlled fan policy + FAN_CONTROL_POLICY_MANUAL = 1 # Manual fan control policy + + +class PowerSource(_IntEnum): + POWER_SOURCE_AC = 0x00000000 + POWER_SOURCE_BATTERY = 0x00000001 + POWER_SOURCE_UNDERSIZED = 0x00000002 + + +class PcieLinkMaxSpeed(_IntEnum): + PCIE_LINK_MAX_SPEED_INVALID = 0x00000000 + PCIE_LINK_MAX_SPEED_2500MBPS = 0x00000001 + PCIE_LINK_MAX_SPEED_5000MBPS = 0x00000002 + PCIE_LINK_MAX_SPEED_8000MBPS = 0x00000003 + PCIE_LINK_MAX_SPEED_16000MBPS = 0x00000004 + PCIE_LINK_MAX_SPEED_32000MBPS = 0x00000005 + PCIE_LINK_MAX_SPEED_64000MBPS = 0x00000006 + + +class AdaptiveClockingInfoStatus(_IntEnum): + ADAPTIVE_CLOCKING_INFO_STATUS_DISABLED = 0x00000000 + ADAPTIVE_CLOCKING_INFO_STATUS_ENABLED = 0x00000001 + + +MAX_GPU_UTILIZATIONS = 8 + + +class PcieAtomicsCap(_IntEnum): + PCIE_ATOMICS_CAP_FETCHADD32 = 0x01 + PCIE_ATOMICS_CAP_FETCHADD64 = 0x02 + PCIE_ATOMICS_CAP_SWAP32 = 0x04 + PCIE_ATOMICS_CAP_SWAP64 = 0x08 + PCIE_ATOMICS_CAP_CAS32 = 0x10 + PCIE_ATOMICS_CAP_CAS64 = 0x20 + PCIE_ATOMICS_CAP_CAS128 = 0x40 + PCIE_ATOMICS_OPS_MAX = 7 + + +class PowerScope(_IntEnum): + POWER_SCOPE_GPU = 0 + POWER_SCOPE_MODULE = 1 + POWER_SCOPE_MEMORY = 2 + + +# Need "Enum" suffix to disambiguate from nvmlGridLicenseExpiry_t +class GridLicenseExpiryEnum(_IntEnum): + GRID_LICENSE_EXPIRY_NOT_AVAILABLE = 0 + GRID_LICENSE_EXPIRY_INVALID = 1 + GRID_LICENSE_EXPIRY_VALID = 2 + GRID_LICENSE_EXPIRY_NOT_APPLICABLE = 3 + GRID_LICENSE_EXPIRY_PERMANENT = 4 + + +GRID_LICENSE_FEATURE_MAX_COUNT = 3 + + +class VgpuVirtualizationCapMigration(_IntEnum): + VGPU_VIRTUALIZATION_CAP_MIGRATION_NO = 0x0 + VGPU_VIRTUALIZATION_CAP_MIGRATION_YES = 0x1 + + +class VgpuPgpuVirtualizationCapMigration(_IntEnum): + VGPU_PGPU_VIRTUALIZATION_CAP_MIGRATION_NO = 0x0 + VGPU_PGPU_VIRTUALIZATION_CAP_MIGRATION_YES = 0x1 + + +class VgpuSchedulerPolicy(_IntEnum): + VGPU_SCHEDULER_POLICY_UNKNOWN = 0 + VGPU_SCHEDULER_POLICY_BEST_EFFORT = 1 + VGPU_SCHEDULER_POLICY_EQUAL_SHARE = 2 + VGPU_SCHEDULER_POLICY_FIXED_SHARE = 3 + SUPPORTED_VGPU_SCHEDULER_POLICY_COUNT = 3 + + +class VgpuSchedulerArr(_IntEnum): + VGPU_SCHEDULER_ARR_DEFAULT = 0 + VGPU_SCHEDULER_ARR_DISABLE = 1 + VGPU_SCHEDULER_ARR_ENABLE = 2 + + +class VgpuSchedulerEngineType(_IntEnum): + VGPU_SCHEDULER_ENGINE_TYPE_GRAPHICS = 1 + VGPU_SCHEDULER_ENGINE_TYPE_NVENC1 = 2 + + +class GridLicenseState(_IntEnum): + GRID_LICENSE_STATE_UNKNOWN = 0 + GRID_LICENSE_STATE_UNINITIALIZED = 1 + GRID_LICENSE_STATE_UNLICENSED_UNRESTRICTED = 2 + GRID_LICENSE_STATE_UNLICENSED_RESTRICTED = 3 + GRID_LICENSE_STATE_UNLICENSED = 4 + GRID_LICENSE_STATE_LICENSED = 5 + + +class NvlinkLowPowerThresholdUnit(_IntEnum): + NVLINK_LOW_POWER_THRESHOLD_UNIT_100US = 0x0 + NVLINK_LOW_POWER_THRESHOLD_UNIT_50US = 0x1 + + +class NvlinkPowerState(_IntEnum): + NVLINK_POWER_STATE_HIGH_SPEED = 0x0 + NVLINK_POWER_STATE_LOW_SPEED = 0x1 + + +NVLINK_LOW_POWER_THRESHOLD_MIN = 0x1 + + +class NvlinkLowPowerThreshold(_IntEnum): + NVLINK_LOW_POWER_THRESHOLD_MAX = 0x1FFF + NVLINK_LOW_POWER_THRESHOLD_RESET = 0xFFFFFFFF + NVLINK_LOW_POWER_THRESHOLD_DEFAULT = 0xFFFFFFFF + + +class C2CPowerState(_IntEnum): + C2C_POWER_STATE_FULL_POWER = 0 + C2C_POWER_STATE_LOW_POWER = 1 + + +class EventType(_IntEnum): + EVENT_TYPE_NONE = 0x0000000000000000 + EVENT_TYPE_SINGLE_BIT_ECC_ERROR = 0x0000000000000001 + EVENT_TYPE_DOUBLE_BIT_ECC_ERROR = 0x0000000000000002 + EVENT_TYPE_PSTATE = 0x0000000000000004 + EVENT_TYPE_XID_CRITICAL_ERROR = 0x0000000000000008 + EVENT_TYPE_CLOCK = 0x0000000000000010 + EVENT_TYPE_POWER_SOURCE_CHANGE = 0x0000000000000080 + EVENT_MIG_CONFIG_CHANGE = 0x0000000000000100 + EVENT_TYPE_SINGLE_BIT_ECC_ERROR_STORM = 0x0000000000000200 + EVENT_TYPE_DRAM_RETIREMENT_EVENT = 0x0000000000000400 + EVENT_TYPE_DRAM_RETIREMENT_FAILURE = 0x0000000000000800 + EVENT_TYPE_NON_FATAL_POISON_ERROR = 0x0000000000001000 + EVENT_TYPE_FATAL_POISON_ERROR = 0x0000000000002000 + EVENT_TYPE_GPU_UNAVAILABLE_ERROR = 0x0000000000004000 + EVENT_TYPE_GPU_RECOVERY_ACTION = 0x0000000000008000 + + +class SystemEventType(_IntEnum): + SYSTEM_EVENT_TYPE_GPU_DRIVER_UNBIND = 0x0000000000000001 + SYSTEM_EVENT_TYPE_GPU_DRIVER_BIND = 0x0000000000000002 + + +class ClocksEvent(_IntEnum): + CLOCKS_EVENT_REASON_GPU_IDLE = 0x0000000000000001 + CLOCKS_EVENT_REASON_APPLICATIONS_CLOCKS_SETTING = 0x0000000000000002 + CLOCKS_THROTTLE_REASON_USER_DEFINED_CLOCKS = 0x0000000000000002 + CLOCKS_EVENT_REASON_SW_POWER_CAP = 0x0000000000000004 + CLOCKS_THROTTLE_REASON_HW_SLOWDOWN = 0x0000000000000008 + CLOCKS_EVENT_REASON_SYNC_BOOST = 0x0000000000000010 + CLOCKS_EVENT_REASON_SW_THERMAL_SLOWDOWN = 0x0000000000000020 + CLOCKS_THROTTLE_REASON_HW_THERMAL_SLOWDOWN = 0x0000000000000040 + CLOCKS_THROTTLE_REASON_HW_POWER_BRAKE_SLOWDOWN = 0x0000000000000080 + CLOCKS_EVENT_REASON_DISPLAY_CLOCK_SETTING = 0x0000000000000100 + CLOCKS_EVENT_REASON_NONE = 0x0000000000000000 + CLOCKS_THROTTLE_REASON_GPU_IDLE = 0x0000000000000001 + CLOCKS_THROTTLE_REASON_APPLICATIONS_CLOCKS_SETTING = 0x0000000000002 + CLOCKS_THROTTLE_REASON_SYNC_BOOST = 0x00000000000010 + CLOCKS_THROTTLE_REASON_SW_POWER_CAP = 0x00000000000004 + CLOCKS_THROTTLE_REASON_SW_THERMAL_SLOWDOWN = 0x00000000000020 + CLOCKS_THROTTLE_REASON_DISPLAY_CLOCK_SETTING = 0x00000000000100 + CLOCKS_THROTTLE_REASON_NONE = 0x0000000000000000 + + +class EncoderQuery(_IntEnum): + ENCODER_QUERY_H264 = 0x00 + ENCODER_QUERY_HEVC = 0x01 + ENCODER_QUERY_AV1 = 0x02 + ENCODER_QUERY_UNKNOWN = 0xFF + + +class NvFBCSessionFlag(_IntEnum): + NVFBC_SESSION_FLAG_DIFFMAP_ENABLED = 0x00000001 + NVFBC_SESSION_FLAG_CLASSIFICATIONMAP_ENABLED = 0x00000002 + NVFBC_SESSION_FLAG_CAPTURE_WITH_WAIT_NO_WAIT = 0x00000004 + NVFBC_SESSION_FLAG_CAPTURE_WITH_WAIT_INFINITE = 0x00000008 + NVFBC_SESSION_FLAG_CAPTURE_WITH_WAIT_TIMEOUT = 0x00000010 + + +class CCSystemCpuCaps(_IntEnum): + CC_SYSTEM_CPU_CAPS_NONE = 0 + CC_SYSTEM_CPU_CAPS_AMD_SEV = 1 + CC_SYSTEM_CPU_CAPS_INTEL_TDX = 2 + CC_SYSTEM_CPU_CAPS_AMD_SEV_SNP = 3 + CC_SYSTEM_CPU_CAPS_AMD_SNP_VTOM = 4 + + +class CCSystemGpus(_IntEnum): + CC_SYSTEM_GPUS_CC_NOT_CAPABLE = 0 + CC_SYSTEM_GPUS_CC_CAPABLE = 1 + + +class CCSystemDevtoolsMode(_IntEnum): + CC_SYSTEM_DEVTOOLS_MODE_OFF = 0 + CC_SYSTEM_DEVTOOLS_MODE_ON = 1 + + +class CCSystemEnvironment(_IntEnum): + CC_SYSTEM_ENVIRONMENT_UNAVAILABLE = 0 + CC_SYSTEM_ENVIRONMENT_SIM = 1 + CC_SYSTEM_ENVIRONMENT_PROD = 2 + + +class CCSystemFeature(_IntEnum): + CC_SYSTEM_FEATURE_DISABLED = 0 + CC_SYSTEM_FEATURE_ENABLED = 1 + + +class CCSystemMultiGpu(_IntEnum): + CC_SYSTEM_MULTIGPU_NONE = 0 + CC_SYSTEM_MULTIGPU_PROTECTED_PCIE = 1 + CC_SYSTEM_MULTIGPU_NVLE = 2 + + +class CCAcceptingClientRequests(_IntEnum): + CC_ACCEPTING_CLIENT_REQUESTS_FALSE = 0 + CC_ACCEPTING_CLIENT_REQUESTS_TRUE = 1 + + +class GpuFabricState(_IntEnum): + GPU_FABRIC_STATE_NOT_SUPPORTED = 0 + GPU_FABRIC_STATE_NOT_STARTED = 1 + GPU_FABRIC_STATE_IN_PROGRESS = 2 + GPU_FABRIC_STATE_COMPLETED = 3 + + +class GpuFabricHealthMaskDegradedBw(_IntEnum): + GPU_FABRIC_HEALTH_MASK_DEGRADED_BW_NOT_SUPPORTED = 0 + GPU_FABRIC_HEALTH_MASK_DEGRADED_BW_TRUE = 1 + GPU_FABRIC_HEALTH_MASK_DEGRADED_BW_FALSE = 2 + GPU_FABRIC_HEALTH_MASK_SHIFT_DEGRADED_BW = 0 + GPU_FABRIC_HEALTH_MASK_WIDTH_DEGRADED_BW = 0x3 + + +class GpuFabricHealthMaskRouteRecovery(_IntEnum): + GPU_FABRIC_HEALTH_MASK_ROUTE_RECOVERY_NOT_SUPPORTED = 0 + GPU_FABRIC_HEALTH_MASK_ROUTE_RECOVERY_TRUE = 1 + GPU_FABRIC_HEALTH_MASK_ROUTE_RECOVERY_FALSE = 2 + GPU_FABRIC_HEALTH_MASK_SHIFT_ROUTE_RECOVERY = 2 + GPU_FABRIC_HEALTH_MASK_WIDTH_ROUTE_RECOVERY = 0x3 + + +class GpuFabricHealthMaskRouteUnhealthy(_IntEnum): + GPU_FABRIC_HEALTH_MASK_ROUTE_UNHEALTHY_NOT_SUPPORTED = 0 + GPU_FABRIC_HEALTH_MASK_ROUTE_UNHEALTHY_TRUE = 1 + GPU_FABRIC_HEALTH_MASK_ROUTE_UNHEALTHY_FALSE = 2 + GPU_FABRIC_HEALTH_MASK_SHIFT_ROUTE_UNHEALTHY = 4 + GPU_FABRIC_HEALTH_MASK_WIDTH_ROUTE_UNHEALTHY = 0x3 + + +class GpuFabricHealthMaskAccessTimeout(_IntEnum): + GPU_FABRIC_HEALTH_MASK_ACCESS_TIMEOUT_NOT_SUPPORTED = 0 + GPU_FABRIC_HEALTH_MASK_ACCESS_TIMEOUT_TRUE = 1 + GPU_FABRIC_HEALTH_MASK_ACCESS_TIMEOUT_FALSE = 2 + GPU_FABRIC_HEALTH_MASK_SHIFT_ACCESS_TIMEOUT = 6 + GPU_FABRIC_HEALTH_MASK_WIDTH_ACCESS_TIMEOUT = 0x3 + + +class GpuFabricHealthMaskIncorrectConfiguration(_IntEnum): + GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIGURATION_NOT_SUPPORTED = 0 + GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIGURATION_NONE = 1 + GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIGURATION_INCORRECT_SYSGUID = 2 + GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIGURATION_INCORRECT_CHASSIS_SN = 3 + GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIGRUATION_NO_PARTITION = 4 + GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIGURATION_INSUFFICIENT_NVLINKS = 5 + GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIGURATION_INCOMPATIBLE_GPU_FW = 6 + GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIGURATION_INVALID_LOCATION = 7 + GPU_FABRIC_HEALTH_MASK_SHIFT_INCORRECT_CONFIGURATION = 8 + GPU_FABRIC_HEALTH_MASK_WIDTH_INCORRECT_CONFIGURATION = 0xf + + +class GpuFabricHealthSummary(_IntEnum): + GPU_FABRIC_HEALTH_SUMMARY_NOT_SUPPORTED = 0 + GPU_FABRIC_HEALTH_SUMMARY_HEALTHY = 1 + GPU_FABRIC_HEALTH_SUMMARY_UNHEALTHY = 2 + GPU_FABRIC_HEALTH_SUMMARY_LIMITED_CAPACITY = 3 + + +class InitFlag(_IntEnum): + INIT_FLAG_NO_GPUS = 1 + INIT_FLAG_NO_ATTACH = 2 + + +class NvlinkState(_IntEnum): + NVLINK_STATE_INACTIVE = 0x0 + NVLINK_STATE_ACTIVE = 0x1 + NVLINK_STATE_SLEEP = 0x2 + + +class NvlinkFirmwareUcodeType(_IntEnum): + NVLINK_FIRMWARE_UCODE_TYPE_MSE = 0x1 + NVLINK_FIRMWARE_UCODE_TYPE_NETIR = 0x2 + NVLINK_FIRMWARE_UCODE_TYPE_NETIR_UPHY = 0x3 + NVLINK_FIRMWARE_UCODE_TYPE_NETIR_CLN = 0x4 + NVLINK_FIRMWARE_UCODE_TYPE_NETIR_DLN = 0x5 + + +class DeviceMig(_IntEnum): + DEVICE_MIG_DISABLE = 0 + DEVICE_MIG_ENABLE = 1 + + +class GpuInstanceProfile(_IntEnum): + GPU_INSTANCE_PROFILE_1_SLICE = 0x0 + GPU_INSTANCE_PROFILE_2_SLICE = 0x1 + GPU_INSTANCE_PROFILE_3_SLICE = 0x2 + GPU_INSTANCE_PROFILE_4_SLICE = 0x3 + GPU_INSTANCE_PROFILE_7_SLICE = 0x4 + GPU_INSTANCE_PROFILE_8_SLICE = 0x5 + GPU_INSTANCE_PROFILE_6_SLICE = 0x6 + GPU_INSTANCE_PROFILE_1_SLICE_REV1 = 0x7 + GPU_INSTANCE_PROFILE_2_SLICE_REV1 = 0x8 + GPU_INSTANCE_PROFILE_1_SLICE_REV2 = 0x9 + GPU_INSTANCE_PROFILE_1_SLICE_GFX = 0x0A + GPU_INSTANCE_PROFILE_2_SLICE_GFX = 0x0B + GPU_INSTANCE_PROFILE_4_SLICE_GFX = 0x0C + GPU_INSTANCE_PROFILE_1_SLICE_NO_ME = 0x0D + GPU_INSTANCE_PROFILE_2_SLICE_NO_ME = 0x0E + GPU_INSTANCE_PROFILE_1_SLICE_ALL_ME = 0x0F + GPU_INSTANCE_PROFILE_2_SLICE_ALL_ME = 0x10 + GPU_INSTANCE_PROFILE_COUNT = 0x11 + + +class GpuInstanceProfileCaps(_IntEnum): + GPU_INSTANCE_PROFILE_CAPS_P2P = 0x1 + GPU_INSTANCE_PROFILE_CAPS_GFX = 0x2 + + +class ComputeInstanceProfileCaps(_IntEnum): + COMPUTE_INSTANCE_PROFILE_CAPS_GFX = 0x1 + + +class ComputeInstanceProfile(_IntEnum): + COMPUTE_INSTANCE_PROFILE_1_SLICE = 0x0 + COMPUTE_INSTANCE_PROFILE_2_SLICE = 0x1 + COMPUTE_INSTANCE_PROFILE_3_SLICE = 0x2 + COMPUTE_INSTANCE_PROFILE_4_SLICE = 0x3 + COMPUTE_INSTANCE_PROFILE_7_SLICE = 0x4 + COMPUTE_INSTANCE_PROFILE_8_SLICE = 0x5 + COMPUTE_INSTANCE_PROFILE_6_SLICE = 0x6 + COMPUTE_INSTANCE_PROFILE_1_SLICE_REV1 = 0x7 + COMPUTE_INSTANCE_PROFILE_COUNT = 0x8 + + +class ComputeInstanceEngineProfile(_IntEnum): + COMPUTE_INSTANCE_ENGINE_PROFILE_SHARED = 0x0 + COMPUTE_INSTANCE_ENGINE_PROFILE_COUNT = 0x1 + + +class PowerSmoothingProfileParam(_IntEnum): + POWER_SMOOTHING_PROFILE_PARAM_PERCENT_TMP_FLOOR = 0 + POWER_SMOOTHING_PROFILE_PARAM_RAMP_UP_RATE = 1 + POWER_SMOOTHING_PROFILE_PARAM_RAMP_DOWN_RATE = 2 + POWER_SMOOTHING_PROFILE_PARAM_RAMP_DOWN_HYSTERESIS = 3 + POWER_SMOOTHING_PROFILE_PARAM_SECONDARY_POWER_FLOOR = 4 + POWER_SMOOTHING_PROFILE_PARAM_PRIMARY_FLOOR_ACT_WIN_MULT = 5 + POWER_SMOOTHING_PROFILE_PARAM_PRIMARY_FLOOR_TAR_WIN_MULT = 6 + POWER_SMOOTHING_PROFILE_PARAM_PRIMARY_FLOOR_ACT_OFFSET = 7 ############################################################################### @@ -2180,6 +2569,17 @@ cdef class Memory_v2: raise ValueError("This Memory_v2 instance is read-only") self._ptr[0].total = val + @property + def reserved(self): + """int: """ + return self._ptr[0].reserved + + @reserved.setter + def reserved(self, val): + if self._readonly: + raise ValueError("This Memory_v2 instance is read-only") + self._ptr[0].reserved = val + @property def free(self): """int: """ @@ -2241,7 +2641,7 @@ cdef class Memory_v2: cdef _get_ba_r1memory_dtype_offsets(): cdef nvmlBAR1Memory_t pod = nvmlBAR1Memory_t() return _numpy.dtype({ - 'names': ['bar1total', 'bar1free', 'bar1_used'], + 'names': ['bar1_total', 'bar1_free', 'bar1_used'], 'formats': [_numpy.uint64, _numpy.uint64, _numpy.uint64], 'offsets': [ (&(pod.bar1Total)) - (&pod), @@ -2314,23 +2714,23 @@ cdef class BAR1Memory: setattr(self, key, val) @property - def bar1total(self): + def bar1_total(self): """int: """ return self._ptr[0].bar1Total - @bar1total.setter - def bar1total(self, val): + @bar1_total.setter + def bar1_total(self, val): if self._readonly: raise ValueError("This BAR1Memory instance is read-only") self._ptr[0].bar1Total = val @property - def bar1free(self): + def bar1_free(self): """int: """ return self._ptr[0].bar1Free - @bar1free.setter - def bar1free(self, val): + @bar1_free.setter + def bar1_free(self, val): if self._readonly: raise ValueError("This BAR1Memory instance is read-only") self._ptr[0].bar1Free = val