Set cude device
This commit is contained in:
parent
f9d16f29cf
commit
bdbb067489
@ -11,6 +11,8 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
|||||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
||||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||||
|
|
||||||
|
option(CUDA_USE_STATIC_CUDA_RUNTIME OFF)
|
||||||
|
|
||||||
# For larger projects
|
# For larger projects
|
||||||
option(BUILD_TESTS "Build tests" OFF)
|
option(BUILD_TESTS "Build tests" OFF)
|
||||||
if(BUILD_TESTS)
|
if(BUILD_TESTS)
|
||||||
@ -25,13 +27,25 @@ endif()
|
|||||||
|
|
||||||
|
|
||||||
find_package(PkgConfig REQUIRED)
|
find_package(PkgConfig REQUIRED)
|
||||||
|
find_package(CUDA REQUIRED)
|
||||||
pkg_check_modules(GLIB REQUIRED glib-2.0 gobject-2.0 nlohmann_json gstreamer-base-1.0 gstreamer-1.0 gstreamer-video-1.0)
|
pkg_check_modules(GLIB REQUIRED glib-2.0 gobject-2.0 nlohmann_json gstreamer-base-1.0 gstreamer-1.0 gstreamer-video-1.0)
|
||||||
|
|
||||||
|
if(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64")
|
||||||
|
message("embed_platform on")
|
||||||
|
include_directories(/usr/local/cuda/targets/aarch64-linux/include)
|
||||||
|
link_directories(/usr/local/cuda/targets/aarch64-linux/lib)
|
||||||
|
else()
|
||||||
|
message("embed_platform off")
|
||||||
|
include_directories(/usr/local/cuda/include)
|
||||||
|
link_directories(/usr/local/cuda/lib64)
|
||||||
|
endif()
|
||||||
|
|
||||||
include_directories(/usr/lib/x86_64-linux-gnu/glib-2.0/include)
|
include_directories(/usr/lib/x86_64-linux-gnu/glib-2.0/include)
|
||||||
include_directories(/usr/include/gstreamer-1.0)
|
include_directories(/usr/include/gstreamer-1.0)
|
||||||
include_directories(/usr/include/nlohmann)
|
include_directories(/usr/include/nlohmann)
|
||||||
|
include_directories(/usr/local/cuda/include)
|
||||||
|
link_directories(/usr/local/cuda/lib64/)
|
||||||
|
link_directories(/usr/local/cuda/targets/x86_64-linux/lib/)
|
||||||
include_directories(${PROJECT_SOURCE_DIR}/camera_manager.hpp)
|
include_directories(${PROJECT_SOURCE_DIR}/camera_manager.hpp)
|
||||||
include_directories(${PROJECT_SOURCE_DIR}/pipeline_manager.hpp)
|
include_directories(${PROJECT_SOURCE_DIR}/pipeline_manager.hpp)
|
||||||
include_directories(${PROJECT_SOURCE_DIR}/streammux_manager.hpp)
|
include_directories(${PROJECT_SOURCE_DIR}/streammux_manager.hpp)
|
||||||
@ -60,4 +74,5 @@ target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
|
|||||||
target_include_directories(${PROJECT_NAME} PRIVATE ${GLIB_INCLUDE_DIRS})
|
target_include_directories(${PROJECT_NAME} PRIVATE ${GLIB_INCLUDE_DIRS})
|
||||||
target_link_libraries(${PROJECT_NAME} ${GLIB_LIBRARIES})
|
target_link_libraries(${PROJECT_NAME} ${GLIB_LIBRARIES})
|
||||||
|
|
||||||
target_link_libraries(${PROJECT_NAME} gstbase-1.0 gstreamer-1.0 gstrtp-1.0 gstvideo-1.0)
|
target_link_libraries(${PROJECT_NAME} gstbase-1.0 gstreamer-1.0 gstrtp-1.0 gstvideo-1.0)
|
||||||
|
target_link_libraries(${PROJECT_NAME} cudart cuda)
|
||||||
@ -22,6 +22,17 @@ int PipelineManager::create_pipeline() {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PipelineManager::set_cuda_device() {
|
||||||
|
cudaGetDevice(¤t_device);
|
||||||
|
cudaGetDeviceProperties(&prop, current_device);
|
||||||
|
|
||||||
|
std::cout << "Device Number: " << prop.pciDeviceID << std::endl;
|
||||||
|
std::cout << "Device name: " << prop.name << std::endl;
|
||||||
|
std::cout << "Device Version: " << prop.major << "." << prop.minor
|
||||||
|
<< std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
void PipelineManager::create_pipeline_elements(int num_sources) {
|
void PipelineManager::create_pipeline_elements(int num_sources) {
|
||||||
streammux_manager->create_streammux(num_sources);
|
streammux_manager->create_streammux(num_sources);
|
||||||
|
set_cuda_device();
|
||||||
}
|
}
|
||||||
@ -1,6 +1,7 @@
|
|||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
#include <gst/gst.h>
|
#include <gst/gst.h>
|
||||||
|
|
||||||
|
#include "cuda_runtime_api.h"
|
||||||
#include "streammux_manager.hpp"
|
#include "streammux_manager.hpp"
|
||||||
|
|
||||||
class PipelineManager {
|
class PipelineManager {
|
||||||
@ -12,9 +13,12 @@ class PipelineManager {
|
|||||||
StreammuxManager *streammux_manager = new StreammuxManager();
|
StreammuxManager *streammux_manager = new StreammuxManager();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
int current_device = -1;
|
||||||
|
struct cudaDeviceProp prop;
|
||||||
PipelineManager();
|
PipelineManager();
|
||||||
PipelineManager(int, char **);
|
PipelineManager(int, char **);
|
||||||
int create_pipeline();
|
int create_pipeline();
|
||||||
void create_pipeline_elements(int);
|
void create_pipeline_elements(int);
|
||||||
|
void set_cuda_device();
|
||||||
~PipelineManager();
|
~PipelineManager();
|
||||||
};
|
};
|
||||||
Loading…
x
Reference in New Issue
Block a user