code: def compile_cuda_module(host_args):
      libname = (
          "_cext_gpu.lib"
          if sys.platform == "win32"
          else "lib_cext_gpu.a"
      )
      lib_out = "build/" + libname
      if not os.path.exists("build/"):
          os.makedirs("build/")
  
      _, nvcc = get_cuda_path()
  
      print("NVCC ==> ", nvcc)
      arch_flags = (
          "-arch=sm_37 "
          "-gencode=arch=compute_37,code=sm_37 "
          "-gencode=arch=compute_70,code=sm_70 "
          "-gencode=arch=compute_75,code=sm_75 "
          "-gencode=arch=compute_75,code=compute_75"
      )
      nvcc_command = (
          f"-allow-unsupported-compiler shap/cext/_cext_gpu.cu -lib -o {lib_out} "
          f"-Xcompiler {','.join(host_args)} "
          f"--include-path {sysconfig.get_path('include')} "
          "--std c++14 "
          "--expt-extended-lambda "
          f"--expt-relaxed-constexpr {arch_flags}"
      )
      print("Compiling cuda extension, calling nvcc with arguments:")
      print([nvcc] + nvcc_command.split(" "))
      subprocess.run([nvcc] + nvcc_command.split(" "), check=True)
      return "build", "_cext_gpu"
  
file_path: shap/setup.py
imports: import os
  import platform
  import subprocess
  import sys
  import sysconfig
  import numpy
  from packaging.version import Version, parse
  from setuptools import Extension, setup
label_desc: Use image node_id 3 for calling a global function with example usage: compile_cuda_module(host_args) and returns: str,  str