Following classes are added to support dataframe in java binding: - `Column` is an abstract type for a single column in tabular data. - `ColumnBatch` is an abstract type for dataframe. - `CuDFColumn` is an implementaiton of `Column` that consume cuDF column - `CudfColumnBatch` is an implementation of `ColumnBatch` that consumes cuDF dataframe. - `DeviceQuantileDMatrix` is the interface for quantized data. The Java implementation mimics the Python interface and uses `__cuda_array_interface__` protocol for memory indexing. One difference is on JVM package, the data batch is staged on the host as java iterators cannot be reset. Co-authored-by: jiamingy <jm.yuan@outlook.com>
29 lines
938 B
CMake
29 lines
938 B
CMake
find_package(JNI REQUIRED)
|
|
|
|
list(APPEND JVM_SOURCES
|
|
${PROJECT_SOURCE_DIR}/jvm-packages/xgboost4j/src/native/xgboost4j.cpp
|
|
${PROJECT_SOURCE_DIR}/jvm-packages/xgboost4j-gpu/src/native/xgboost4j-gpu.cpp)
|
|
|
|
if (USE_CUDA)
|
|
list(APPEND JVM_SOURCES
|
|
${PROJECT_SOURCE_DIR}/jvm-packages/xgboost4j-gpu/src/native/xgboost4j-gpu.cu)
|
|
endif (USE_CUDA)
|
|
|
|
add_library(xgboost4j SHARED ${JVM_SOURCES} ${XGBOOST_OBJ_SOURCES})
|
|
|
|
if (ENABLE_ALL_WARNINGS)
|
|
target_compile_options(xgboost4j PUBLIC -Wall -Wextra)
|
|
endif (ENABLE_ALL_WARNINGS)
|
|
|
|
target_link_libraries(xgboost4j PRIVATE objxgboost)
|
|
target_include_directories(xgboost4j
|
|
PRIVATE
|
|
${JNI_INCLUDE_DIRS}
|
|
${PROJECT_SOURCE_DIR}/jvm-packages/xgboost4j/src/native
|
|
${PROJECT_SOURCE_DIR}/include
|
|
${PROJECT_SOURCE_DIR}/dmlc-core/include
|
|
${PROJECT_SOURCE_DIR}/rabit/include)
|
|
|
|
set_output_directory(xgboost4j ${PROJECT_SOURCE_DIR}/lib)
|
|
target_link_libraries(xgboost4j PRIVATE ${JAVA_JVM_LIBRARY})
|