profile
viewpoint
Yutian Li hotpxl Stanford University High Stick, California https://yutian.li

dmlc/minpy 1118

NumPy interface with mixed backend execution

hotpxl/company-irony-c-headers 28

Company mode backend for C/C++ header files with Irony

hotpxl/corenlp-server 8

Server wrapper for Stanford CoreNLP

hotpxl/lazareth 5

Financial strategy website

gnocuil/thudhcp 4

DHCP client

hotpxl/cublas-benchmark 4

Benchmark for cuBLAS throughput

hotpxl/canonicalization-server 3

Canonicalization server

hotpxl/apm-counter 2

X extension to calculate APM

hotpxl/landfill 2

Garbage collector for C++

hotpxl/hotpxl.github.io 1

Introduction to myself

pull request commentapache/incubator-mxnet

Update Ubuntu images used on CI to 20.04

Jenkins CI successfully triggered : [unix-cpu, unix-gpu]

leezu

comment created time in 12 minutes

pull request commentapache/incubator-mxnet

Update Ubuntu images used on CI to 20.04

@mxnet-bot run ci [unix-cpu, unix-gpu]

leezu

comment created time in 12 minutes

issue openedapache/incubator-mxnet

out of memory during compilation on CI

CI is subject to out of memory errors if object is not in ccache. Similar to https://github.com/apache/incubator-mxnet/issues/18501

[2020-12-03T18:13:57.250Z] FAILED: CMakeFiles/mxnet.dir/src/operator/numpy/linalg/np_norm_forward.cc.o 

[2020-12-03T18:13:57.251Z] /usr/local/bin/ccache /usr/bin/c++  -DDMLC_CORE_USE_CMAKE -DDMLC_LOG_FATAL_THROW=1 -DDMLC_LOG_STACK_TRACE_SIZE=0 -DDMLC_MODERN_THREAD_LOCAL=0 -DDMLC_STRICT_CXX11 -DDMLC_USE_CXX11 -DDMLC_USE_CXX11=1 -DDMLC_USE_CXX14 -DMKL_ILP64 -DMSHADOW_INT64_TENSOR_SIZE=1 -DMSHADOW_IN_CXX11 -DMSHADOW_USE_CBLAS=0 -DMSHADOW_USE_CUDA=0 -DMSHADOW_USE_MKL=1 -DMSHADOW_USE_SSE -DMXNET_USE_BLAS_MKL=1 -DMXNET_USE_INTGEMM=1 -DMXNET_USE_LAPACK=1 -DMXNET_USE_LIBJPEG_TURBO=0 -DMXNET_USE_OPENCV=1 -DMXNET_USE_OPENMP=1 -DMXNET_USE_OPERATOR_TUNING=1 -DMXNET_USE_SIGNAL_HANDLER=1 -DMXNET_USE_TVM_OP=1 -D__USE_XOPEN2K8 -Dmxnet_EXPORTS -I/work/mxnet/include -I/work/mxnet/src -I/work/mxnet/3rdparty/tvm/nnvm/include -I/work/mxnet/3rdparty/tvm/include -I/work/mxnet/3rdparty/dmlc-core/include -I/work/mxnet/3rdparty/dlpack/include -I/work/mxnet/3rdparty/mshadow -I3rdparty/intgemm -I/work/mxnet/3rdparty/intgemm -I/work/mxnet/3rdparty/miniz -I3rdparty/dmlc-core/include -isystem /opt/intel/mkl/include -isystem /usr/include/opencv4 -D_GLIBCXX_ASSERTIONS  -Wall -Wno-sign-compare -O3 -g -fopenmp -O2 -g -DNDEBUG -fPIC   -Werror -Wno-error=unused-variable -Wno-unused-parameter -Wno-unknown-pragmas -Wno-unused-local-typedefs -msse3 -mf16c -fopenmp -std=gnu++17 -MD -MT CMakeFiles/mxnet.dir/src/operator/numpy/linalg/np_norm_forward.cc.o -MF CMakeFiles/mxnet.dir/src/operator/numpy/linalg/np_norm_forward.cc.o.d -o CMakeFiles/mxnet.dir/src/operator/numpy/linalg/np_norm_forward.cc.o -c /work/mxnet/src/operator/numpy/linalg/np_norm_forward.cc

[2020-12-03T18:13:57.251Z] c++: fatal error: Killed signal terminated program cc1plus

