Skip to content
Open
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
53 changes: 53 additions & 0 deletions 08_bilateral_filter/MLRichard/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
cmake_minimum_required(VERSION 3.20)
project(bilateral_filter CUDA CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CUDA_STANDARD 17)
set(CMAKE_CUDA_ARCHITECTURES 75;80;86;89)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

find_package(OpenCV REQUIRED)
include(CTest)

include_directories(${OpenCV_INCLUDE_DIRS} src)

# 主程序
add_executable(bilateral_filter
src/main.cu
src/bilateral_filter.cu
src/io.cpp
src/reference.cpp
src/metrics.cpp
)
target_link_libraries(bilateral_filter ${OpenCV_LIBS})
set_target_properties(bilateral_filter PROPERTIES CUDA_SEPARABLE_COMPILATION ON)

# 正确性测试
add_executable(test_correctness
test/test_correctness.cpp
src/bilateral_filter.cu
src/io.cpp
src/reference.cpp
src/metrics.cpp
)
target_link_libraries(test_correctness ${OpenCV_LIBS})
set_target_properties(test_correctness PROPERTIES CUDA_SEPARABLE_COMPILATION ON)

# 性能测试
add_executable(test_performance
test/test_performance.cpp
src/bilateral_filter.cu
src/io.cpp
src/reference.cpp
src/metrics.cpp
)
target_link_libraries(test_performance ${OpenCV_LIBS})
set_target_properties(test_performance PROPERTIES CUDA_SEPARABLE_COMPILATION ON)

if(BUILD_TESTING)
add_test(NAME correctness COMMAND test_correctness)
set_tests_properties(correctness PROPERTIES LABELS "correctness")

add_test(NAME performance COMMAND test_performance)
set_tests_properties(performance PROPERTIES LABELS "performance;benchmark")
endif()
143 changes: 143 additions & 0 deletions 08_bilateral_filter/MLRichard/CMakePresets.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
{
"version": 2,
"cmakeMinimumRequired": {
"major": 3,
"minor": 20,
"patch": 0
},
"configurePresets": [
{
"name": "conda-release",
"displayName": "Conda Release",
"description": "Configure a Release build in an activated Conda environment.",
"generator": "Ninja",
"binaryDir": "${sourceDir}/build/conda-release",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
"CUDAToolkit_ROOT": "$env{CONDA_PREFIX}",
"OpenCV_DIR": "$env{CONDA_PREFIX}/lib/cmake/opencv4",
"CMAKE_PREFIX_PATH": "$env{CONDA_PREFIX}"
},
"environment": {
"PATH": "$env{CONDA_PREFIX}/bin:$penv{PATH}",
"CPATH": "$env{CONDA_PREFIX}/include:$penv{CPATH}",
"LIBRARY_PATH": "$env{CONDA_PREFIX}/lib:$penv{LIBRARY_PATH}",
"LD_LIBRARY_PATH": "$env{CONDA_PREFIX}/lib:/usr/lib/wsl/lib:$penv{LD_LIBRARY_PATH}",
"CUDA_HOME": "$env{CONDA_PREFIX}",
"OpenCV_DIR": "$env{CONDA_PREFIX}/lib/cmake/opencv4"
}
},
{
"name": "conda-debug",
"displayName": "Conda Debug",
"description": "Configure a Debug build in an activated Conda environment.",
"inherits": "conda-release",
"binaryDir": "${sourceDir}/build/conda-debug",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
"CUDAToolkit_ROOT": "$env{CONDA_PREFIX}",
"OpenCV_DIR": "$env{CONDA_PREFIX}/lib/cmake/opencv4",
"CMAKE_PREFIX_PATH": "$env{CONDA_PREFIX}"
}
}
],
"testPresets": [
{
"name": "test-conda-correctness",
"displayName": "Run correctness tests",
"configurePreset": "conda-release",
"output": {
"outputOnFailure": true
},
"execution": {
"jobs": 1
},
"filter": {
"include": {
"label": "correctness"
}
},
"environment": {
"PATH": "$env{CONDA_PREFIX}/bin:$penv{PATH}",
"CPATH": "$env{CONDA_PREFIX}/include:$penv{CPATH}",
"LIBRARY_PATH": "$env{CONDA_PREFIX}/lib:$penv{LIBRARY_PATH}",
"LD_LIBRARY_PATH": "$env{CONDA_PREFIX}/lib:/usr/lib/wsl/lib:$penv{LD_LIBRARY_PATH}",
"CUDA_HOME": "$env{CONDA_PREFIX}",
"OpenCV_DIR": "$env{CONDA_PREFIX}/lib/cmake/opencv4"
}
},
{
"name": "test-conda-performance",
"displayName": "Run performance benchmark",
"configurePreset": "conda-release",
"output": {
"outputOnFailure": true
},
"execution": {
"jobs": 1
},
"filter": {
"include": {
"label": "performance"
}
},
"environment": {
"PATH": "$env{CONDA_PREFIX}/bin:$penv{PATH}",
"CPATH": "$env{CONDA_PREFIX}/include:$penv{CPATH}",
"LIBRARY_PATH": "$env{CONDA_PREFIX}/lib:$penv{LIBRARY_PATH}",
"LD_LIBRARY_PATH": "$env{CONDA_PREFIX}/lib:/usr/lib/wsl/lib:$penv{LD_LIBRARY_PATH}",
"CUDA_HOME": "$env{CONDA_PREFIX}",
"OpenCV_DIR": "$env{CONDA_PREFIX}/lib/cmake/opencv4"
}
},
{
"name": "test-conda-all",
"displayName": "Run all CTest tests",
"configurePreset": "conda-release",
"output": {
"outputOnFailure": true
},
"execution": {
"jobs": 1
},
"environment": {
"PATH": "$env{CONDA_PREFIX}/bin:$penv{PATH}",
"CPATH": "$env{CONDA_PREFIX}/include:$penv{CPATH}",
"LIBRARY_PATH": "$env{CONDA_PREFIX}/lib:$penv{LIBRARY_PATH}",
"LD_LIBRARY_PATH": "$env{CONDA_PREFIX}/lib:/usr/lib/wsl/lib:$penv{LD_LIBRARY_PATH}",
"CUDA_HOME": "$env{CONDA_PREFIX}",
"OpenCV_DIR": "$env{CONDA_PREFIX}/lib/cmake/opencv4"
}
}
],
"buildPresets": [
{
"name": "build-conda-release",
"displayName": "Build Conda Release",
"configurePreset": "conda-release"
},
{
"name": "build-conda-debug",
"displayName": "Build Conda Debug",
"configurePreset": "conda-debug"
},
{
"name": "build-test-correctness",
"displayName": "Build test_correctness",
"configurePreset": "conda-release",
"targets": [
"test_correctness"
]
},
{
"name": "build-test-performance",
"displayName": "Build test_performance",
"configurePreset": "conda-release",
"targets": [
"test_performance"
]
}
]
}
Loading