Commits on Source (92)
-
Guilherme Lima authored
-
Sandro Christian Wenzel authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
Testing the processing of multiple tracks in same thread, so a smaller number of blocks may be possible. Performance tests to be done later.
-
Guilherme Lima authored
[VECGEOM-87] Navigation in GPUs is implemented and the steps validated. Navigation states not compared yet.
-
Guilherme Lima authored
[VECGEOM-35] Change std::cout into std::cerr for debugging printout, for consistency and to force automatic flushing.
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
[GLdebug] WIP: partial fixes to VecGeom vs. ROOT navigation comparisons, and lots of debugging printout
-
Sandro Christian Wenzel authored
-
Guilherme Lima authored
Conflicts: CMakeLists.txt base/Transformation3D.h
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
Compile-time and runtime tested with the navigation benchmark.
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
Conflicts: source/CudaManager.cpp
-
Guilherme Lima authored
-
Guilherme Lima authored
Conflicts: navigation/NavigationState.h source/CudaManager.cpp Simpler, one-liner NavigationState printout.
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
Conflicts: navigation/NavigationState.h Conflict resolved by keeping one-line NavigationState printout from local area
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
Conflicts: CMakeLists.txt management/RootGeoManager.h source/CudaManager.cpp source/PlacedVolume.cpp
-
Guilherme Lima authored
Conflicts: CMakeLists.txt
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
[VECGEOM-87] Changes related to navigation on the GPUs, specially replacing NavigationState** with NavStatePool. WIP: NavStatePool still not transfering properly to the GPU. A call to (NavStatePool*)->operator[](i) inside a GPU kernel is currently throwing a CUDA exception.
-
Guilherme Lima authored
-
Guilherme Lima authored
Conflicts: navigation/NavigationState.h
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
- Validates 1-particle interface against ROOT navigation - Validates N-particle interface against 1-particle navigation - Validation comparisons based on step lenghts AND navigation states (next volume) - If navigation validated, runs benchmarks for NPOINTS (argument of -npoints switch), and then repeats for 10x more tracks up to some maximum number (e.g. 10M tracks). - Whole job for a maximum 10M tracks runs in about one minute, for 10 repetitions -- controlled by -nreps switch. - Navigation benchmarks run: Root, 1-particle and N-particle VecGeom navigations Cuda navigation is not tested yet in this version.
-
Guilherme Lima authored
-
Guilherme Lima authored
* New options (default values on brackets): -geometry [navBench.root] -testVolume [world] -fraction [0.8] -help false Note that running with argument "-help true" will show all available options and default values.
-
Guilherme Lima authored
-
Guilherme Lima authored
[VecGeom-35] Alternative algorithm for drawing random points will use Extent() instead of bounding box if USOLIDS available
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
Tube's Extent() is used by Polyhedra's Extent(), and some tests showed that the tube's Extent() was too wasteful for many practical polyhedra (e.g. in CMS), when associated with thin wedges.
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
[VecGeom-87] Adapting the navigation benchmark to start at an arbitrary volume in the geometry hierarchy
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
Details: Navigation benchmark is failing to find uncontained points when the reference volume is translated with respect to its own mother volume. I tried to fix this problem in FillUncontainedPoints(), by replacing Contains() with UnplacedContains(), but I noticed a similar use case in FillContainedPoints(): bool inside = (placed) ? (*v)->Contains(points[i]) : (*v)->UnplacedContains(points[i]); and I am trying to understand whether the same code applies in FillUncontainedPoints(). This is Work In Progress...
-
Guilherme Lima authored
This utility takes a .root geometry file and a (mother) volume name as command line arguments, and returns a dump of the mother volume and all its daughters. Ideally it should be kept under userexamples/src, which currently contains only a CUDA example, and it would require changes to CMakeLists.txt to get built. For now it is under test/globalbenchmarks, so it runs under a "make test", and default values were added in order to pass that test.
-
Guilherme Lima authored
NavigationBenchmark triggered a few bugs in the process of generating random points in a given logical volume: - Protection was added for cases where uncontained points are requested but there is no uncontained volume to draw points from. - A bug was fixed in checking a localpoint (not a globalpoint) is inside the reference volume. Fix was to replace a volume.Contains(localpt) with volume.UnplacedContains(localpt). - New method VolumeUtilities::UncontainedCapacity(), which is used for testing error conditions. Helpful messages are now printed when some error conditions are found.
-
Guilherme Lima authored
-
Guilherme Lima authored
# Conflicts: # base/Transformation3D.h # navigation/NavigationState.h
-
Guilherme Lima authored
-
Guilherme Lima authored
logical_volume() --> GetLogicalVolume() transformation() --> GetTransformation()
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
-
Guilherme Lima authored
[VecGeom-87] Modifications for the navigation benchmark to take logical volume names from command line Usage details: NavigationBenchmark -ntracks 100 -nreps 1 -geometry cms2015 -logvol PixelBarrel
-
Guilherme Lima authored
A bunch of merge conflicts fixed by taking USolids interface changes from master branch, plus local navigation benchmark updates.
-
Guilherme Lima authored
BTW, the performance is pretty linear on the number of repetitions, so 4 repetitions is good enough to get a good performance estimate. If increasing processing time is needed because total time is too small, increasing the number of points provides better averaging over shape volumes, so it is better than just increasing the number of repetitions.
Showing
- CMakeLists.txt 3 additions, 2 deletionsCMakeLists.txt
- VecCore/inc/BitSet.h 2 additions, 2 deletionsVecCore/inc/BitSet.h
- VecCore/inc/VariableSizeObj.h 2 additions, 4 deletionsVecCore/inc/VariableSizeObj.h
- benchmarking/NavigationBenchmarker.h 1 addition, 3 deletionsbenchmarking/NavigationBenchmarker.h
- navigation/NavigationState.h 20 additions, 35 deletionsnavigation/NavigationState.h
- navigation/SimpleNavigator.h 7 additions, 7 deletionsnavigation/SimpleNavigator.h
- source/CudaManager.cpp 2 additions, 2 deletionssource/CudaManager.cpp
- source/GeoManager.cpp 7 additions, 1 deletionsource/GeoManager.cpp
- source/benchmarking/Benchmarker.cpp 0 additions, 1 deletionsource/benchmarking/Benchmarker.cpp
- source/benchmarking/NavigationBenchmarker.cpp 36 additions, 65 deletionssource/benchmarking/NavigationBenchmarker.cpp
- test/benchmark/BoxBenchmark.cpp 1 addition, 1 deletiontest/benchmark/BoxBenchmark.cpp
- test/benchmark/ParaboloidBenchmark.cpp 2 additions, 2 deletionstest/benchmark/ParaboloidBenchmark.cpp
- test/benchmark/PolyconeBenchmark.cpp 1 addition, 1 deletiontest/benchmark/PolyconeBenchmark.cpp
- test/benchmark/PolyhedronBenchmark.cpp 2 additions, 2 deletionstest/benchmark/PolyhedronBenchmark.cpp
- test/benchmark/TorusBenchmark.cpp 1 addition, 1 deletiontest/benchmark/TorusBenchmark.cpp
- test/core/TestNavigationStatePool.cpp 1 addition, 1 deletiontest/core/TestNavigationStatePool.cpp
- test/core/testVectorSafety.cpp 5 additions, 6 deletionstest/core/testVectorSafety.cpp
- test/globalbenchmarks/LocatePointsBenchmark.cpp 5 additions, 5 deletionstest/globalbenchmarks/LocatePointsBenchmark.cpp
- test/globalbenchmarks/NavigationBenchmark.cpp 19 additions, 21 deletionstest/globalbenchmarks/NavigationBenchmark.cpp
- test/globalbenchmarks/NavigationBenchmarkFull.cpp 217 additions, 0 deletionstest/globalbenchmarks/NavigationBenchmarkFull.cpp