def METHOD_NAME() -> List[GPU]:
    try:
        output_json = subprocess.run(
            [
                "rocm-smi",
                "--showid",
                "--showuniqueid",
                "--json",
            ],
            check=True,
            stdout=subprocess.PIPE,
            stderr=subprocess.PIPE,
        ).stdout
    except FileNotFoundError:
        logging.info("rocm-smi not found")
        return []
    except Exception as e:
        logging.warning(f"rocm-smi error: {e}")
        return []
    try:
        output = json.loads(output_json)
    except Exception as e:
        logging.warning(f"failed to parse rocm-smi json output: {e}, content: {str(output_json)}")
        return []
    gpus = []
    for k, v in output.items():
        gpus.append(GPU(id=int(k[len("card") :]), uuid=v["Unique ID"], load=0, memoryUtil=0))
    logging.info(f"detected {len(gpus)} rocm gpus")
    return gpus