cylinbao / CacheSample

0 stars 0 forks source link

sos #1

Open song-yc123 opened 1 year ago

song-yc123 commented 1 year ago

Hello, I am a beginner, I am very interested in your CacheSample and would like to try to replicate your experiment in your paper Accelerating SpMM Kernel with Cache-First Edge Sampling for Graph Neural Networks, But I seem to have some problems. When I perform CacheSample/models/ogb/ogbn-arxiv/gcn/setup.sh I want to perform CacheSample/models/ogb/ogbn-arxiv/gcn/run_gcn.sh But there was an error

Traceback (most recent call last):
  File "gcn.py", line 8, in <module>
    import dgl
  File "/home/cos/anaconda3/envs/test/lib/python3.8/site-packages/dgl-0.6-py3.8-linux-x86_64.egg/dgl/__init__.py", line 14, in <module>
    from .backend import load_backend, backend_name
  File "/home/cos/anaconda3/envs/test/lib/python3.8/site-packages/dgl-0.6-py3.8-linux-x86_64.egg/dgl/backend/__init__.py", line 73, in <module>
    load_backend(get_preferred_backend())
  File "/home/cos/anaconda3/envs/test/lib/python3.8/site-packages/dgl-0.6-py3.8-linux-x86_64.egg/dgl/backend/__init__.py", line 23, in load_backend
    mod = importlib.import_module('.%s' % mod_name, __name__)
  File "/home/cos/anaconda3/envs/test/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/home/cos/anaconda3/envs/test/lib/python3.8/site-packages/dgl-0.6-py3.8-linux-x86_64.egg/dgl/backend/pytorch/__init__.py", line 1, in <module>
    from .tensor import *
  File "/home/cos/anaconda3/envs/test/lib/python3.8/site-packages/dgl-0.6-py3.8-linux-x86_64.egg/dgl/backend/pytorch/tensor.py", line 11, in <module>
    from ... import ndarray as nd
  File "/home/cos/anaconda3/envs/test/lib/python3.8/site-packages/dgl-0.6-py3.8-linux-x86_64.egg/dgl/ndarray.py", line 14, in <module>
    from ._ffi.object import register_object, ObjectBase
  File "/home/cos/anaconda3/envs/test/lib/python3.8/site-packages/dgl-0.6-py3.8-linux-x86_64.egg/dgl/_ffi/object.py", line 8, in <module>
    from .object_generic import ObjectGeneric, convert_to_object
  File "/home/cos/anaconda3/envs/test/lib/python3.8/site-packages/dgl-0.6-py3.8-linux-x86_64.egg/dgl/_ffi/object_generic.py", line 7, in <module>
    from .base import string_types
  File "/home/cos/anaconda3/envs/test/lib/python3.8/site-packages/dgl-0.6-py3.8-linux-x86_64.egg/dgl/_ffi/base.py", line 42, in <module>
    _LIB, _LIB_NAME = _load_lib()
  File "/home/cos/anaconda3/envs/test/lib/python3.8/site-packages/dgl-0.6-py3.8-linux-x86_64.egg/dgl/_ffi/base.py", line 34, in _load_lib
    lib = ctypes.CDLL(lib_path[0], ctypes.RTLD_GLOBAL)
  File "/home/cos/anaconda3/envs/test/lib/python3.8/ctypes/__init__.py", line 373, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: /home/cos/anaconda3/envs/test/lib/python3.8/site-packages/dgl-0.6-py3.8-linux-x86_64.egg/dgl/libdgl.so: undefined symbol: _ZN3dgl4aten7SpMMCsrILi2EifEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9_RKNS_8BcastOffERKNS0_9CSRMatrixENS_7runtime7NDArrayESH_SH_St6vectorISH_SaISH_EES9_iiif

There seems to be something wrong with void dgl::aten::SpMMCsr<2, int, float>(std::cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::cxx11::basic_string<char, std::char_traits, std::allocator > const&, dgl::BcastOff const&, dgl::aten::CSRMatrix const&, dgl::runtime::NDArray, dgl::runtime::NDArray, dgl::runtime::NDArray, std::vector<dgl::runtime::NDArray, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, int, int, int, float)

But the CacheSample/models/ogb/ogbn-arxiv/gcn/spmm.cu contains only

template void SpMMCsr<kDLGPU, int32_t, float>(
    const std::string& op, const std::string& reduce,
    const BcastOff& bcast, const CSRMatrix& csr,
    NDArray ufeat, NDArray efeat, NDArray out, std::vector<NDArray> out_aux,
    const int);
cylinbao commented 1 year ago

Hi, did you use the exact DGL commit in my repo? Also, make sure you run the python setup.py install at the right directory in your conda environment to install the updated DGL library.