[2020-12-03T18:13:57.251Z] compilation terminated.

[2020-12-03T18:13:57.251Z] [363/888] Building CXX object CMakeFiles/mxnet.dir/src/operator/numpy/np_broadcast_reduce_op_value.cc.o

[2020-12-03T18:13:57.251Z] FAILED: CMakeFiles/mxnet.dir/src/operator/numpy/np_broadcast_reduce_op_value.cc.o 

[2020-12-03T18:13:57.251Z] /usr/local/bin/ccache /usr/bin/c++  -DDMLC_CORE_USE_CMAKE -DDMLC_LOG_FATAL_THROW=1 -DDMLC_LOG_STACK_TRACE_SIZE=0 -DDMLC_MODERN_THREAD_LOCAL=0 -DDMLC_STRICT_CXX11 -DDMLC_USE_CXX11 -DDMLC_USE_CXX11=1 -DDMLC_USE_CXX14 -DMKL_ILP64 -DMSHADOW_INT64_TENSOR_SIZE=1 -DMSHADOW_IN_CXX11 -DMSHADOW_USE_CBLAS=0 -DMSHADOW_USE_CUDA=0 -DMSHADOW_USE_MKL=1 -DMSHADOW_USE_SSE -DMXNET_USE_BLAS_MKL=1 -DMXNET_USE_INTGEMM=1 -DMXNET_USE_LAPACK=1 -DMXNET_USE_LIBJPEG_TURBO=0 -DMXNET_USE_OPENCV=1 -DMXNET_USE_OPENMP=1 -DMXNET_USE_OPERATOR_TUNING=1 -DMXNET_USE_SIGNAL_HANDLER=1 -DMXNET_USE_TVM_OP=1 -D__USE_XOPEN2K8 -Dmxnet_EXPORTS -I/work/mxnet/include -I/work/mxnet/src -I/work/mxnet/3rdparty/tvm/nnvm/include -I/work/mxnet/3rdparty/tvm/include -I/work/mxnet/3rdparty/dmlc-core/include -I/work/mxnet/3rdparty/dlpack/include -I/work/mxnet/3rdparty/mshadow -I3rdparty/intgemm -I/work/mxnet/3rdparty/intgemm -I/work/mxnet/3rdparty/miniz -I3rdparty/dmlc-core/include -isystem /opt/intel/mkl/include -isystem /usr/include/opencv4 -D_GLIBCXX_ASSERTIONS  -Wall -Wno-sign-compare -O3 -g -fopenmp -O2 -g -DNDEBUG -fPIC   -Werror -Wno-error=unused-variable -Wno-unused-parameter -Wno-unknown-pragmas -Wno-unused-local-typedefs -msse3 -mf16c -fopenmp -std=gnu++17 -MD -MT CMakeFiles/mxnet.dir/src/operator/numpy/np_broadcast_reduce_op_value.cc.o -MF CMakeFiles/mxnet.dir/src/operator/numpy/np_broadcast_reduce_op_value.cc.o.d -o CMakeFiles/mxnet.dir/src/operator/numpy/np_broadcast_reduce_op_value.cc.o -c /work/mxnet/src/operator/numpy/np_broadcast_reduce_op_value.cc

[2020-12-03T18:13:57.251Z] c++: fatal error: Killed signal terminated program cc1plus

https://jenkins.mxnet-ci.amazon-ml.com/blue/organizations/jenkins/mxnet-validation%2Funix-cpu/detail/PR-19588/12/pipeline

created time in 20 minutes

Pull request review commentapache/incubator-mxnet

