dmlc / dgl

Python package built to ease deep learning on graph, on top of existing DL frameworks.
http://dgl.ai
Apache License 2.0
13.55k stars 3.02k forks source link

Build failed on `s390x`(LinuxONE) platfrom #6487

Open hv0905 opened 1 year ago

hv0905 commented 1 year ago

🐛 Bug

I've just tried to run a model built with DGL on an IBM s390x machine (aka LinuxONE), since DGL doesn't provide a official build for this platform, I tried to build myself.

To Reproduce

Steps to reproduce the behavior:

  1. Prepare environment & start building by following https://docs.dgl.ai/install/index.html#install-from-source:
    bash script/create_dev_conda_env.sh -c -p 3.10 -o <path/to/yml>
    # Manually install dependencies..
    bash script/build_dgl.sh -c
  2. Build failed with the following error:
    image
error: ‘Write’ is not a member of ‘dmlc::serializer::UndefinedSerializerFor<dgl::serialize::GraphType>’
   63 |     Else::Write(strm, data);
      |     ~~~~~~~~~~~^~~~~~~~~~~~

Expected behavior

DGL built successfully.

Environment

Additional context

Since S390X is a big-endian architecture, I wonder if there are any code that doesn't support big-endian exists. Maybe I can workaround it by disabling these components.

Any help would be thanked!

hzpeng commented 1 year ago

I reproduced the same errors. Could someone help to have a look at it ? Thanks very much.

dgl/third_party/dmlc-core/include/dmlc/./serializer.h:63:16: error: 'Write' is not a member of 'dmlc::serializer::UndefinedSerializerFor' dgl/third_party/dmlc-core/include/dmlc/./serializer.h:66:22: error: 'Read' is not a member of 'dmlc::serializer::UndefinedSerializerFor'

frozenbugs commented 1 year ago

Hi @hv0905 , we don't have big-endian expert in the team and don't have a handy machine to reproduce the error. If you can help us identify the issue, that will be very helpful.