Skip to content

Commit

Permalink
[C++] #3 Included bridge project into cpp server
Browse files Browse the repository at this point in the history
  • Loading branch information
seunghyukcho committed Nov 26, 2019
1 parent bc18c63 commit 95a9478
Show file tree
Hide file tree
Showing 13 changed files with 2,277 additions and 13 deletions.
1 change: 1 addition & 0 deletions bridge/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ FIND_PACKAGE(Torch REQUIRED)
ADD_LIBRARY(bridge SHARED ./src/bridge.cpp ./src/model/${MODEL_TYPE}.cpp)
TARGET_LINK_LIBRARIES(bridge "${TORCH_LIBRARIES}")
SET_PROPERTY(TARGET bridge PROPERTY CXX_STANDARD 11)
SET ( LIBRARY_OUTPUT_DIRECTORY lib )
10 changes: 9 additions & 1 deletion cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,12 @@ set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

add_subdirectory(src)
include_directories(includes)

find_package(Torch REQUIRED)
find_package(jsoncpp CONFIG REQUIRED)
find_package(Threads)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS}")

add_subdirectory(bridge)
add_subdirectory(src)
12 changes: 6 additions & 6 deletions cpp/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,16 @@ WORKDIR /home
RUN git clone https://github.com/microsoft/vcpkg.git
RUN /home/vcpkg/bootstrap-vcpkg.sh
RUN /home/vcpkg/vcpkg install cpp-httplib jsoncpp
RUN mkdir -p /home/brusta
RUN mkdir -p /home/brusta/cpp

WORKDIR /home/brusta
ADD . /home/brusta
WORKDIR /home/brusta/cpp
ADD . /home/brusta/cpp

RUN mkdir -p build
RUN cd build && cmake -DCMAKE_TOOLCHAIN_FILE=/home/vcpkg/scripts/buildsystems/vcpkg.cmake ..
RUN cd build && cmake -DCMAKE_TOOLCHAIN_FILE=/home/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_PREFIX_PATH=/home/brusta/libtorch ..
RUN cd build && make

WORKDIR /home/brusta/build/src
WORKDIR /home/brusta/cpp/build/src
EXPOSE 8080

CMD ["./brusta"]
# CMD ["./brusta"]
4 changes: 4 additions & 0 deletions cpp/bridge/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
include_directories(includes)

add_library(bridge SHARED ./src/bridge.cpp ./src/model/${MODEL_TYPE}.cpp)
target_link_libraries(bridge "${TORCH_LIBRARIES}")
31 changes: 31 additions & 0 deletions cpp/bridge/includes/bridge.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#ifndef __BRIDGE_HPP__
#define __BRIDGE_HPP__

#include "jni.h"

#ifdef __cplusplus
extern "C" {
#endif

/* JNI */

JNIEXPORT jlong JNICALL Java_EvalJNI_loadModel
(JNIEnv *, jobject, jstring);

JNIEXPORT jfloatArray JNICALL Java_EvalJNI_evaluate
(JNIEnv *, jobject, jlong, jfloatArray);

/* C Interface */

typedef void* Eval;

Eval EvalInit();
void EvalFree(Eval);
long EvalLoadModel(Eval eval, const char* modelName);
float* EvalEvaluate(Eval eval, long pModel, float* x);

#ifdef __cplusplus
}
#endif

#endif
Loading

0 comments on commit 95a9478

Please sign in to comment.