code: def test_async_vs_local(self, host, client):
      weights = torch.randn(4096, 4096)
  
      def linear(inputs):
          return (weights * inputs).sum(-1)
  
      host.define("linear", linear)
  
      inputs = torch.randn(16, 4096)
      for _ in range(2):
          start = time.time()
          local_result = sum(
              linear(inputs[i]).sum().item()
              for i in range(inputs.size(0))
          )
          print("base time ", time.time() - start)
  
      for _ in range(4):
          futures = []
          start = time.time()
          for i in range(inputs.size(0)):
              futures.append(client.async_("host", "linear", inputs[i]))
          result = sum(i.result().sum().item() for i in futures)
          print("async time ", time.time() - start)
          assert abs(result - local_result) < 0.1
  
      host.debug_info()
      client.debug_info()
  
file_path: moolib/test/unit/test_tensors.py
imports: import time
  import warnings
  import torch
  import pytest
  import moolib
label_desc: Use image node_id 6 for calling the TestMoolibSpeeds obj's underlying member method code with example usage: obj.test_async_vs_local(host, client) and returns: unknown