in src/local_gpu_verifier/src/verifier/cc_admin.py [0:0]
def collect_gpu_evidence(nonce: str, no_gpu_mode=False, standalone_mode=True):
"""Method to Collect GPU Evidence used by Attestation SDK
Args:
nonce (String): Hex string representation of Nonce
no_gpu_mode (Boolean): Represents if the function should run in No GPU (test) mode
standalone_mode (Boolean): Represents if the function should run in Standalone mode
Returns:
list of NVMLHandler objects containing GPU Evidence
"""
info_log.debug("collect_gpu_evidence called")
evidence_list = []
try:
if no_gpu_mode:
evidence_nonce = BaseSettings.NONCE
number_of_available_gpus = NvmlHandlerTest.get_number_of_gpus()
else:
init_nvml(standalone_mode=standalone_mode)
evidence_nonce = CcAdminUtils.validate_and_extract_nonce(nonce)
number_of_available_gpus = NvmlHandler.get_number_of_gpus()
if number_of_available_gpus == 0:
err_msg = "No GPU found"
info_log.critical(err_msg)
raise NoGpuFoundError(err_msg)
info_log.info(f"Number of GPUs available : {number_of_available_gpus}")
for i in range(number_of_available_gpus):
info_log.info(f"Fetching GPU {i} information from GPU driver.")
if no_gpu_mode:
gpu_info_obj = NvmlHandlerTest(settings=BaseSettings)
else:
gpu_info_obj = NvmlHandler(index=i, nonce=evidence_nonce, settings=BaseSettings)
evidence_list.append(gpu_info_obj)
info_log.info("All GPU Evidences fetched successfully")
except Exception as error:
info_log.error(error)
finally:
return evidence_list