code: def test_async_compile(self):
      async_compile = AsyncCompile()
      compiled_res = async_compile.cuda(_SOURCE_CODE, "so")
      async_compile.wait(globals())
  
      # Test load and call functions in .so.
      x = torch.rand(5).float().cuda()
      y = torch.rand(5).float().cuda()
      a = 2.0
      expected_y = a * x + y
      res = compiled_res.result().saxpy(
          ctypes.c_int(5),
          ctypes.c_float(a),
          ctypes.c_void_p(x.data_ptr()),
          ctypes.c_void_p(y.data_ptr()),
      )
      torch.testing.assert_close(y, expected_y)
  
file_path: pytorch/test/inductor/test_cudacodecache.py
imports: import ctypes
  import unittest
  import torch
  from torch._inductor import config
  from torch._inductor.codecache import AsyncCompile, CUDACodeCache
  from torch._inductor.codegen.cuda.cuda_env import nvcc_exist
  from torch._inductor.exc import CUDACompileError
  from torch.testing._internal.common_utils import TestCase
label_desc: Use image node_id 3 for calling the TestCUDACodeCache obj's underlying member method code with example usage: obj.test_async_compile() without return types