Swap byte-order in binary serializer to support big-endian arch (#5813)
* fixed some endian issues * Use dmlc::ByteSwap() to simplify code * Fix lint check * [CI] Add test for s390x * Download latest CMake on s390x * Fix a bug in my code * Save magic number in dmatrix with byteswap on big-endian machine * Save version in binary with byteswap on big-endian machine * Load scalar with byteswap in MetaInfo * Add a debugging message * Handle arrays correctly when byteswapping * EOF can also be 255 * Handle magic number in MetaInfo carefully * Skip Tree.Load test for big-endian, since the test manually builds little-endian binary model * Handle missing packages in Python tests * Don't use boto3 in model compatibility tests * Add s390 Docker file for local testing * Add model compatibility tests * Add R compatibility test * Revert "Add R compatibility test" This reverts commit c2d2bdcb7dbae133cbb927fcd20f7e83ee2b18a8. Co-authored-by: Qi Zhang <q.zhang@ibm.com> Co-authored-by: Hyunsu Cho <chohyu01@cs.washington.edu>
This commit is contained in:
@@ -88,3 +88,19 @@ if [ ${TASK} == "cmake_test" ]; then
|
||||
cd ..
|
||||
rm -rf build
|
||||
fi
|
||||
|
||||
if [ ${TASK} == "s390x_test" ]; then
|
||||
set -e
|
||||
|
||||
# Build and run C++ tests
|
||||
rm -rf build
|
||||
mkdir build && cd build
|
||||
cmake .. -DCMAKE_VERBOSE_MAKEFILE=ON -DGOOGLE_TEST=ON -DUSE_OPENMP=ON -DUSE_DMLC_GTEST=ON -GNinja
|
||||
time ninja -v
|
||||
./testxgboost
|
||||
|
||||
# Run model compatibility tests
|
||||
cd ..
|
||||
python3 -m pip install --user pytest hypothesis
|
||||
PYTHONPATH=./python-package python3 -m pytest --fulltrace -v -rxXs tests/python/ -k 'test_model'
|
||||
fi
|
||||
|
||||
@@ -20,6 +20,15 @@ if [ ${TASK} == "cmake_test" ] && [ ${TRAVIS_OS_NAME} == "osx" ]; then
|
||||
sudo softwareupdate -i "Command Line Tools (macOS High Sierra version 10.13) for Xcode-9.3"
|
||||
fi
|
||||
|
||||
if [ ${TASK} == "s390x_test" ] && [ ${TRAVIS_CPU_ARCH} == "s390x" ]; then
|
||||
sudo snap install cmake --channel=3.17/beta --classic
|
||||
export PATH=/snap/bin:${PATH}
|
||||
cmake --version
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y --no-install-recommends tar unzip wget git build-essential ninja-build \
|
||||
time python3 python3-pip python3-numpy python3-scipy python3-sklearn r-base
|
||||
fi
|
||||
|
||||
if [ ${TASK} == "python_sdist_test" ] && [ ${TRAVIS_OS_NAME} == "linux" ]; then
|
||||
wget https://github.com/Kitware/CMake/releases/download/v3.17.1/cmake-3.17.1-Linux-x86_64.sh
|
||||
sudo bash cmake-3.17.1-Linux-x86_64.sh --prefix=/usr/local --skip-license
|
||||
|
||||
Reference in New Issue
Block a user