code: def test_dev_util(backend_fw):
      with BackendHandler.update_backend(backend_fw) as ivy_backend:
          devices = _get_possible_devices()
          for device in devices:
              # The internally called psutil.cpu_percent() has a unique behavior where it
              # returns 0 as usage when run the second time in same line so simple
              # assert psutil.cpu_percent() == ivy.dev_util(device) isn't possible
              if "cpu" in device:
                  assert 100 >= ivy_backend.dev_util(device) >= 0
                  # Comparing CPU utilization using top. Two percentiles won't be directly
                  # equal but absolute difference should be below a safe threshold
                  assert (
                      abs(
                          get_cpu_percent()
                          - ivy_backend.dev_util(device)
                      )
                      < 10
                  )
              elif "gpu" in device:
                  handle = ivy_backend.functional.ivy.device._get_nvml_gpu_handle(
                      device
                  )
                  assert (
                      ivy_backend.dev_util(device)
                      == pynvml.nvmlDeviceGetUtilizationRates(
                          handle
                      ).gpu
                  )
  
imports: import io
  import multiprocessing
  import os
  import re
  import shutil
  import sys
  import warnings
  import numpy
  import psutil
  import subprocess
  from hypothesis import strategies, assume
  import ivy
  import ivy_tests.test_ivy.helpers
  import ivy_tests.test_ivy.helpers.globals
  from ivy_tests.test_ivy.helpers import handle_test, BackendHandler
label_desc: Use image node_id 14 for calling a global function with example usage: test_dev_util(backend_fw) without return types