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_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||
|
||||
option(CUDA_USE_STATIC_CUDA_RUNTIME OFF)
|
||||
|
||||
# For larger projects
|
||||
option(BUILD_TESTS "Build tests" OFF)
|
||||
if(BUILD_TESTS)
|
||||
@ -25,13 +27,25 @@ endif()
|
||||
|
||||
|
||||
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)
|
||||
|
||||
|
||||
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/include/gstreamer-1.0)
|
||||
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}/pipeline_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_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;
|
||||
}
|
||||
|
||||
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) {
|
||||
streammux_manager->create_streammux(num_sources);
|
||||
set_cuda_device();
|
||||
}
|
||||
@ -1,6 +1,7 @@
|
||||
#include <glib.h>
|
||||
#include <gst/gst.h>
|
||||
|
||||
#include "cuda_runtime_api.h"
|
||||
#include "streammux_manager.hpp"
|
||||
|
||||
class PipelineManager {
|
||||
@ -12,9 +13,12 @@ class PipelineManager {
|
||||
StreammuxManager *streammux_manager = new StreammuxManager();
|
||||
|
||||
public:
|
||||
int current_device = -1;
|
||||
struct cudaDeviceProp prop;
|
||||
PipelineManager();
|
||||
PipelineManager(int, char **);
|
||||
int create_pipeline();
|
||||
void create_pipeline_elements(int);
|
||||
void set_cuda_device();
|
||||
~PipelineManager();
|
||||
};
|
||||
Loading…
x
Reference in New Issue
Block a user