Force static link to openblas on ci + add lapacke option for lapack

 RUN export DEBIAN_FRONTEND=noninteractive && \         autoconf \         gperf \         libb2-dev \-        libzstd-dev && \+        libzstd-dev \+        gfortran && \     rm -rf /var/lib/apt/lists/* +# Build OpenBLAS from source+RUN export LIBRARY_PATH=$LIBRARY_PATH:/usr/lib/gcc/x86_64-linux-gnu/7/ && \+    mkdir ~/openblas && \+    cd ~/openblas && \+    OPENBLAS_VERSION=0.3.10 && \+    wget \+        https://github.com/xianyi/OpenBLAS/archive/v${OPENBLAS_VERSION}.zip \+        -O openblas.zip && \+    unzip -q openblas.zip -d . && \+    cd OpenBLAS-${OPENBLAS_VERSION} && \+    CXX="clang++-6.0 -fPIC" CC="clang-6.0 -fPIC" make -j DYNAMIC_ARCH=1 DYNAMIC_OLDER=1 \+        USE_OPENMP=0 INTERFACE64=1 BINARY=64 && \+    make PREFIX=/usr/local/opt install && \

Can we use a more meaningful name than usr/local/opt? It will be very confusing to other developers to find two openblas installations. One in /usr/local and one in /usr/local/opt. For example, use /usr/local/openblas-gcc and /usr/local/openblas-clang?

Zha0q1

comment created time in 26 minutes

Pull request review commentapache/incubator-mxnet

Force static link to openblas on ci + add lapacke option for lapack

 RUN export DEBIAN_FRONTEND=noninteractive && \         autoconf \         gperf \         libb2-dev \-        libzstd-dev && \+        libzstd-dev \+        gfortran && \     rm -rf /var/lib/apt/lists/* +# Build OpenBLAS from source+RUN export LIBRARY_PATH=$LIBRARY_PATH:/usr/lib/gcc/x86_64-linux-gnu/7/ && \

Is the library path needed for clang?

Zha0q1

comment created time in 27 minutes

Pull request review commentapache/incubator-mxnet

Force static link to openblas on ci + add lapacke option for lapack

 cmake_dependent_option(USE_SSE "Build with x86 SSE instruction support" ON   "CMAKE_SYSTEM_PROCESSOR STREQUAL x86_64 OR CMAKE_SYSTEM_PROCESSOR STREQUAL amd64" OFF) option(USE_F16C "Build with x86 F16C instruction support" ON) # autodetects support if ON option(USE_LAPACK "Build with lapack support" ON)+option(USE_LAPACKE_INTERFACE "Use LAPACKE interface for lapack support" OFF)

You're later overwriting this option. Why expose it to the user in the first place?

Zha0q1

comment created time in 29 minutes

Pull request review commentapache/incubator-mxnet

Force static link to openblas on ci + add lapacke option for lapack

 elseif(BLAS STREQUAL "Open" OR BLAS STREQUAL "open")   add_definitions(-DMSHADOW_USE_CBLAS=1)   add_definitions(-DMSHADOW_USE_MKL=0)   add_definitions(-DMXNET_USE_BLAS_OPEN=1)+  if(NOT MSVC)+    # check if we need to link to omp+    execute_process(COMMAND ${CMAKE_NM} -g ${OpenBLAS_LIB}+                    COMMAND grep omp_get_num_threads+                    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}+                    OUTPUT_VARIABLE OPENBLAS_USES_OMP_OUT+                    RESULT_VARIABLE OPENBLAS_USES_OMP_RET)+    if(NOT OPENBLAS_USES_OMP_OUT STREQUAL "" AND NOT OPENBLAS_USES_OMP_RET AND NOT USE_OPENMP)+      message("Openblas uses OMP, automatically linking to it")+      find_package(OpenMP REQUIRED)+      message("OpenMP_CXX_LIBRARIES is ${OpenMP_CXX_LIBRARIES}")+      list(APPEND mshadow_LINKER_LIBS "${OpenMP_CXX_LIBRARIES}")+    endif()+    # check if we need to link to gfortran+    execute_process(COMMAND ${CMAKE_NM} -g ${OpenBLAS_LIB}+                    COMMAND grep gfortran+                    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}+                    OUTPUT_VARIABLE OPENBLAS_USES_GFORTRAN_OUT+                    RESULT_VARIABLE OPENBLAS_USES_GFORTRAN_RET)+    if(NOT OPENBLAS_USES_GFORTRAN_OUT STREQUAL "" AND NOT OPENBLAS_USES_GFORTRAN_RET)+      message("Openblas uses GFortran, automatically linking to it")+      file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/temp/CMakeLists.txt"+      "cmake_minimum_required(VERSION ${CMAKE_VERSION})+project(CheckFortran Fortran)+set(CMAKE_Fortran_COMPILER gfortran)+file(WRITE \"${CMAKE_CURRENT_BINARY_DIR}/temp/FortranDir.cmake\"+\"+set(FORTRAN_DIR \\\"\$\{CMAKE_Fortran_IMPLICIT_LINK_DIRECTORIES\}\\\")+\")+")+      execute_process(+        WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/temp/+        COMMAND ${CMAKE_COMMAND} .+      )+      set(FORTRAN_DIR "")+      include(build/temp/FortranDir.cmake)+      find_library(FORTRAN_LIB NAMES gfortran HINTS ${FORTRAN_DIR})+      message("FORTRAN_DIR is ${FORTRAN_DIR}")+      message("FORTRAN_LIB is ${FORTRAN_LIB}")+      list(APPEND mshadow_LINKER_LIBS ${FORTRAN_LIB})+      file(REMOVE_RECURSE "${CMAKE_CURRENT_BINARY_DIR}/temp/")+    endif()+    # check the lapack flavor of openblas+    include(CheckSymbolExists)+    check_symbol_exists(OPENBLAS_USE64BITINT "${OpenBLAS_INCLUDE_DIR}/openblas_config.h" OPENBLAS_ILP64)+    if(OPENBLAS_ILP64)+      message("Using ILP64 OpenBLAS")+      if(NOT USE_INT64_TENSOR_SIZE)+        message(FATAL_ERROR "Must set USE_INT64_TENSOR_SIZE=1 when using ILP64 OpenBLAS")+      endif()+    else()+      message("Using LP64 OpenBLAS")+    endif()+    if(EXISTS "${OpenBLAS_INCLUDE_DIR}/lapacke.h")+      message("Detected lapacke.h, automatically using the LAPACKE interface")+      set(USE_LAPACKE_INTERFACE ON CACHE BOOL "Use LAPACKE interface for lapack support" FORCE)+      if(OPENBLAS_ILP64)+        message("Automatically setting USE_ILP64_LAPACKE=1")

What's the use-case for manually setting USE_ILP64_LAPACKE? Ie. why is it exposed to the user? Should the large tensor option be already sufficient?

Zha0q1

comment created time in 31 minutes

push eventapache/incubator-mxnet-site

mxnet-ci

commit sha 3d128ca8be6e58f98627d7d0de5be903e4885e6d

Bump the publish timestamp.

view details

push time in 30 minutes

push eventapache/incubator-mxnet-site

mxnet-ci

commit sha 89ef827cc9e9dd97145d0bf1f97e05f6f4d2b43b

Publish triggered by CI

view details

push time in 30 minutes

issue commentdmlc/xgboost

XGBoost training with cupy result in much lower test-auc

I think we removed the check for consecutive memory at some point. Need to add it back.

hcho3

comment created time in 35 minutes

push eventdmlc/xgboost

Philip Hyunsu Cho

commit sha 4f70e140314dc084d70d8967d244dfb88ac9211b

Fix docstring of config.py to use correct versionadded (#6458)

view details

push time in 35 minutes

PR merged dmlc/xgboost

Fix docstring of config.py to use correct versionadded

Follow-up to #6414

The versionadded field of set_config should be 1.4.0, since global configuration won't be part of the upcoming 1.3.0 release.

+1 -1

1 comment

1 changed file

hcho3

pr closed time in 35 minutes

pull request commentdmlc/xgboost

Update the comments

Thanks for submitting the PR. I will try to follow up.

hzy001

comment created time in 36 minutes

pull request commentapache/incubator-mxnet

Force static link to openblas on ci + add lapacke option for lapack

Jenkins CI successfully triggered : [windows-gpu]

Zha0q1

comment created time in an hour

pull request commentapache/incubator-mxnet

Force static link to openblas on ci + add lapacke option for lapack

@mxnet-bot run ci [windows-gpu]

Zha0q1

comment created time in an hour

pull request commentdmlc/xgboost

[CI] Build a Python wheel for aarch64 platform

@hcho3, except a proper manylinux2014 wheel cannot dynamically link against that library as an implicit dependency according to PEP 599's manylinux policy. It should be packaged in the wheel. Most distros xgboost supports do not ship with libgomp.so by default as, Centos/RHEL for example do not.

hcho3

comment created time in an hour

issue openedapache/incubator-mxnet

protobuf version mismatch on CI

[2020-12-02T23:35:43.300Z] [libprotobuf FATAL google/protobuf/stubs/common.cc:78] This program was compiled against version 2.6.1 of the Protocol Buffer runtime library, which is not compatible with the installed version (3.0.0). Contact the program author for an update. If you compiled the program yourself, make sure that your headers are from the same version of Protocol Buffers as your link-time library. (Version verification failed in "/io/onnx/.setuptools-cmake-build/onnx/onnx_ONNX_REL_1_7-ml.pb.cc".)

During compile: https://jenkins.mxnet-ci.amazon-ml.com/blue/organizations/jenkins/mxnet-validation%2Funix-cpu/detail/PR-17794/17/pipeline During test runtime: https://jenkins.mxnet-ci.amazon-ml.com/blue/organizations/jenkins/mxnet-validation%2Funix-gpu/detail/PR-17794/10/pipeline

Looks like https://github.com/apache/incubator-mxnet/pull/19588 fixes the issue. But other PRs modifying the Dockerfiles are affected.

created time in an hour

push eventapache/incubator-mxnet

Ziyi Mu

commit sha d348e5d447c0d409b2e8f08593a00ae860bae31f

Remove obsolete six dependency (#19620)

view details

push time in 3 hours

PR merged apache/incubator-mxnet

Reviewers
[1.x] Remove six from docker dependencies pr-awaiting-review

Description

(Brief description on what this PR is about)

Checklist

Essentials

  • [ ] PR's title starts with a category (e.g. [BUGFIX], [MODEL], [TUTORIAL], [FEATURE], [DOC], etc)
  • [ ] Changes are complete (i.e. I finished coding on this PR)
  • [ ] All changes have test coverage
  • [ ] Code is well-documented

Changes

  • [ ] Feature1, tests, (and when applicable, API doc)
  • [ ] Feature2, tests, (and when applicable, API doc)

Comments

  • If this change is a backward incompatible change, why must this change be made.
  • Interesting edge cases to note here
+0 -1

1 comment

1 changed file

rondogency

pr closed time in 3 hours

push eventapache/incubator-mxnet-site

mxnet-ci

commit sha ccd7ff49f980af173408dcbb403aa179a1c99911

Bump the publish timestamp.

view details

push time in 6 hours

push eventapache/incubator-mxnet-site

mxnet-ci

commit sha 7ad6eb25dd612293e4d2d503c305ee5d727cfe15

Publish triggered by CI

view details

push time in 6 hours

issue commentapache/incubator-mxnet

libmxnet_predict.so runtime error

1.first, i use ndk21, android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin and export CC=armv7a-linux-androideabi23-clang
export CXX=armv7a-linux-androideabi23-clang++

2.then i build openblas, everything is ok 3. and then i build my libmxnet_predict.so, many issues come out, i solved them one by one

need to modify the 'makefile' in amalgamation, besides modify OpenBLAS path, need to change your export PATH to the android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin and exportCC=armv7a-linux-androideabi23-clang, and export XX=armv7a-linux-androideabi23-clang++, and add more include path in the CFLAGS: -I../include -I${TPARTYDIR}/dmlc-core/include -I${TPARTYDIR}/tvm/nnvm/include -I${TPARTYDIR}/mshadow -I${TPARTYDIR}/dlpack/include -I${TPARTYDIR}/tvm/nnvm -I${TPARTYDIR}/ps-lite/include, also need to add c++11 support in the CFLAGS, "LDFLAGS+= -Wl,--no-warn-mismatch -lm_hard" => LDFLAGS+= -Wl,--no-warn-mismatch -lm .... after 'amalgamation.py' in amalgamation add blacklist = [ 'x86intrin.h'] , successfully build

then i push the libmxnet_predict.so and the test program to the deviece it will run and failed in the thread_local variant which are is_train_ and is_recording_, so i change them directly to bool false, then the test program finnally work, but the result is different with PC, and it is definitely has something with the support with ARM i guess, so could you please help verify and fix this issue? my error log is : E/AndroidRuntime: FATAL EXCEPTION: main Process: com.tistory.webnautes.useopencvwithndk_build, PID: 17645 java.lang.UnsatisfiedLinkError: dlopen failed: library "E:/2020/WorkSpace/AndroidStudioProjects_backup/UseOpenCVwithndkbuild/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/libmxnet_predict.so" not found at java.lang.Runtime.loadLibrary(Runtime.java:372) at java.lang.System.loadLibrary(System.java:1076) at com.tistory.webnautes.useopencvwithndk_build.MainActivity.<clinit>(MainActivity.java:48) at java.lang.Class.newInstance(Native Method) at android.app.Instrumentation.newActivity(Instrumentation.java:1095) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3083) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349) at android.app.ActivityThread.access$1100(ActivityThread.java:221) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:158) at android.app.ActivityThread.main(ActivityThread.java:7224) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) I changed ndk version and api version... but error is same...

bryanlinnan

comment created time in 7 hours

pull request commentdmlc/xgboost

Fix docstring of config.py to use correct versionadded

Codecov Report

Merging #6458 (0e1b9aa) into master (fb56da5) will decrease coverage by 0.08%. The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #6458      +/-   ##
==========================================
- Coverage   80.15%   80.06%   -0.09%     
==========================================
  Files          13       13              
  Lines        3512     3512              
==========================================
- Hits         2815     2812       -3     
- Misses        697      700       +3     
Impacted Files Coverage Δ
python-package/xgboost/config.py 100.00% <ø> (ø)
python-package/xgboost/tracker.py 93.97% <0.00%> (-1.21%) :arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update fb56da5...0e1b9aa. Read the comment docs.

hcho3

comment created time in 7 hours

pull request commentdmlc/xgboost

Update the comments

Codecov Report

Merging #6457 (a75d025) into master (c2ba4fb) will increase coverage by 0.21%. The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #6457      +/-   ##
==========================================
+ Coverage   79.94%   80.15%   +0.21%     
==========================================
  Files          12       13       +1     
  Lines        3475     3512      +37     
==========================================
+ Hits         2778     2815      +37     
  Misses        697      697              
Impacted Files Coverage Δ
python-package/xgboost/config.py 100.00% <0.00%> (ø)
python-package/xgboost/dask.py 81.14% <0.00%> (+0.14%) :arrow_up:
python-package/xgboost/__init__.py 89.47% <0.00%> (+0.58%) :arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update c2ba4fb...a75d025. Read the comment docs.

hzy001

comment created time in 8 hours

PR opened dmlc/xgboost

Fix docstring of config.py to use correct versionadded

Follow-up to #6414

The versionadded field of set_config should be 1.4.0, since global configuration won't be part of the upcoming 1.3.0 release.

+1 -1

0 comment

1 changed file

pr created time in 9 hours

PR opened dmlc/xgboost

Update the comments

After upgrading XGBoost to the master version, I found that when I set the param num_col to 0 as usual in XGDMatrixCreateFromFile, it could not get the correct columns. Signed-off-by: Hao Ziyu haoziyu@qiyi.com

+1 -1

0 comment

1 changed file

pr created time in 10 hours

issue commentdmlc/xgboost

XGBoost training with cupy result in much lower test-auc

Specifying the C order explicitly removes the AUC drop.

X_train_cp = cupy.array(X_train, order='C')
y_train_cp = cupy.array(y_train, order='C')
X_test_cp = cupy.array(X_test, order='C')
y_test_cp = cupy.array(y_test, order='C')

Before:

[1]	Train-auc:0.52866	Test-auc:0.49754
[2]	Train-auc:0.53139	Test-auc:0.49610
[3]	Train-auc:0.53452	Test-auc:0.49580
[4]	Train-auc:0.53836	Test-auc:0.50016
[5]	Train-auc:0.54078	Test-auc:0.50107

After:

[1]	Train-auc:0.67841	Test-auc:0.72150
[2]	Train-auc:0.67978	Test-auc:0.72311
[3]	Train-auc:0.68177	Test-auc:0.72401
[4]	Train-auc:0.68281	Test-auc:0.72508
[5]	Train-auc:0.68402	Test-auc:0.72616
...
hcho3

comment created time in 10 hours

issue commentapache/incubator-mxnet

[RFC] MXNet: Improve the build with DNNL, MKL, and OpenMP.

Thank you @akarbown for opening this RFC. It LGTM overall. Some minor comments / questions below:

I think MKL_USE_ILP64 does not need to be exposed to the user and we may re-use the MXNet USE_INT64_TENSOR_SIZE flag. We should switch to USE_DNNL sooner rather than later.

If ILP64 is used, we may be forced to static link MKL, to avoid symbol conflicts with LP64 Blas libraries that could be loaded into the same process if users import MXNet and NumPy in the same Python process. cc @access2rohit @Zha0q1

To use Intel MKL BLAS, one can install it through apt or yum following the instructions from Intel: Installing Intel® Performance Libraries and Intel® Distribution for Python* Using APT Repository.

We also need to support the upstream Ubuntu MKL packages which are available from Ubuntu 20.04 https://packages.ubuntu.com/focal/intel-mkl In my preliminary trial, the following patch works to find Ubuntu intel-mkl package (and may allow us to delete MXNet's FindMKL.cmake):

modified   cmake/ChooseBlas.cmake
@@ -47,16 +47,15 @@ elseif(BLAS STREQUAL "Open" OR BLAS STREQUAL "open")
   add_definitions(-DMXNET_USE_BLAS_OPEN=1)
 elseif(BLAS STREQUAL "MKL" OR BLAS STREQUAL "mkl")
   if (USE_INT64_TENSOR_SIZE)
-    set(MKL_USE_ILP64 ON CACHE BOOL "enable using ILP64 in MKL" FORCE)
+    set(BLA_VENDOR Intel10_64ilp)
+    find_package(BLAS)
   else()
-    if(MKL_USE_ILP64)
-      message(FATAL_ERROR "MKL_USE_ILP64 cannot be set without USE_INT64_TENSOR_SIZE; "
-              "Please set USE_INT64_TENSOR_SIZE instead of MKL_USE_ILP64.")
-    endif()
+    set(BLA_VENDOR Intel10_64lp)
+    find_package(BLAS)
   endif()
-  find_package(MKL REQUIRED)
+  find_path(MKL_INCLUDE_DIR mkl.h PATHS ENV MKLROOT PATH_SUFFIXES include mkl REQUIRED)
   include_directories(SYSTEM ${MKL_INCLUDE_DIR})
-  list(APPEND mshadow_LINKER_LIBS ${MKL_LIBRARIES})
+  list(APPEND mshadow_LINKER_LIBS ${BLAS_LIBRARIES})
   add_definitions(-DMSHADOW_USE_CBLAS=0)
   add_definitions(-DMSHADOW_USE_MKL=1)
   add_definitions(-DMXNET_USE_BLAS_MKL=1)

I'll take a look into it.

need to enable the Intel compiler build process which seems to be broken at this moment [6].

Is there any update on the ICC upstream compiler fix?

I don't know yet. I'll keep you posted as I'll get more knowledge on this issue.

akarbown

comment created time in 10 hours

issue commentdmlc/xgboost

XGBoost training with cupy result in much lower test-auc

I managed to reproduce the issue on my end.

Reproducible script:

import xgboost as xgb
import pandas as pd
import numpy as np
import cupy
import argparse

def main(args):
    X_train = np.load('X_train.npy')
    y_train = np.load('y_train.npy')
    X_test = np.load('X_test.npy')
    y_test = np.load('y_test.npy')

    X_train_cp = cupy.array(X_train)
    y_train_cp = cupy.array(y_train)
    X_test_cp = cupy.array(X_test)
    y_test_cp = cupy.array(y_test)

    if args.use_cupy == 'true':
        dtrain = xgb.DMatrix(X_train_cp, label=y_train_cp)
        dtest = xgb.DMatrix(X_test_cp, label=y_test_cp)
    else:
        dtrain = xgb.DMatrix(X_train, label=y_train)
        dtest = xgb.DMatrix(X_test, label=y_test)

    num_boost_round = 1000
    early_stopping_rounds=100
    params = {
        'max_depth':11,
        'min_child_weight': 7,
        'eta':.1,
        'subsample': 1,
        'colsample_bytree': .8,
        'eval_metric': 'auc',
        'objective':'binary:logistic',
        'seed': 0,
        #GPU enabled
        'gpu_id': 0,
        'tree_method':'gpu_hist',

    }
    model = xgb.train(
        params,
        dtrain,
        num_boost_round=num_boost_round,
        evals=[(dtrain,'Train'),(dtest, "Test")],
        early_stopping_rounds=early_stopping_rounds,
        verbose_eval = 50
    )

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--use_cupy', required=True, choices=['true', 'false'],
                        type=str)
    args = parser.parse_args()
    main(args)

The data files are accessible here: repro-6454.zip

hcho3

comment created time in 10 hours

issue commentapache/incubator-mxnet

Using mxnet on RTX3090

@Light-- What type of CPU are you using ?

Intel(R) Core(TM) i7-3960X CPU @ 3.30GHz

DestinyMy

comment created time in 11 hours

more