""" Export featgraph kernels to a shared library. """ import tvm from sddmm import sddmm_tree_reduction_gpu def get_sddmm_kernels_gpu(idtypes, dtypes): """ Parameters ---------- idtypes: List[str] Possible index types. dtypes: List[str] Possible data types. Returns ------- List[IRModule]: The list of IRModules. """ ret = [] # SDDMM Tree Reduction for dtype in dtypes: for idtype in idtypes: ret.append(sddmm_tree_reduction_gpu(idtype, dtype)) return ret if __name__ == "__main__": binary_path = "libfeatgraph_kernels.so" kernels = [] idtypes = ["int32", "int64"] dtypes = ["float16", "float64", "float32", "int32", "int64"] kernels += get_sddmm_kernels_gpu(idtypes, dtypes) # build kernels and export the module to libfeatgraph_kernels.so module = tvm.build(kernels, target="cuda", target_host="llvm") module.export_library(binary_path)