Age | Commit message (Collapse) | Author |
|
event creation.
Now we have vertex generators (that produce initial particles), photon
generators (that create photons to propagate), and a standard data
structure using Python class containers and numpy arrays to hand
around the code.
Also cleaned up some naming of things before they become conventions.
|
|
to make it 100x faster. Instead of having each CUDA thread loop over
the full triangle list, we give each thread a single triangle and ask
it to look up the hit status and color for that triangle. The hit
array and color array are small enough (approx 30,000 entries) to fit
into the cache, so this goes much faster.
Now the event viewer is quite snappy!
|
|
photon into NaN on the GPU. Now we abort these photons rather than
let them lock up the intersect_mesh() method. There is a new history
bit (#31) that indicates when a NAN_ABORT has occurred, and this bit
is checked for by GPU.propagate(). If set for any of the photons, a
warning message is printed.
While not as good as preventing the NaN problem in the first place,
this at least ensures we are aware of the problem.
|
|
photons that didn't die during propagation into the beginning of the
list. This speeds up propagation by reducing the number of partially
filled CUDA warps on the next propagation step.
2.2 million photons/sec on LBNE!
|
|
|
|
|
|
|
|
iteration of the bounding volume hierarchy construction. only cache the bounding volume hierarchy information.
|
|
|
|
boost!
|
|
synchronize CUDA calls.
|
|
|
|
|
|
|
|
and length; this reduces a bit of arithmetic when traversing the bounding volume hierarchy and makes the code in Geometry.build() more concise. add an untested cuda kernel to interleave the bits in three uint64 arrays.
|
|
|
|
same channel, their history bits are OR'ed together.
|
|
offsets to load. Now events with more photons than RNG states
can be propagated through multiple kernel calls.
Also lays the groundwork for consolidating photons between steps
to reduce the amount of propagation work required.
|
|
matplotlib.cm.
|
|
|
|
<detector_name> -i <name_of_io_file>.
|
|
|
|
they didn't build the geometry before loading it on the GPU.
|
|
|
|
geometry requires global device pointers, there should be a one to one correspondence between modules and contexts. the current plan is to perform all gpu operations within this class. also add a simple color map to display hit pmt charge and timing information.
|
|
|
|
|
|
|
|
|