dmlc/dgl

Build failed on `s390x`(LinuxONE) platfrom

Open

#6,487 opened on Oct 23, 2023

View on GitHub
 (2 comments) (0 reactions) (1 assignee)Python (12,665 stars) (2,928 forks)batch import
bug:unconfirmedhelp wanted

Description

🐛 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
  1. 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

  • DGL Version (e.g., 1.0): 1.1.2
  • Backend Library & Version (e.g., PyTorch 0.4.1, MXNet/Gluon 1.3):
  • OS (e.g., Linux): Ubuntu 22.04 on s390x
  • How you installed DGL (conda, pip, source): source
  • Build command you used (if compiling from source):
  • Python version: 3.10
  • GPU models and configuration (e.g. V100): none
  • My compiler version:
g++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

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!

Contributor guide