IRC log for #brlcad on 20170729

01:48.21 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
02:41.57 Notify 03BRL-CAD:starseeker * 70018 (brlcad/trunk/src/other/openscenegraph/CMakeLists.txt brlcad/trunk/src/other/openscenegraph/CMakeModules/UtilityMacros.cmake): We don't appear to actually be using the LOCATION property for anything in our build of osg
03:15.38 Notify 03BRL-CAD:starseeker * 70019 brlcad/trunk/src/other/PoissonRecon/CMakeLists.txt: Doesn't seem to be any reason in this file for 0053 to be set to old
03:26.06 Notify 03BRL-CAD:starseeker * 70020 (brlcad/trunk/CMakeLists.txt brlcad/trunk/misc/svn2git/svn2git/CMakeLists.txt and 29 others): Bump to 3.0.2 across the board, remove older policy logic. Looks like the only remaining dependency on any OLD policy setting is a test in Tcl that needs 0053 set to old (quoting rules). This sets the stage for doing some experiments with the new TARGET build-time evaluation expressions, which
03:26.08 Notify may (not sure yet) have the potential to simplify some of the build logic.
03:26.10 Notify ...
03:42.28 Notify 03BRL-CAD:starseeker * 70021 brlcad/trunk/src/other/tcl/CMakeLists.txt: update quoting for strstr test
04:41.11 *** join/#brlcad deep-book-gk_ (~1wm_su@159.122.132.44)
04:42.00 *** part/#brlcad deep-book-gk_ (~1wm_su@159.122.132.44)
07:02.34 *** join/#brlcad Caterpillar (~caterpill@unaffiliated/caterpillar)
15:20.49 *** join/#brlcad yorik (~yorik@2804:431:f720:4929:290:f5ff:fedc:3bb2)
18:12.54 brlcad starseeker: answering your question from a while back, yes https://sourceforge.net/p/brlcad/code/HEAD/tree/rt%5E3/trunk/src/g3d/ has mafm's camera code
18:12.55 i5o [ BRL-CAD / Code / [r70024] /rt^3/trunk/src/g3d ]
18:14.52 brlcad starseeker: and looking through, it does look like it was a custom safe-to-use implementation -- coupled to ogre 3d types, but trivial to switch that to vmath types
18:15.07 brlcad forgot how nice that all was, lots of good app structure...
18:52.44 *** topic/#brlcad by brlcad -> This channel is for BRL-CAD and open source CAx discussion! Logs @ http://infobot.rikers.org/%23brlcad/
19:31.39 *** join/#brlcad KimK (~Kim__@2600:8803:7a81:7400:68cc:f967:6b4c:bb5f)
20:21.20 *** join/#brlcad Notify (~notify@104.225.5.10)
20:21.26 Notify 03BRL-CAD:starseeker * 70022 brlcad/trunk/misc/CMake/BRLCAD_Util.cmake: Simplify the IS_SUBPATH function logic using SUBSTRING. Not actually a significant performance improvement, but fewer lines and easier to follow.
20:21.28 Notify 03BRL-CAD:starseeker * 70023 NIL: delete empty directories
20:21.30 Notify 03BRL-CAD:starseeker * 70024 brlcad/trunk/misc/CMake/BRLCAD_Util.cmake: Do some refactoring of CMAKEFLAGS tracking function
20:22.05 Notify 03BRL-CAD:starseeker * 70025 brlcad/trunk/src/tclscripts/checker/CMakeLists.txt: Add TODO to CMAKEFILES list
20:22.07 Notify 03BRL-CAD:starseeker * 70026 (brlcad/trunk/db/CMakeLists.txt brlcad/trunk/db/nist/CMakeLists.txt and 56 others): Start preparing the ground work for a distcheck introspection that is based entirely on files - no specification of directories. This will be both to simplify the logic and to increase robustness for the non-svn distcheck case - if we have all files listed explicitly, svn is not strictly needed to do a
20:22.09 Notify full source repo verification. For the moment this will break distcheck, but need to checkpoint before the next stage.
20:22.11 Notify ...
20:22.16 Notify 03BRL-CAD Wiki:Mariomeissner * 10145 /wiki/User:Mariomeissner/logs:
20:22.18 Notify 03BRL-CAD Wiki:Mariomeissner * 10146 /wiki/User:Mariomeissner/logs:
20:53.22 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:03.41 Notify 03BRL-CAD:starseeker * 70027 (brlcad/trunk/misc/CMake/BRLCAD_Util.cmake brlcad/trunk/misc/CMake/source_archive_setup.cmake.in): This may get distcheck running again... needs more testing
23:11.15 brlcad super relevant paper .. I love the architecture simplicity: http://tabellion.org/et/paper17/MoonRay.pdf
23:11.57 brlcad vectorized a production tracer just like rt, from DFT to BFT
23:17.01 Stragus When I tried making coherent ray queues on GPUs, to trace coherent bundles, I hit a wall on global memory bandwidth. And the on-chip shared memory wasn't large enough to store much
23:17.22 Stragus Perhaps the L2 cache of CPUs can manage something better
23:18.12 brlcad paper utilized 4-way simd, cpu
23:18.32 brlcad well, n-way, but the intel box they were using was 4-way
23:19.08 Stragus Right. And cache misses are far more catastrophical on CPUs than GPUs
23:19.09 brlcad it was a production rendering system, so for them, most of the time was in the shading/texturing phase -- there is where they got the largest gains
23:19.57 Stragus Ah yes, of course! So the performance bottleneck wasn't coherent tracing in the scene, it was the texture memory access in the ray hit callback
23:20.24 Stragus It makes sense then. Because my experiments with coherent tracing were inconclusive regarding the performance of ray tracing itself
23:22.58 Stragus ("coherent tracing" as in continuously rebuilding coherent bundles from incoherent rays, not primary coherent rays)
23:23.03 brlcad yeah, their engine used embree under the hood for intersection
23:24.12 Stragus Your bullet rays tend to be highly coherent anyway. :) For stuff like radio wave propagation, not so much
23:27.52 brlcad just heard a fantastic talk yesterday focused on incoherent rays, completely different approach
23:29.06 Stragus Ah? Different from buffering them and making coherent bundles?
23:30.15 brlcad yes, because he wanted performance all the way down to single rays too (actually the focus)
23:30.48 brlcad making a single ray trace as fast as possible
23:31.26 Stragus When I did ambient occlusion or global illumination, I just _made_ the secondary rays coherent. Neighbor primary rays generate secondary rays with coherent vectors, with an appropriate probability "weight"
23:31.41 Stragus So what's different about that?
23:32.18 brlcad because with a single ray, there's no other rays to make it (more) coherent
23:32.49 brlcad except for making it internally do things you might not think to otherwise
23:33.51 Stragus Like testing bundles of 8 triangles in paralle, instead of 8 rays against one triangle?
23:34.06 Stragus One ray against bundles of 8 triangles, that is
23:34.24 brlcad sort of
23:34.53 brlcad more like one ray, bundling the traversal(s), against triangles
23:35.06 brlcad he used compression tricks, simd, and branchless coding
23:35.30 brlcad very nice speedups
23:35.43 Stragus Well, I'm both curious and skeptical
23:36.12 Stragus Testing bundles of 8 triangles is obviously good for incoherent rays (been there, done that). But... compression?
23:36.35 brlcad compression of the traversal
23:36.36 Stragus Besides shifted 16 bits traversal offsets between nodes of the acceleration structure (done that too)
23:36.41 brlcad I'll see if I can get the presentation
23:37.25 Stragus I order the content of my raytracing graphs so that you can jump between sectors and nodes with a 16 bits << 4 offset
23:37.35 Stragus I guess that counts as compression
23:39.29 brlcad so instead of jumping between sectors, I think it would be kind of like evaluating multiple sectors simultaneously
23:39.49 brlcad no way I can describe it with justice, still haven't read the paper, but the talk was very compelling, interesting
23:40.51 brlcad branch-free traversal was a big point, no conditionals so the ray evaluates everything along the path (faster than evaluating and terminating conditionally)
23:42.17 Stragus Hrm. You end up fetching a _lot_ of pointless memory if the ray keeps going when it could just stop
23:43.03 Stragus Unless you mean branchless testing of the triangles from a single sector. That's all right, it's already pulled into cache
23:43.33 brlcad no, branchless traversal (don't recall if triangle testing was also branchless)
23:44.07 Stragus I am totally unconvinced by that
23:44.42 Stragus If I'm looking at a wall, I want my rays to stop there. Not continue to fetch geometry from the street outside
23:45.35 brlcad that was the trick, though -- I don't think he fetched the geometry unnecessarily, at least not beyond a "traversal bundle" which might have been a bit past
23:46.11 Stragus Sounds like branchless testing of all triangles into a sector, or something similar
23:47.57 Stragus I remember trying branchless triangle testing many years ago... It was slower everywhere, except on the Pentium 4 due their absurd branch misprediction penalty
23:49.05 Stragus Although if you are testing bundles of 8 triangles for a ray, rather than 8 rays for a triangle, then you definitely want branchless
23:54.29 Stragus It is an intereting thought to have a whole CUDA warp test 32 triangles for a single ray. The graph evaluation cost function would have to be adjusted (fatter sectors, less sectors, lower memory consumption)
23:55.16 *** join/#brlcad djkonro (~djkonro@129.0.42.239)
23:55.45 Stragus Sounds like a waste of processing potential during traversal though (not geometry intersection)
23:56.04 *** join/#brlcad Notify (~notify@104.225.5.10)

Generated by irclog2html.pl Modified by Tim Riker to work with infobot.