aboutsummaryrefslogtreecommitdiff
path: root/simulation.py
AgeCommit message (Collapse)Author
2019-09-06Add a fun little fake bonfire _simulation_Adrian Kummerlaender
…using appropriately colored aging particles
2019-09-05Try out deferred particle streamingAdrian Kummerlaender
i.e. apply direct Euler multiple times for each moment collection
2019-09-04Reset stuck particles to starting positionAdrian Kummerlaender
2019-09-01Prototype "ink" particles visualizationAdrian Kummerlaender
2019-08-30Adapt examples to new material interfaceAdrian Kummerlaender
2019-08-30Start to use vectorizable indexing for material initializationAdrian Kummerlaender
`utility.ndindex` adds support for specifying the traversal order to `numpy.ndindex`.
2019-07-25Dampen channel inflowAdrian Kummerlaender
2019-07-01Expand LDC benchmark scriptsAdrian Kummerlaender
2019-06-30Move OpenCL buffers into Memory classAdrian Kummerlaender
2019-06-29Implement layout and memory paddingAdrian Kummerlaender
There are at least two distinct areas where padding can be beneficial on a GPU: 1. Padding the global thread sizes to support specific thread layouts e.g. (32,1) layouts require the global lattice width to be a multiple of 32 2. Padding the memory layout at the lowest level to align memory accesses i.e. some GPUs read memory in 128 Byte chunks and as such it is beneficial if the operations are aligned accordingly For lattice and thread layout sizes that are exponents of two these two padding areas are equivalent. However when one operates on e.g. a (300,300) lattice using a (30,1) layout, padding to 128 bytes yields a performance improvement of about 10 MLUPS on a K2200. Note that I am getting quite unsatisfied with how the Lattice class and its suroundings continue to accumulate parameters. The naming distinction between Geometry, Grid, Memory and Lattice is also not very intuitive.
2019-06-22Add interactive 2D LDC notebook, fix material initializationAdrian Kummerlaender
2019-06-22Add platform, precision and thread layout parametersAdrian Kummerlaender
2019-06-20Prototype OpenGL interoperationAdrian Kummerlaender
2019-06-16Replace some explicit dimension branchingAdrian Kummerlaender
2019-06-16Select thread layout depending on the descriptor's characteristicsAdrian Kummerlaender
2019-06-15Split descriptors and symbolic formulationAdrian Kummerlaender