SixTrack / sixtracklib

Library for single charged particle simulations in accelerators
GNU Lesser General Public License v2.1
12 stars 16 forks source link

Introduce cuda backend including python bindings #79

Closed martinschwinzerl closed 5 years ago

martinschwinzerl commented 5 years ago

First working state of CudaTrackJob, CudaController, CudaArgument, etc. . This includes the python bindings, updated tests and some fixes to the examples

Please consult the tests/python/cuda/ files and examples/python/cuda_particle_addr.py for some templates as to how to use the new structures.

All tests pass in both release and debug mode

Addresses:

TODO:

add additional tests, especially for changing nodes and resetting buffers
list operations on nodes including printing are limited, expand and harmonize them
implement automatically calculation and optimization of threads/block and block dimensions to optimize hardware occupancy