Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 52 additions & 45 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,76 +1,83 @@
cmake_minimum_required (VERSION 2.8.11)
project (libvgpu)

macro(get_git_hash _git_hash)
find_package(Git QUIET)
project(libvgpu)

# Set CUDA_HOME if not defined
if (NOT DEFINED ENV{CUDA_HOME})
set(CUDA_HOME /usr/local/cuda)
else()
set(CUDA_HOME $ENV{CUDA_HOME})
endif()

# Include directories
include_directories(${CUDA_HOME}/include)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src)
include_directories(${CMAKE_CURRENT_BINARY_DIR}/config)

# Compile flags
if (CMAKE_BUILD_TYPE STREQUAL Debug)
set(LIBRARY_COMPILE_FLAGS -shared -fPIC -g -D_GNU_SOURCE -Wall)
set(TEST_COMPILE_FLAGS -O1)
else()
set(LIBRARY_COMPILE_FLAGS -shared -fPIC -D_GNU_SOURCE -fvisibility=hidden -Wall)
set(TEST_COMPILE_FLAGS -O1)
endif()

# Get the git hash
macro(get_git_hash _git_hash)
find_package(Git QUIET)
if(GIT_FOUND)
execute_process(
COMMAND ${GIT_EXECUTABLE} log -1 --pretty=format:%h
OUTPUT_VARIABLE ${_git_hash}
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET
WORKING_DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}
execute_process(
COMMAND ${GIT_EXECUTABLE} log -1 --pretty=format:%h
OUTPUT_VARIABLE ${_git_hash}
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET
WORKING_DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}
)
endif()
endmacro()
endmacro()

# Get the git branch
macro(get_git_branch _git_branch)
find_package(Git QUIET)
if(GIT_FOUND)
execute_process(
COMMAND ${GIT_EXECUTABLE} symbolic-ref --short -q HEAD
OUTPUT_VARIABLE ${_git_branch}
OUTPUT_STRIP_TRAILING_WHITESPACE
# ERROR_QUIET
WORKING_DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}
execute_process(
COMMAND ${GIT_EXECUTABLE} symbolic-ref --short -q HEAD
OUTPUT_VARIABLE ${_git_branch}
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET
WORKING_DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}
)
endif()
endmacro()

# Fetch the current Git hash and branch
set(GIT_HASH "")
get_git_hash(GIT_HASH)
message(STATUS "Git hash is ${GIT_HASH}")

if (NOT DEFINED ENV{CI_COMMIT_REF_NAME})
set(GIT_BRANCH "")
get_git_branch(GIT_BRANCH)
set(GIT_BRANCH "")
get_git_branch(GIT_BRANCH)
else()
set(GIT_BRANCH $ENV{CI_COMMIT_REF_NAME})
set(GIT_BRANCH $ENV{CI_COMMIT_REF_NAME})
endif()

if(GIT_FOUND)
#string(REPLACE "." "_" GIT_BRANCH ${GIT_BRANCH})
#string(REPLACE "-" "_" GIT_BRANCH ${GIT_BRANCH})
#message(STATUS "Git branch is ${GIT_BRANCH}")
#string(REPLACE "." "_" GIT_BRANCH ${GIT_BRANCH})
#string(REPLACE "-" "_" GIT_BRANCH ${GIT_BRANCH})
#message(STATUS "Git branch is ${GIT_BRANCH}")
endif()

# Generate the static config header file
configure_file(src/static_config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config/static_config.h)
include_directories(${CMAKE_CURRENT_BINARY_DIR}/config)

if (NOT DEFINED ENV{CUDA_HOME})
set(CUDA_HOME /usr/local/cuda)
else()
set(CUDA_HOME $ENV{CUDA_HOME})
endif()


if (CMAKE_BUILD_TYPE STREQUAL Debug)
set(LIBRARY_COMPILE_FLAGS -shared -fPIC -g -D_GNU_SOURCE -Wall)
set(TEST_COMPILE_FLAGS -o1)
else()
set(LIBRARY_COMPILE_FLAGS -shared -fPIC -D_GNU_SOURCE -fvisibility=hidden -Wall)
set(TEST_COMPILE_FLAGS -o1)
endif()

include_directories(${CUDA_HOME}/include)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src)

# Add subdirectories for building
add_subdirectory(src)
add_subdirectory(test)

if (BUILD_DOCKER STREQUAL true)
add_subdirectory(dockerfiles)
add_subdirectory(dockerfiles)
endif()

3 changes: 1 addition & 2 deletions dockerfiles/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,4 @@ COPY . /libvgpu
WORKDIR /libvgpu
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get -y update; apt-get -y install cmake
RUN rm -r ./build
RUN bash ./build.sh
RUN bash ./build.sh
4 changes: 4 additions & 0 deletions src/allocator/allocator.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ size_t IPCSIZE = 2097152;
size_t OVERSIZE = 134217728;
//int pidfound;

region_list *r_list;
allocated_list *device_overallocated;
allocated_list *array_list;

#define ALIGN 2097152
#define MULTI_PARAM 1
Expand All @@ -21,6 +24,7 @@ extern CUresult cuMemoryAllocate(CUdeviceptr* dptr, size_t bytesize, size_t* byt
extern CUresult cuMemoryFree(CUdeviceptr dptr);

pthread_once_t allocator_allocate_flag = PTHREAD_ONCE_INIT;
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;

size_t round_up(size_t size,size_t unit){
if (size & (unit-1))
Expand Down
8 changes: 4 additions & 4 deletions src/allocator/allocator.h
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,10 @@ struct region_list_struct{
};
typedef struct region_list_struct region_list;

region_list *r_list;
allocated_list *device_overallocated;
allocated_list *array_list;
pthread_mutex_t mutex;
extern region_list *r_list;
extern allocated_list *device_overallocated;
extern allocated_list *array_list;
extern pthread_mutex_t mutex;

#define LIST_INIT(list) { \
list->head=NULL; \
Expand Down
4 changes: 2 additions & 2 deletions src/static_config.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@
#cmakedefine DLSYM_HOOK_DEBUG
#cmakedefine HOOK_MEMINFO_ENABLE
#cmakedefine HOOK_NVML_ENABLE
size_t GIT_HASH_@GIT_HASH@;
size_t GIT_BRANCH_@GIT_BRANCH@;
extern size_t GIT_HASH_@GIT_HASH@;
extern size_t GIT_BRANCH_@GIT_BRANCH@;