Skip to content

Commit 906d8d4

Browse files
Optix debug logging update, TEOS PECVD GPU model (#188)
* Added removeMaterial info when removing top LS layer * Added WENO 5th order advection scheme * Reverted back to install script, with ViennaLS default version 5.2.1 * Add option to enable adaptive time stepping during advection * Use new ViennaRay functions * TEOS PECVD GPU model * Refactor GPU include setup * Remove old benchmark files * Bump ViennaRay * Fix tests --------- Co-authored-by: filipovic <filipovic@iue.tuwien.ac.at>
1 parent b5d705b commit 906d8d4

34 files changed

Lines changed: 254 additions & 655 deletions

CMakeLists.txt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ include("cmake/cpm.cmake")
101101

102102
CPMAddPackage(
103103
NAME ViennaCore
104-
VERSION 1.7.4
104+
VERSION 1.8.0
105105
GIT_REPOSITORY "https://github.com/ViennaTools/ViennaCore"
106106
EXCLUDE_FROM_ALL ${VIENNAPS_BUILD_PYTHON}
107107
OPTIONS "VIENNACORE_USE_GPU ${VIENNAPS_USE_GPU}")
@@ -113,7 +113,7 @@ CPMAddPackage(
113113

114114
CPMFindPackage(
115115
NAME ViennaRay
116-
VERSION 3.9.0
116+
VERSION 3.9.1
117117
GIT_REPOSITORY "https://github.com/ViennaTools/ViennaRay"
118118
EXCLUDE_FROM_ALL ${VIENNAPS_BUILD_PYTHON}
119119
OPTIONS "VIENNARAY_USE_GPU ${VIENNAPS_USE_GPU}")
@@ -177,8 +177,6 @@ endif()
177177
if(VIENNAPS_USE_GPU AND VIENNACORE_PTX_DIR)
178178
message(STATUS "[ViennaPS] Enabled GPU Support")
179179
add_subdirectory(gpu)
180-
target_include_directories(${PROJECT_NAME}
181-
INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/gpu/include>)
182180
else()
183181
message(STATUS "[ViennaPS] Disabled GPU Support")
184182
set(VIENNAPS_USE_GPU OFF)

cmake/ViennaPSUtils.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
function(viennaps_add_executable target_name source_file)
22
if(VIENNAPS_USE_GPU)
3-
add_gpu_executable(${target_name} _unused_target_var ${source_file})
3+
add_gpu_executable(${target_name} ${source_file})
44
else()
55
add_executable(${target_name} ${source_file})
66
target_link_libraries(${target_name} PRIVATE ViennaPS)

cmake/generate_ptx.cmake

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ function(generate_pipeline target_name generated_files_output)
88
cuda_include_directories(${OptiX_INCLUDE_DIR} ${CUDA_INCLUDE_DIRS})
99

1010
# Include ViennaRay headers which are used in pipelines
11-
cuda_include_directories(${VIENNARAY_GPU_INCLUDE} ${VIENNAPS_GPU_INCLUDE})
11+
cuda_include_directories(${VIENNARAY_GPU_INCLUDE})
1212
cuda_include_directories(${ViennaPS_SOURCE_DIR}/include/viennaps)
1313
cuda_include_directories(${ViennaCore_SOURCE_DIR}/include/viennacore)
1414
add_compile_definitions(VIENNACORE_COMPILE_GPU)
@@ -55,7 +55,7 @@ function(generate_kernel target_name generated_files_output)
5555

5656
cuda_include_directories(${OptiX_INCLUDE_DIR} ${CUDA_INCLUDE_DIRS})
5757
cuda_include_directories(${ViennaCore_SOURCE_DIR}/include/viennacore)
58-
cuda_include_directories(${VIENNARAY_GPU_INCLUDE} ${VIENNAPS_GPU_INCLUDE})
58+
cuda_include_directories(${VIENNARAY_GPU_INCLUDE})
5959
add_compile_definitions(VIENNACORE_COMPILE_GPU)
6060
if(VIENNARAY_GPU_DOUBLE_PRECISION)
6161
add_compile_definitions(VIENNARAY_GPU_DOUBLE_PRECISION)
@@ -76,11 +76,8 @@ function(generate_kernel target_name generated_files_output)
7676
endfunction()
7777

7878
# In CMake, functions have their own scope, whereas macros use the scope of the caller.
79-
function(add_GPU_executable target_name_base target_name_var)
79+
function(add_GPU_executable target_name_base)
8080
set(target_name ${target_name_base})
81-
set(${target_name_var}
82-
${target_name}
83-
PARENT_SCOPE)
8481

8582
# Separate the sources from the CMake and CUDA options fed to the macro. This code
8683
# comes from the CUDA_COMPILE_PTX macro found in FindCUDA.cmake. We are copying the
@@ -102,7 +99,7 @@ function(add_GPU_executable target_name_base target_name_var)
10299
cuda_include_directories(${OptiX_INCLUDE_DIR} ${CUDA_INCLUDE_DIRS})
103100

104101
# Include ViennaRay headers which are used in pipelines
105-
cuda_include_directories(${VIENNARAY_GPU_INCLUDE} ${VIENNAPS_GPU_INCLUDE})
102+
cuda_include_directories(${VIENNARAY_GPU_INCLUDE})
106103
cuda_include_directories(${ViennaPS_SOURCE_DIR}/include/viennaps)
107104
cuda_include_directories(${ViennaCore_SOURCE_DIR}/include/viennacore)
108105
add_compile_definitions(VIENNACORE_COMPILE_GPU)
@@ -125,7 +122,7 @@ function(add_GPU_executable target_name_base target_name_var)
125122
list(APPEND cu_optix_source_files ${VIENNARAY_PIPELINE_DIR}/GeneralPipelineDisk.cu)
126123
list(APPEND cu_optix_source_files ${VIENNARAY_PIPELINE_DIR}/GeneralPipelineTriangle.cu)
127124
list(APPEND cu_optix_source_files ${VIENNARAY_PIPELINE_DIR}/GeneralPipelineLine.cu)
128-
list(APPEND cu_optix_source_files ${VIENNAPS_GPU_INCLUDE}/models/CallableWrapper.cu)
125+
list(APPEND cu_optix_source_files ${VIENNAPS_GPU_MODELS}/CallableWrapper.cu)
129126

130127
# Wrap OptiX pipeline files.
131128
if(VIENNAPS_GENERATE_OPTIXIR)
@@ -156,8 +153,7 @@ function(add_GPU_executable target_name_base target_name_var)
156153
# the cmake_options parsed out of the arguments.
157154
message(STATUS "Adding GPU target: ${target_name}")
158155
add_executable(${target_name} ${source_files} ${generated_files} ${cmake_options})
159-
target_include_directories(${target_name} PRIVATE ${VIENNARAY_GPU_INCLUDE}
160-
${VIENNAPS_GPU_INCLUDE})
156+
target_include_directories(${target_name} PRIVATE ${VIENNARAY_GPU_INCLUDE})
161157
target_link_libraries(${target_name} PRIVATE ViennaPS)
162158
target_compile_definitions(${target_name}
163159
PRIVATE VIENNACORE_KERNELS_PATH_DEFINE=${VIENNACORE_PTX_DIR})

gpu/CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ else()
1919
endif()
2020

2121
#### Set variables
22-
set(VIENNAPS_GPU_INCLUDE
23-
"${PROJECT_SOURCE_DIR}/include"
24-
CACHE STRING "Includes for ViennaPS GPU processing.")
22+
set(VIENNAPS_GPU_MODELS
23+
"${PROJECT_SOURCE_DIR}/models"
24+
CACHE STRING "ModelsViennaPS GPU process models.")
2525
set(VIENNAPS_CUDA_KERNELS
2626
""
2727
CACHE STRING "ViennaPS CUDA kernel source files.")

gpu/benchmark/CMakeLists.txt

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,15 @@ project(ViennaPS-GPU_Benchmark)
22

33
add_custom_target(ViennaPS-GPU_Benchmark ALL)
44

5-
add_gpu_executable(GPU_Benchmark target_name ${CMAKE_CURRENT_SOURCE_DIR}/GPU_Benchmark.cpp)
5+
add_gpu_executable(GPU_Benchmark ${CMAKE_CURRENT_SOURCE_DIR}/GPU_Benchmark.cpp)
66
add_dependencies(ViennaPS-GPU_Benchmark GPU_Benchmark)
77

88
add_executable(CPU_Benchmark ${CMAKE_CURRENT_SOURCE_DIR}/CPU_Benchmark.cpp)
99
target_link_libraries(CPU_Benchmark ViennaPS)
1010
add_dependencies(ViennaPS-GPU_Benchmark CPU_Benchmark)
1111

12-
add_executable(CPU_Benchmark_single ${CMAKE_CURRENT_SOURCE_DIR}/CPU_Benchmark_single.cpp)
13-
target_link_libraries(CPU_Benchmark_single ViennaPS)
14-
add_dependencies(ViennaPS-GPU_Benchmark CPU_Benchmark_single)
15-
16-
add_gpu_executable(holeComparison target_name ${CMAKE_CURRENT_SOURCE_DIR}/holeCompare.cpp)
12+
add_gpu_executable(holeComparison ${CMAKE_CURRENT_SOURCE_DIR}/holeCompare.cpp)
1713
add_dependencies(ViennaPS-GPU_Benchmark holeComparison)
1814

19-
add_gpu_executable(holeComparisonGrid target_name ${CMAKE_CURRENT_SOURCE_DIR}/holeCompareGrid.cpp)
15+
add_gpu_executable(holeComparisonGrid ${CMAKE_CURRENT_SOURCE_DIR}/holeCompareGrid.cpp)
2016
add_dependencies(ViennaPS-GPU_Benchmark holeComparisonGrid)

gpu/benchmark/CPU_Benchmark.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -186,9 +186,9 @@ int main() {
186186
tracer.normalizeFlux(fluxResult);
187187
fluxResultVec.push_back(std::move(fluxResult));
188188
}
189-
ElementToPointData<NumericType, float, viennaray::gpu::ResultType>(
190-
fluxResultVec, pointData, particles, elementKdTree, diskMesh,
191-
surfMesh, domain->getGridDelta() * 2.0f)
189+
ElementToPointData<NumericType, float, float>(
190+
IndexMap(particles), fluxResultVec, pointData, elementKdTree,
191+
diskMesh, surfMesh, domain->getGridDelta() * 2.0f)
192192
.apply();
193193
auto velocities = SmartPointer<std::vector<NumericType>>::New(
194194
std::move(*pointData->getScalarData(fluxLabel)));

gpu/benchmark/CPU_Benchmark_single.cpp

Lines changed: 0 additions & 83 deletions
This file was deleted.

gpu/benchmark/GPU_Benchmark.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,8 @@ int main() {
111111
auto pointData = viennals::PointData<NumericType>::New();
112112
tracer.normalizeResults();
113113
// tracer.downloadResults();
114-
gpu::ElementToPointData<NumericType, float, viennaray::gpu::ResultType>(
115-
tracer.getResults(), pointData, tracer.getParticles(),
114+
ElementToPointData<NumericType, float, viennaray::gpu::ResultType>(
115+
IndexMap(tracer.getParticles()), tracer.getResults(), pointData,
116116
elementKdTree, diskMesh, surfMesh, domain->getGridDelta() * 2.0f)
117117
.apply();
118118
auto velocities = SmartPointer<std::vector<NumericType>>::New(

gpu/benchmark/GPU_Benchmark_single.cpp

Lines changed: 0 additions & 135 deletions
This file was deleted.

0 commit comments

Comments
 (0)