commit e4c90dfcf5ce0816181c108bfaf4635bf23ae760
Author: MTRNord <mtrnord1@gmail.com>
Date: Fri, 3 Sep 2021 16:09:45 +0200
initial template to use tensorflow with boinc
Diffstat:
7 files changed, 154 insertions(+), 0 deletions(-)
diff --git a/.gitignore b/.gitignore
@@ -0,0 +1,51 @@
+# Prerequisites
+*.d
+
+# Compiled Object files
+*.slo
+*.lo
+*.o
+*.obj
+
+# Precompiled Headers
+*.gch
+*.pch
+
+# Compiled Dynamic libraries
+*.so
+*.dylib
+*.dll
+
+# Fortran module files
+*.mod
+*.smod
+
+# Compiled Static libraries
+*.lai
+*.la
+*.a
+*.lib
+
+# Executables
+*.exe
+*.out
+*.app
+
+# Build directories
+build
+
+# Libtensorflow
+libtensorflow
+
+# Cmake
+CMakeLists.txt.user
+CMakeCache.txt
+CMakeFiles
+CMakeScripts
+Testing
+Makefile
+cmake_install.cmake
+install_manifest.txt
+compile_commands.json
+CTestTestfile.cmake
+_deps
diff --git a/.gitmodules b/.gitmodules
@@ -0,0 +1,10 @@
+[submodule "cppflow"]
+ path = cppflow
+ url = git@github.com:serizba/cppflow.git
+[submodule "boinc"]
+ path = boinc
+ url = git@github.com:BOINC/boinc.git
+[submodule "tensorflow"]
+ branch = r2.6
+ path = tensorflow
+ url = git@github.com:tensorflow/tensorflow.git
diff --git a/CMakeLists.txt b/CMakeLists.txt
@@ -0,0 +1,70 @@
+cmake_minimum_required(VERSION 3.10)
+
+set(CMAKE_CXX_STANDARD 17)
+set(CMAKE_CXX_STANDARD_REQUIRED ON CACHE BOOL "Require C++ standard to be supported")
+
+project(pothole_analyzer LANGUAGES CXX C)
+
+set(THREADS_PREFER_PTHREAD_FLAG ON)
+find_package(Threads REQUIRED)
+
+set(TENSORFLOW_SOURCE_DIR "" CACHE PATH
+ "Directory that contains the TensorFlow project" )
+if(NOT TENSORFLOW_SOURCE_DIR)
+ get_filename_component(TENSORFLOW_SOURCE_DIR
+ "${CMAKE_CURRENT_LIST_DIR}/tensorflow" ABSOLUTE)
+endif()
+
+add_subdirectory(
+ "${TENSORFLOW_SOURCE_DIR}/tensorflow/lite"
+ "${CMAKE_CURRENT_BINARY_DIR}/tensorflow-lite" EXCLUDE_FROM_ALL)
+
+
+if(NOT MSVC)
+ set(
+ CMAKE_CXX_FLAGS
+ "${CMAKE_CXX_FLAGS} \
+ -Wall \
+ -Wextra \
+ -pipe \
+ -fsized-deallocation \
+ -fdiagnostics-color=always \
+ -Wunreachable-code \
+ -Wno-attributes \
+ -O3 \
+ -m64"
+ )
+ if (NOT CMAKE_COMPILER_IS_GNUCXX)
+ # -Wshadow is buggy and broken in GCC, so do not enable it.
+ # see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79328
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wshadow")
+ endif()
+endif()
+
+if (MSVC)
+ set(
+ CMAKE_CXX_FLAGS
+ "${CMAKE_CXX_FLAGS} /bigobj"
+ )
+endif()
+
+add_executable(pothole_analyzer
+ main.cpp)
+target_include_directories(pothole_analyzer PRIVATE
+ ${CMAKE_CURRENT_LIST_DIR}/boinc/api/
+ ${CMAKE_CURRENT_LIST_DIR}/boinc/lib/
+ ${CMAKE_CURRENT_LIST_DIR}/boinc/)
+target_link_libraries (pothole_analyzer PRIVATE
+ tensorflow-lite
+ -L${CMAKE_CURRENT_LIST_DIR}/boinc/lib
+ -L${CMAKE_CURRENT_LIST_DIR}/boinc/api
+ -L${CMAKE_CURRENT_LIST_DIR}/boinc
+ #-l:boinc_api.a
+ #-l:boinc.a
+ Threads::Threads
+ -lstdc++
+ -static
+ -static-libstdc++
+ -DBOINC
+ -lboinc_api
+ -lboinc)
diff --git a/boinc b/boinc
@@ -0,0 +1 @@
+Subproject commit 0d6b677bc71b251759bd04bd84dd5a01e60e0fdb
diff --git a/cppflow b/cppflow
@@ -0,0 +1 @@
+Subproject commit 883eb4c526979dae56f921571b1ab93df85a0a0d
diff --git a/main.cpp b/main.cpp
@@ -0,0 +1,20 @@
+#include "boinc_api.h"
+
+int main() {
+ int retval;
+ char buf[256];
+ BOINC_OPTIONS options;
+ boinc_options_defaults(options);
+ options.normal_thread_priority = true;
+
+ retval = boinc_init_options(&options);
+ if (retval) {
+ fprintf(stderr, "%s boinc_init returned %d\n",
+ boinc_msg_prefix(buf, sizeof(buf)), retval
+ );
+ exit(retval);
+ }
+
+ boinc_finish(0);
+ return 0;
+}
diff --git a/tensorflow b/tensorflow
@@ -0,0 +1 @@
+Subproject commit 919f693420e35d00c8d0a42100837ae3718f7927